OD破解程序自校驗(yàn)之bp CreateFileA
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
程序PEid查殼,顯示為 UPX-Scrambler RC1.x,OD載入,兩次查找pushad,下斷,運(yùn)行,直接跳到OEP 我們修復(fù)輸入表后,再次用PEid查看,用vc++ 6.0所寫(xiě),但是程序打開(kāi)后,顯示圖片后就退出了,程序使用了自校驗(yàn)防止被破解。我們同時(shí)用OD打開(kāi)脫殼前(運(yùn)行至OEP)和脫殼后的程序,然后同時(shí)下段 bp CreateFileA F9運(yùn)行,程序運(yùn)行后被斷了下來(lái),我們看看堆棧窗口,程序是在讀取自己 Alt+F9返回程序領(lǐng)空,我們兩邊同時(shí)單步跟蹤,重點(diǎn)注意程序的跳轉(zhuǎn)的實(shí)現(xiàn)與否是否一致。在地址0041C094處,我們發(fā)現(xiàn)脫殼后的跳轉(zhuǎn)實(shí)現(xiàn)了,而脫殼前的跳轉(zhuǎn)沒(méi)有實(shí)現(xiàn),如圖下 我們分別查看脫殼前后的eax值,將其轉(zhuǎn)化為10進(jìn)制后,我們發(fā)現(xiàn)其為程序本身的大?。ㄗ止?jié)數(shù))。也就是說(shuō),程序把自身的大小和835b8進(jìn)行比較,如果大于則條轉(zhuǎn)實(shí)現(xiàn)。脫殼后,程序變大,導(dǎo)致跳轉(zhuǎn)實(shí)現(xiàn),所以我們將835b8改為比008EC000(脫殼后程序的大?。└蟮闹导纯伞=?jīng)測(cè)試,程序正常運(yùn)行。 該文章在 2014/4/10 11:07:09 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |