【破解作者】 layper
【作者郵箱】 layper2002@yahoo.com.cn
【作者首頁】 www.sy135.com
【使用工具】 peid,od,
【破解平台】 Win9x/NT/2000/XP
【軟體名稱】 殼亂彈單步分析(5)
【破解聲明】 我是一隻小菜鳥,偶得一點心得,願與大家分享:)
--------------------------------------------------------------------------------
【破解內容】
寫到這篇,我感覺在分析這個殼的過程中學到了很多東西(雖然很多錯漏),我很早就想單步分析殼了,但一直下不了決心,誰知道在這個胡
侃的文章中我竟然實現了這個想法.呵呵,太好了.其實在國外,我們crack經常研究的一個項目是逆向工程(Reverse Engineer),
就是把程式的源碼用crack工具逆向出來,這是我們學習編程和系統低層的一種好辦法,但可惜,在我們國內似乎非常少看
見這種文章,我這種單步分析的辦法雖然不是逆向工程,經過前幾篇的分析後,我確實感受到了逆向工程的好處,真希望逆向工程
在我們這裡發揚光大.
廢話少說,繼續分析我們的ASProtect 1.2x - 1.3x殼,經過上次的代碼之後,我們返回了這裡
00FE1000 90 nop ;這個nop估計是增加系統的相容性吧
00FE1001 60 pushad ;儲存所有寄存器的資料
00FE1002 E8 40060000 call 00FE1647 ;跟進
00FE1007 EB 44 jmp short 00FE104D
00FE1647 8B2C24 mov ebp,dword ptr ss:[esp] ;ebp=堆棧 ss:[0012FF68]=00FE1007
00FE164A 81ED 4B294400 sub ebp,44294B ;ebp=00B9E6BC
00FE1650 C3 retn ;返回
00FE1007 /EB 44 jmp short 00FE104D ;返回這裡,跳
00FE104D /BB 44294400 mov ebx,442944 ;ebx=442944
00FE1052 03DD add ebx,ebp ;EBX=00FE1007-44294B+442944=00FE1000,奸詐,竟然是移向00FE1000
00FE1054 2B9D 71294400 sub ebx,dword ptr ss:[ebp+442971] ;ebx=00FA0000
00FE105A 83BD D8304400 00 cmp dword ptr ss:[ebp+4430D8],0 ;ss:[00FE1794]=00000000
00FE1061 899D 2F2E4400 mov dword ptr ss:[ebp+442E2F],ebx ;ss:[00FE14EB]=ebx=00FA0000
00FE1067 0F85 3E050000 jnz 00FE15AB ;不等則跳
00FE106D 8D85 E0304400 lea eax,dword ptr ss:[ebp+4430E0] ;eax=地址=010F179C, (ASCII "kernel32.dll")
00FE1073 50 push eax ;壓入棧
00FE1074 FF95 EC314400 call dword ptr ss:[ebp+4431EC] ;ss:[010F18A8]=7C80B529 (kernel32.GetModuleHandleA)返回kernel32.dll模組的控制代碼
00FE107A 8985 DC304400 mov dword ptr ss:[ebp+4430DC],eax ;ss:[010F1798]=EAX=78C00000
00FE1080 8BF8 mov edi,eax ;EDI=EAX=78C0000
00FE1082 8D9D ED304400 lea ebx,dword ptr ss:[ebp+4430ED] ;ebx=地址=010F17A9, (ASCII "VirtualAlloc")
00FE1088 53 push ebx
00FE1089 50 push eax
00FE108A FF95 E8314400 call dword ptr ss:[ebp+4431E8]
00FE1090 8985 79294400 mov dword ptr ss:[ebp+442979],eax
00FE1096 8D9D FA304400 lea ebx,dword ptr ss:[ebp+4430FA]
00FE109C 53 push ebx
00FE109D 57 push edi
00FE109E FF95 E8314400 call dword ptr ss:[ebp+4431E8]
00FE10A4 8985 7D294400 mov dword ptr ss:[ebp+44297D],eax
00FE10AA 8B85 2F2E4400 mov eax,dword ptr ss:[ebp+442E2F]
00FE10B0 8985 D8304400 mov dword ptr ss:[ebp+4430D8],eax
00FE10B6 6A 04 push 4
00FE10B8 68 00100000 push 1000
00FE10BD 68 46050000 push 546
00FE10C2 6A 00 push 0
00FE10C4 FF95 79294400 call dword ptr ss:[ebp+442979]
00FE10CA 8985 75294400 mov dword ptr ss:[ebp+442975],eax
00FE10D0 8D9D 452A4400 lea ebx,dword ptr ss:[ebp+442A45]
00FE10D6 50 push eax
00FE10D7 53 push ebx
00FE10D8 E8 74050000 call 00FE1651
00FE10DD 8BC8 mov ecx,eax
00FE10DF 8DBD 452A4400 lea edi,dword ptr ss:[ebp+442A45]
00FE10E5 8BB5 75294400 mov esi,dword ptr ss:[ebp+442975]
00FE10EB F3:A4 rep movs byte ptr es:[edi],byte ptr d>
00FE10ED 8B85 75294400 mov eax,dword ptr ss:[ebp+442975]
00FE10F3 68 00800000 push 8000
00FE10F8 6A 00 push 0
00FE10FA 50 push eax
00FE10FB FF95 7D294400 call dword ptr ss:[ebp+44297D]
00FE1101 8D0E lea ecx,dword ptr ds:[esi]
00FE1103 8551 2C test dword ptr ds:[ecx+2C],edx
00FE1106 44 inc esp
00FE1107 07 pop es
00FE1108 50 push eax
00FE1109 C3 retn
--------------------------------------------------------------------------------
【著作權聲明】 本文純屬技術交流, 轉載請註明作者並保持文章的完整, 謝謝!