NSpack脫殼學習筆記

2021-07-22 06:29:37 字數 767 閱讀 1977

1,esp定律法:

開頭pushfd(然後將32位標誌暫存器eflags壓入堆疊)和pushad(將所有的32位通用暫存器壓入堆疊)發現esp發生了突變,這樣就可以使用esp定律法,發現到了popfd(標誌暫存器出棧),發現乙個大跨度的jmp//難道又和upx一樣嗎,這脫殼還真乙個德行啊,當然啦,他們都是壓縮殼嘛

我真傻,看到jmp oep就直接想單步進入,而不知道要先出棧,害我搞半天,為什麼教程單步就能走到,為什麼我就不行???

還好有寫這些留下自己之前的錯誤,其實已經跳到oep了,只是自己不知道並且沒看見**,就以為是自己執行環境的問題,其實只要ctrl+a分析一下**就看得到oep了。

call(呼叫)

2,單步跟蹤法(和upx方法一樣)注意:f4不是f2

3,兩次記憶體映象法

若資源段(.rsrc)找不到,就直接在code段下斷點f2,後f9執行。繼續單步跟蹤,找到jmp oep,很有可能需要**分析,之後還得移除分析,就可以看到**了

4,at getversion(直接下斷點)

一般情況下適用於3.0版本之前的北斗殼,(nspack是由vc++寫的)

在命令列輸入at getvision會跳轉,在retn處f2下斷點,之後執行,執行到retn的位址,然後斷點解除。之後單步f8,基本就可以到達oep範圍了。//這個很考驗經驗啊,我看新手還是不要用這個

有些情況peid可能看不到是什麼殼(比較教程是很久以前的了)但是從區段可以看出個大概,2.4版本的一開始就是跳轉可以直接單步,3.7也是基本可以使用esp定律法(這還真好用啊)

upx脫殼學習筆記

目前我所知upx脫殼的三種方法 1,單步跟蹤法 發現往回跳的都給我按f2 breakpoint,如果遇見連續多jump就在最後個jump後設定斷點,不停的找啊找,要有耐心 2,esp定律法 首先先step over f8 pushad壓棧,同時會發現esp發生改變,再使用command命令輸入hh ...

FSG脫殼學習

fsg脫殼可採用 1,超好用的esp定律法 2,單步跳轉法 不過這兩個方法值得注意的是,fsg殼比upx殼的oep更加的隱蔽。可能看不到大的跳轉,會把跳轉位址隱藏在暫存器單元中如ebx,esp等 oep的查詢並不難,主要是修復,和查詢iat iat importaddresstableaddress...

DOC Aspack2 11脫殼筆記

最近正在學點脫殼.從網上找來手動脫殼入門十八篇.剛看到第四篇講aspack2.11的脫殼.看了前面的upx脫殼.感覺入門的東東.應該不會太難.so,來自己先脫一次.脫不了再看教程.說幹就幹.peid查了是aspack2.11 od載入.選擇不繼續分析.忽略所有異常 0040d001 60 pusha...