搜尋此網誌

2011年6月23日 星期四

使用C++ Builder 來開發 Amibroker 的 Plugin

經過最近的收集資料及測試,終於成功寫出一個基本架構
首先第一步要先使 CBB 建立出來的DLL export function 能夠被 Amibroker 正確識別出來
CBB 與 VC 做出來的DLL 在export function 的 name 有所不同
使用 __cdecl 的 function 在 CBB 會有底線而 VC 沒有
這樣一來Amibroker 無法找到要用的 function name 而無法載入plugin DLL
解決方法是把CBB 的DLL 用 CBB 的 tool  impdef 建立 .def 檔再去修改,把修改後的 def 加入CBB Project 中,就可以做出 有底線跟沒底線 function name

例如:
下指令 impdef plugin3.def plugin3.dll
plugin3.def 內容如下

_Configure  @1

改為

ConFigure = _Configure

就可做出Amibroker 正確識別 export function name
做好之後.如果有新增的 export function ,就要再做一次全部對應的修改
不可以像這樣
_Configure @1
Configure @2
Init = _init
必需全部都改成
ConFigure = _Configure
Init = _init
才會正確對應,否則 Amibroker 還是會捉不到

另外 Amibroker ADK 附的 pluging.h 在 export 的宣告,都要多加 _cdecl
傳入參數方式對應才會正確

2011年6月22日 星期三

冰箱除霜定時器發出怪聲,DIY 修復

上週起,家中的一台小東元冰箱一直發出怪聲,把冰箱推出來後仔細聽之後
                                        冰箱後頭,拆下紅圈2個螺絲,定時器在裏頭
找到怪聲來源在冰箱後面,由於之前也曾找過服務站的人處理過別的問題,但只要叫人來看,就要付600檢測費,想說先上網查一下是否有人也有同樣情形,還真的找到了
原來怪聲是來自定時器的齒輪,只是換一個新的定時器就可以了
                                       一個白色的零件,接了4條線,還韓國製的
到拍賣網站及一些購物網站找了一下,找到一個適用於東元冰箱的
                                                          買到這個型號
等了2天,東西到了,開始進行拆換
                      買到的零件長這個樣子,但上頭竟沒產地,沒辦法,還是只有換了
 首先要拆故障的定時器,觀察了一下,發現上頭還被一個電容器擋住,要先拆電容器
才能拆出定時器
                                   被一個黑色電容器擋住取出的路,要先拆下電容器
                          電容器上有2條接線,要先記住接的對應顏色,等會才能正確接回
                                                  固定的螺絲在這個位置
電容拆下後,定時器就很好拆了,定時器上也有4條線,分成2個接頭,一個一條線,一個3條線,這樣不容易弄錯
                                           換上新的定時器,並接上接頭
 把定時器及電容再鎖回去,電容注意一下接線顏色,冰箱接電測試
怪聲消失了,大功告成 !

2011年6月17日 星期五

成功將一個程式 使用的 lib 轉為 IDA signature 檔

在pediy 看到相關的ida sig 檔製作資料
剛好在追踪的的一個程式有一個 lib 檔
便試著轉看看
首先要有 ida pro 及 Ida flair util
因為要用到裏頭的 dumpsig.exe , sigmake.exe
再用由pediy 下載的 lib2sig.bat 相關檔案
執行前設定command 模式下的 path,設定指向 vc6\bin 中放 link.exe 的位置
再執行 lib2sig 成功做出 sig 檔
再放到 ida 下的sig目錄  ,重新使用flirt 便可