手動脫殼入門第十九篇ASProtect 1.1
互聯(lián)網(wǎng) 發(fā)布時間:2008-10-08 19:04:21 作者:佚名
我要評論

【脫文標(biāo)題】 手動脫殼入門第十九篇ASProtect 1.1
【脫文作者】 weiyi75[Dfcg]
【作者郵箱】 weiyi75@sohu.com
【作者主頁】 Dfcg官方大本營
【使用工具】 Peid,Ollydbg,Loadpe,ImportREC1.42
【脫殼平臺】 Win2000/XP
【軟件名稱】 chap709.e
【脫文標(biāo)題】 手動脫殼入門第十九篇ASProtect 1.1
【脫文作者】 weiyi75[Dfcg]
【作者郵箱】 weiyi75@sohu.com
【作者主頁】 Dfcg官方大本營
【使用工具】 Peid,Ollydbg,Loadpe,ImportREC1.42
【脫殼平臺】 Win2000/XP
【軟件名稱】 chap709.exe
【下載地址】 本地下載
chap709.rar
【軟件簡介】 ASProtect 1.1b Registered 加密Win98的記事本。
【軟件大小】 58.2K
【加殼方式】 ASProtect 1.1b Registered [SAC] -> Alexey Solodovnikov
【脫殼聲明】 我是一只小菜鳥,偶得一點心得,愿與大家分享:
--------------------------------------------------------------------------------
【脫殼內(nèi)容】
首先Peid查殼,為ASProtect 1.1b Registered [SAC] -> Alexey Solodovnikov,ASProtect 1.1b Registered 很少弄過,與現(xiàn)在的Asprotect1.2X SEH不同,不過也很容易。SEH異常全部是由13個精心設(shè)計的非法指令SEH組成的,這樣就無法用模擬跟蹤找Oep了。二哥脫殼沒有什么耐心,喜歡快。先大概了解了一下程序開始脫殼。
OD載入程序,除了錯誤或有特權(quán)的指令外異常全部忽略,1.1b不檢測OD,根本無需隱藏。
0040D001 > 60 pushad //外殼入口,F9運行。
0040D002 E9 95050000 jmp chap709.0040D59C
0040D007 F710 not dword ptr ds:[eax]
0040D009 0F0F ??? ; 未知命令
0040D00B 0F9F6C90 FC setg byte ptr ds:[eax edx*4-4]
0040D010 57 push edi
0040D011 C5540F CA lds edx, fword ptr ds:[edi ecx-36]
0040D015 4B dec ebx
0040D016 C5540F 12 lds edx, fword ptr ds:[edi ecx 12]
0040D01A EC in al, dx
0040D01B 3AAC90 CD540F92 cmp ch, byte ptr ds:[eax edx*4 920F54CD]
0040D022 CC int3
.............................................................
第一次異常
0092FF94 8DC0 lea eax, eax ; 非法使用寄存器
0092FF96 EB 01 jmp short 0092FF99
0092FF98 68 648F0500 push 58F64
0092FF9D 0000 add byte ptr ds:[eax], al
0092FF9F 00EB add bl, ch
0092FFA1 02E8 add ch, al
0092FFA3 0158 68 add dword ptr ds:[eax 68], ebx
0092FFA6 98 cwde
0092FFA7 E5 92 in eax, 92
0092FFA9 0068 D0 add byte ptr ds:[eax-30], ch
0092FFAC FF92 00687CF5 call dword ptr ds:[edx F57C6800]
0092FFB2 92 xchg eax, edx
0092FFB3 0068 14 add byte ptr ds:[eax 14], ch
...................................................................
繼續(xù)Shift F9 12次達(dá)第十三次也是最后一次異常。
0093053D 8DC0 lea eax, eax ; 非法使用寄存器
0093053F EB 01 jmp short 00930542
00930541 68 648F0500 push 58F64
00930546 0000 add byte ptr ds:[eax], al
00930548 00EB add bl, ch
0093054A 02E8 add ch, al
0093054C 0158 33 add dword ptr ds:[eax 33], ebx
0093054F C05A 59 59 rcr byte ptr ds:[edx 59], 59
00930553 64:8910 mov dword ptr fs:[eax], edx
00930556 68 78059300 push 930578
0093055B 8D45 F0 lea eax, dword ptr ss:[ebp-10]
0093055E E8 2D2CFFFF call 00923190
00930563 8D45 F8 lea eax, dword ptr ss:[ebp-8]
.............................................................
ALT M 打開內(nèi)存鏡像。
內(nèi)存鏡像,項目 21
地址=00401000
大小=00004000 (16384.)
Owner=chap709 00400000
區(qū)段=
包含=code //對這里下內(nèi)存訪問斷點,Shift F9運行。
類型=Imag 01001002
訪問=R
初始訪問=RWE
004010CC 55 push ebp //到達(dá)Oep,用Loadpe脫殼吧。
004010CD 8BEC mov ebp, esp
004010CF 83EC 44 sub esp, 44
004010D2 56 push esi
004010D3 FF15 E4634000 call dword ptr ds:[4063E4]
004010D9 8BF0 mov esi, eax
004010DB 8A00 mov al, byte ptr ds:[eax]
004010DD 3C 22 cmp al, 22
004010DF 75 1B jnz short chap709.004010FC //往下看看IAT被加密了不少。
004010E1 56 push esi
004010E2 FF15 F4644000 call dword ptr ds:[4064F4]
004010E8 8BF0 mov esi, eax
004010EA 8A00 mov al, byte ptr ds:[eax]
004010EC 84C0 test al, al
004010EE 74 04 je short chap709.004010F4
004010F0 3C 22 cmp al, 22
004010F2 ^ 75 ED jnz short chap709.004010E1
004010F4 803E 22 cmp byte ptr ds:[esi], 22
004010F7 75 15 jnz short chap709.0040110E
004010F9 46 inc esi
004010FA EB 12 jmp short chap709.0040110E
...........................................................
IAT修復(fù)
運行ImportREC,OEP填入10CC,自動搜索,獲得輸入信息,有111個指針沒有修復(fù),先用跟蹤等級1修復(fù)98個,剩下的13個用等級3全部修復(fù),正常運行。
火眼金精區(qū)段減肥,去除垃圾區(qū)段,重建PE。
這個需要一點PE知識,沒有也不要緊,跟著一起學(xué),積累經(jīng)驗。
備份好脫殼程序,區(qū)段減肥有時過量會導(dǎo)致程序無法運行。
這次區(qū)段減肥只是例子,大家要學(xué)會舉一反三。
我們用OD同時載入未加密的Win98計事本,和脫殼程序。
Win98 記事本
本地下載
Notepad.rar
Alt M打開內(nèi)存鏡像同步分析。
原程序內(nèi)存鏡像
地址 大小 Owner Section Contains 類型 訪問 初始訪問 映射為
003E0000 00002000 Map R R
00400000 00001000 NOTEPAD PE header Imag R RWE
00401000 00004000 NOTEPAD .text code Imag R RWE
00405000 00001000 NOTEPAD .data data Imag R RWE
00406000 00001000 NOTEPAD .idata imports Imag R RWE
00407000 00005000 NOTEPAD .rsrc resources Imag R RWE
0040C000 00001000 NOTEPAD .reloc relocations Imag R RWE
Contains
.text //代碼段,我們反編譯程序經(jīng)??吹健?br /> .data //數(shù)據(jù)快,程序初始化用。
.idata //輸入表,現(xiàn)在加密殼搞破壞的對象,壞的輸入表
【脫文作者】 weiyi75[Dfcg]
【作者郵箱】 weiyi75@sohu.com
【作者主頁】 Dfcg官方大本營
【使用工具】 Peid,Ollydbg,Loadpe,ImportREC1.42
【脫殼平臺】 Win2000/XP
【軟件名稱】 chap709.exe
【下載地址】 本地下載
chap709.rar
【軟件簡介】 ASProtect 1.1b Registered 加密Win98的記事本。
【軟件大小】 58.2K
【加殼方式】 ASProtect 1.1b Registered [SAC] -> Alexey Solodovnikov
【脫殼聲明】 我是一只小菜鳥,偶得一點心得,愿與大家分享:
--------------------------------------------------------------------------------
【脫殼內(nèi)容】
首先Peid查殼,為ASProtect 1.1b Registered [SAC] -> Alexey Solodovnikov,ASProtect 1.1b Registered 很少弄過,與現(xiàn)在的Asprotect1.2X SEH不同,不過也很容易。SEH異常全部是由13個精心設(shè)計的非法指令SEH組成的,這樣就無法用模擬跟蹤找Oep了。二哥脫殼沒有什么耐心,喜歡快。先大概了解了一下程序開始脫殼。
OD載入程序,除了錯誤或有特權(quán)的指令外異常全部忽略,1.1b不檢測OD,根本無需隱藏。
0040D001 > 60 pushad //外殼入口,F9運行。
0040D002 E9 95050000 jmp chap709.0040D59C
0040D007 F710 not dword ptr ds:[eax]
0040D009 0F0F ??? ; 未知命令
0040D00B 0F9F6C90 FC setg byte ptr ds:[eax edx*4-4]
0040D010 57 push edi
0040D011 C5540F CA lds edx, fword ptr ds:[edi ecx-36]
0040D015 4B dec ebx
0040D016 C5540F 12 lds edx, fword ptr ds:[edi ecx 12]
0040D01A EC in al, dx
0040D01B 3AAC90 CD540F92 cmp ch, byte ptr ds:[eax edx*4 920F54CD]
0040D022 CC int3
.............................................................
第一次異常
0092FF94 8DC0 lea eax, eax ; 非法使用寄存器
0092FF96 EB 01 jmp short 0092FF99
0092FF98 68 648F0500 push 58F64
0092FF9D 0000 add byte ptr ds:[eax], al
0092FF9F 00EB add bl, ch
0092FFA1 02E8 add ch, al
0092FFA3 0158 68 add dword ptr ds:[eax 68], ebx
0092FFA6 98 cwde
0092FFA7 E5 92 in eax, 92
0092FFA9 0068 D0 add byte ptr ds:[eax-30], ch
0092FFAC FF92 00687CF5 call dword ptr ds:[edx F57C6800]
0092FFB2 92 xchg eax, edx
0092FFB3 0068 14 add byte ptr ds:[eax 14], ch
...................................................................
繼續(xù)Shift F9 12次達(dá)第十三次也是最后一次異常。
0093053D 8DC0 lea eax, eax ; 非法使用寄存器
0093053F EB 01 jmp short 00930542
00930541 68 648F0500 push 58F64
00930546 0000 add byte ptr ds:[eax], al
00930548 00EB add bl, ch
0093054A 02E8 add ch, al
0093054C 0158 33 add dword ptr ds:[eax 33], ebx
0093054F C05A 59 59 rcr byte ptr ds:[edx 59], 59
00930553 64:8910 mov dword ptr fs:[eax], edx
00930556 68 78059300 push 930578
0093055B 8D45 F0 lea eax, dword ptr ss:[ebp-10]
0093055E E8 2D2CFFFF call 00923190
00930563 8D45 F8 lea eax, dword ptr ss:[ebp-8]
.............................................................
ALT M 打開內(nèi)存鏡像。
內(nèi)存鏡像,項目 21
地址=00401000
大小=00004000 (16384.)
Owner=chap709 00400000
區(qū)段=
包含=code //對這里下內(nèi)存訪問斷點,Shift F9運行。
類型=Imag 01001002
訪問=R
初始訪問=RWE
004010CC 55 push ebp //到達(dá)Oep,用Loadpe脫殼吧。
004010CD 8BEC mov ebp, esp
004010CF 83EC 44 sub esp, 44
004010D2 56 push esi
004010D3 FF15 E4634000 call dword ptr ds:[4063E4]
004010D9 8BF0 mov esi, eax
004010DB 8A00 mov al, byte ptr ds:[eax]
004010DD 3C 22 cmp al, 22
004010DF 75 1B jnz short chap709.004010FC //往下看看IAT被加密了不少。
004010E1 56 push esi
004010E2 FF15 F4644000 call dword ptr ds:[4064F4]
004010E8 8BF0 mov esi, eax
004010EA 8A00 mov al, byte ptr ds:[eax]
004010EC 84C0 test al, al
004010EE 74 04 je short chap709.004010F4
004010F0 3C 22 cmp al, 22
004010F2 ^ 75 ED jnz short chap709.004010E1
004010F4 803E 22 cmp byte ptr ds:[esi], 22
004010F7 75 15 jnz short chap709.0040110E
004010F9 46 inc esi
004010FA EB 12 jmp short chap709.0040110E
...........................................................
IAT修復(fù)
運行ImportREC,OEP填入10CC,自動搜索,獲得輸入信息,有111個指針沒有修復(fù),先用跟蹤等級1修復(fù)98個,剩下的13個用等級3全部修復(fù),正常運行。
火眼金精區(qū)段減肥,去除垃圾區(qū)段,重建PE。
這個需要一點PE知識,沒有也不要緊,跟著一起學(xué),積累經(jīng)驗。
備份好脫殼程序,區(qū)段減肥有時過量會導(dǎo)致程序無法運行。
這次區(qū)段減肥只是例子,大家要學(xué)會舉一反三。
我們用OD同時載入未加密的Win98計事本,和脫殼程序。
Win98 記事本
本地下載
Notepad.rar
Alt M打開內(nèi)存鏡像同步分析。
原程序內(nèi)存鏡像
地址 大小 Owner Section Contains 類型 訪問 初始訪問 映射為
003E0000 00002000 Map R R
00400000 00001000 NOTEPAD PE header Imag R RWE
00401000 00004000 NOTEPAD .text code Imag R RWE
00405000 00001000 NOTEPAD .data data Imag R RWE
00406000 00001000 NOTEPAD .idata imports Imag R RWE
00407000 00005000 NOTEPAD .rsrc resources Imag R RWE
0040C000 00001000 NOTEPAD .reloc relocations Imag R RWE
Contains
.text //代碼段,我們反編譯程序經(jīng)??吹健?br /> .data //數(shù)據(jù)快,程序初始化用。
.idata //輸入表,現(xiàn)在加密殼搞破壞的對象,壞的輸入表
相關(guān)文章
- “CMOS密碼”就是通常所說的“開機(jī)密碼”,主要是為了防止別人使用自已的計算機(jī),設(shè)置的一個屏障2023-08-01
QQScreenShot之逆向并提取QQ截圖--OCR和其他功能
上一篇文章逆向并提取QQ截圖沒有提取OCR功能, 再次逆向我發(fā)現(xiàn)是可以本地調(diào)用QQ的OCR的,但翻譯按鈕確實沒啥用, 于是Patch了翻譯按鈕事件, 改為了將截圖用百度以圖搜圖搜索.2023-02-04- QQ截圖是我用過的最好用的截圖工具, 由于基本不在電腦上登QQ了, 于是就想將其提取出獨立版目前除了屏幕錄制功能其他都逆出來了, 在此分享一下2023-02-04
非系統(tǒng)分區(qū)使用BitLocker加密導(dǎo)致軟件無法安裝的解決方法
很多電腦用戶在考慮自己電腦磁盤分區(qū)安全時會采用 Windows 自帶的 BitLocker 加密工具對電腦磁盤分區(qū)進(jìn)行加密。但有些人加密后就會忘記自己設(shè)置的密碼從而導(dǎo)致在安裝其它軟2020-11-25防止離職員工帶走客戶、防止內(nèi)部員工泄密、避免華為員工泄密事件的發(fā)生
這篇文章為大家詳細(xì)介紹了如何才能防止離職員工帶走客戶、防止內(nèi)部員工泄密、避免華為員工泄密事件的發(fā)生,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-27徹底防止計算機(jī)泄密、重要涉密人員離職泄密、涉密人員離崗離職前防范舉
近些年企業(yè)商業(yè)機(jī)密泄漏的事件屢有發(fā)生,這篇文章主要教大家如何徹底防止計算機(jī)泄密、重要涉密人員離職泄密、告訴大家涉密人員離崗離職前的防范舉措,具有一定的參考價值,2017-06-27- 最近有電腦用戶反應(yīng)量子計算機(jī)可以破解下載的所有的加密算法嗎?其實也不是不可以,下面虛擬就為大家講解買臺量子計算機(jī),如何分分鐘破解加密算法2016-09-26
怎么破解Webshell密碼 Burpsuite破解Webshell密碼圖文教程
webshell是以asp、php、jsp或者cgi等網(wǎng)頁文件形式存在的一種命令執(zhí)行環(huán)境,一種網(wǎng)頁后門。黑客通常會通過它控制別人網(wǎng)絡(luò)服務(wù)器,那么怎么破解webshell密碼呢?一起來看看吧2016-09-19- 本文討論了針對Linux系統(tǒng)全盤加密的冷啟動攻擊,大家都認(rèn)為這種攻擊是可行的,但執(zhí)行這么一次攻擊有多難?攻擊的可行性有多少呢?需要的朋友可以參考下2015-12-28
防止泄露公司機(jī)密、企業(yè)數(shù)據(jù)防泄密軟件排名、電腦文件加密軟件排行
面對日漸嚴(yán)重的內(nèi)部泄密事件,我們?nèi)绾问刈o(hù)企業(yè)的核心信息,如何防止內(nèi)部泄密也就成了擺在各個企業(yè)領(lǐng)導(dǎo)面前的一大問題。其實,針對內(nèi)網(wǎng)安全,防止內(nèi)部信息泄漏早已有了比較2015-12-17