【破解作者】 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
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!