一、VB程序 其實(shí),VB的按紐事件的找法是最為普遍的,也就是大家所謂的萬(wàn)能斷點(diǎn).其實(shí)也不僅僅是針對(duì)按紐事件,還有很多其他的用處,如取消NAG,啟動(dòng)框,灰色按紐或隱藏按紐,啟動(dòng)時(shí)的timer事件等等,具體的就自己去總結(jié)吧,這里只演示按紐事件! OD載入后,CTRL+B,816C24 確定后,就會(huì)來(lái)到下圖處:
然后,就在下面的JMP處F2下斷,下完后CTRL+L,如果還有,就繼續(xù)下斷點(diǎn). 下完斷點(diǎn)后,運(yùn)行程序,點(diǎn)擊相應(yīng)的按紐,OD就會(huì)斷下來(lái)了
下面的任務(wù)就是考驗(yàn)大家的耐心,F8跟蹤吧,不再贅述了. 當(dāng)然,為了方便大家,可以寫個(gè)簡(jiǎn)單的腳本,免的每次都去手動(dòng)設(shè)置了,節(jié)省時(shí)間: 復(fù)制內(nèi)容到剪貼板 代碼:var Addr mov Addr,401000 loop: find Addr,#816C2404??000000# cmp $RESULT,0 je Exit add $RESULT,08 bp $RESULT add $RESULT,1 mov Addr,$RESULT jmp loop Exit: eval "按紐事件查找完畢!" msg $RESULT ret 二,、Delphi和BC++程序 Delphi和BC++都是同一公司開發(fā)的,故查找方法都一樣,當(dāng)然你也可以使用DEDE. OD載入后,CTRL+G,轉(zhuǎn)到00401000處 然后就CTRL+B,查找特征碼740E8BD38B83????????FF93????????
然后就會(huì)找到下面的地方:
然后就在下面的CALL處下斷吧. 下面的工作就是不斷的CTRL+L繼續(xù)查找和F2下斷了. 運(yùn)行下看看效果吧:
看,斷下了吧,下面就F7跟進(jìn)這個(gè)CALL吧,就來(lái)到這個(gè)按紐事件處了. 同樣寫個(gè)腳本,方便大家操作: 復(fù)制內(nèi)容到剪貼板 代碼:var Addr mov Addr,401000 loop: find Addr,#740E8BD38B83????????FF93????????# cmp $RESULT,0 je Exit add $RESULT,0A bp $RESULT add $RESULT,1 mov Addr,$RESULT jmp loop Exit: ret 三,、易語(yǔ)言 易語(yǔ)言的這種查找方法,同樣適合有殼的程序,其他的就必須脫殼后再繼續(xù)操作了. OD載入后,就F9運(yùn)行程序吧,當(dāng)程序運(yùn)行后,ALT+E 選中易語(yǔ)言的核心庫(kù)krnln,雙擊進(jìn)去
然后CTRL+B,查找FF 55 FC
查找到的這個(gè)CALL就是了,F2下斷吧 現(xiàn)在輸入必須的內(nèi)容后,單擊對(duì)應(yīng)的按紐吧
看,斷下了吧,下面就F7跟進(jìn)吧,就來(lái)到按紐事件處了 同樣,寫個(gè)腳本,方便大家 復(fù)制內(nèi)容到剪貼板 代碼:gpa"GetProcessHeap","kernel32.dll" cmp $RESULT,0 je err bp $RESULT run run run bc $RESULT rtu find 10001000,#FF55FC5F5E895D??8945# bp $RESULT find eip,#FFE0# cmp$RESULT,0 je err bp $RESULT run bc $RESULT sto MSG "按紐事件查找完畢!" ret err: MSG "腳本運(yùn)行錯(cuò)誤,!請(qǐng)檢查錯(cuò)誤后再繼續(xù)運(yùn)行腳本,!" ret 四、VC++程序(非MFC程序) OD載入后,單擊鼠標(biāo)右鍵,選擇"查找",然后是"所有命令" 在彈出的輸入框里,寫入特征代碼"sub eax,0a" 10.GIF (7 KB) 2008-9-14 12:02 確定后,就來(lái)到下面的窗口 在下面的sub eax,0A處,雙擊進(jìn)去吧: 12.GIF (16 KB) 2008-9-14 12:02 來(lái)找這里后,在下面的je處跟隨過(guò)去
跟隨來(lái)到的這個(gè)CALL,就是了,F2下斷吧 然后斷下后,F7跟進(jìn),F8幾次,就來(lái)到按紐事件了. 五,、MFC類程序 當(dāng)然判斷MFC和非MFC的程序,靠大家自己去判斷了 OD載入后.ALT+E,來(lái)到可執(zhí)行模塊,找MFC的核心DLL:MFC42 然后就雙擊進(jìn)去 然后就CTRL+F,查找特征代碼:sub eax,0a
同樣,找到后,就在下面的je處跟隨,跟隨后看到的CALL,就是那個(gè)關(guān)鍵CALL了!
斷下后F7跟進(jìn),F8幾次,就會(huì)來(lái)到按紐事件代碼處了! 方法就簡(jiǎn)單的介紹到這里了,當(dāng)然只是拋磚引玉,其他的,還得多靠大家自己慢慢總結(jié)吧! 附件
|