最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Getright 5 手動脫殼和重建IAT--第一部分(圖)

互聯(lián)網(wǎng)   發(fā)布時間:2008-10-08 19:05:36   作者:佚名   我要評論
這是一篇Armadillo加殼軟件Getright 5.01的脫殼譯文,我是參照Ricardo Narvaja的“Getright 5 脫殼和重建IAT”的文章以及Bighead[DFCG][YCG]的譯文,一邊實踐一邊再次翻譯的。感謝Ricardo Narvaja和Bighead[DFCG][YCG]。 Armadillo for Dummies: Getright 5 手動脫殼

第七步:如何打入補(bǔ)丁
當(dāng)做這一步時請注意.很多人不知道究竟該如何打補(bǔ)丁,所以努力試著理解我這里所作的, 然后學(xué)會在其它情況下運(yùn)用.
第一步是改變跳轉(zhuǎn),

我們將要改變這個跳轉(zhuǎn)為JMP 401000那是我們將要打補(bǔ)丁的地方, 父進(jìn)程offset 401000 .

跳轉(zhuǎn)設(shè)好了,現(xiàn)在去401000 (ctrl G)我們要開始寫補(bǔ)丁了. 在report中我們可以看到三次entry point value.也許OEP在其它情況下會出現(xiàn)更多次.但是我們只需改變這三個.

father unpacks了在report中顯示的block.所以我們將要欺騙father則他會相信從第一個section開始的所有blocks都存在錯誤, 一個接一個所有的blocks都會被unpacked.因為這一點我們需要知道第一個 section的起止點.點擊"查看/內(nèi)存"

這兒我們可以看到getright的sections.忽略Header section看text section,它從401000開始,結(jié)束在589000-1=588fff.
401000-588fff (第一個section的范圍)
我們將要在report中用400000代替OEP的值.

正如你在圖中看到的我寫入了40000,然后patch會在每一個loop前加1000,所以第一個被unpack的block將在401000.
現(xiàn)在我們將要在401000處寫下如下補(bǔ)丁.

00401000 8105 10F01200 0>picture1/add DWORD PTR DS:[12F010],1000
0040100A 8105 1CF01200 0>picture1/add DWORD PTR DS:[12F01C],1000
00401014 8105 20F01200 0>picture1/add DWORD PTR DS:[12F020],1000
這些行將我們先前在轉(zhuǎn)儲窗口(dump window)寫的值增加1000.那些藍(lán)色的值在不同的機(jī)器上可能會不同,所以修改為你在轉(zhuǎn)儲窗口(dump window)看到的實際值. 再次提醒,證實在轉(zhuǎn)儲窗口(dump window)寫入了00 00 40 .最容易犯的錯誤就是在補(bǔ)丁(藍(lán)色的)中的offset和轉(zhuǎn)儲窗口(dump window)的offset不匹配.
下一行該這樣寫:
0040101E 813D 20F01200 0>CMP DWORD PTR DS:[12F020],getright.00589000
比較是為了讓我們知道何時所有的塊都被unpacked了.
然后我們必須寫下:
00401028 - 0F85 F6341F00 JNZ getright.005F7524
如果比較為假,則返回called loop的地方.然后我們需要在最后寫下NOP,在那兒我們將要設(shè)下一個BP. 當(dāng)它完成轉(zhuǎn)儲時,它將會停在那兒.

這兒我們可以看到完整的補(bǔ)丁代碼
我們可以跟蹤第一個循環(huán),來檢測report中的each entry是否每次都增加1000.
第八步: UNPACK
按F9運(yùn)行程序然后等待它停在我們先前在補(bǔ)丁中設(shè)下nop的bpx處.如果沒有錯誤發(fā)生,當(dāng)我們停止時,看view-LOG我們將要看到所有的unpacked blocks.
這是假設(shè)的所有unpacked blocks的LOG.我沒有完整的給出因為地方不夠但是你可以在你的日志窗口中查看.
所以現(xiàn)在從401000到589000(包括588fff)的所有blocks都被unpacked了,然后dump已經(jīng)就緒.
第九步:把CHILD從FATHER那兒脫鉤
一旦我們停在NOP,讓我們寫下下面幾行.
PUSH (child的handle )
Call DebugActiveProcessStop
如果handle由字母開始,你需要在它前面鍵入一個0,因為不這樣做的話olly不會認(rèn)出. 想知道son的handle只需看一下pupe, 記住child的handle是在兩個進(jìn)程中的上面的那個.你一樣可以通過opening file attach來獲得son的handle.那兒你可以看到兩個名稱相同的進(jìn)程. 紅的是father,黑的是son.在此情況下我得到的是B78 所以我將要寫下0B78.記住handle在每次運(yùn)行程序時都會改變.

相關(guān)文章

最新評論

曲靖市| 当阳市| 凤台县| 老河口市| 临泽县| 文安县| 邵东县| 资阳市| 桃园县| 大兴区| 屏东市| 平陆县| 循化| 德格县| 荔浦县| 思南县| 红原县| 竹溪县| 密山市| 特克斯县| 天门市| 肃宁县| 久治县| 黎平县| 五莲县| 望都县| 贵州省| 延寿县| 普定县| 杨浦区| 皋兰县| 江陵县| 新和县| 郎溪县| 潮安县| 探索| 伊川县| 潼关县| 南丰县| 安塞县| 微博|