【文章标题】关于E语言写的使用硬盘序列号加密的程序通用切入点
【文章作者】hcbajiao(蓝雨[PCG])
【作者主页】
【作者邮箱】bj_008@163.com
【所属组织】[PCG],
http://poje.kmip.net:81QQ群成员
【软件名称】冒险岛加强外挂
【使用工具】OD,PEID
【软件限制】注册码
【破解平台】win xp sp2
【保护方式】UPX,Aspack
【开发语言】易语言
【本文写于】2005-04-27
【文章声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
―――――――――――――――――――――――――――――――――
【破解分析】
先用PEID查有壳,ASPack 2.12 -> Alexey Solodovnikov [Overlay],载入OD,手动解决,
430001 pushad OD载入程序停在这里
430002 call 冒险岛加.0043000A F7追入
430007 jmp 45A004F7
43000C push ebp
43000D retn
到这里
43000A pop ebp
43000B inc ebp
43000C push ebp
43000D retn 返回
到这里
430008 jmp short 冒险岛加.0043000E
43000A pop ebp
43000B inc ebp
43000C push ebp
43000D retn
43000E call 冒险岛加.00430014 F7追入
430013 jmp short 冒险岛加.00430072
430015 mov ebx,-13
到这里
430014 pop ebp
430015 mov ebx,-13
43001A add ebx,ebp
43001C sub ebx,30000
430022 cmp dword ptr ss:[ebp+422],0
430029 mov dword ptr ss:[ebp+422],ebx
43002F jnz 冒险岛加.0043039A
430035 lea eax,dword ptr ss:[ebp+42E]
43003B push eax
43003C call dword ptr ss:[ebp+F4D]
430042 mov dword ptr ss:[ebp+426],eax
430048 mov edi,eax
43004A lea ebx,dword ptr ss:[ebp+5E]
43004D push ebx
43004E push eax
43004F call dword ptr ss:[ebp+F49]
向下找POPAD指令
在这里
4303AF popad 在这里按F4
4303B0 jnz short 冒险岛加.004303BA
4303B2 mov eax,1
4303B7 retn 0C
4303BA push 0
4303BF retn
按F4后指令变成这样
4303AF popad
4303B0 jnz short 冒险岛加.004303BA 跳
4303B2 mov eax,1
4303B7 retn 0C
4303BA push 冒险岛加.0042EADF 这里压入第二层壳的入口
4303BF retn 返回到第二层壳的入口
第二层壳的入口是这样
42EADF nop
42EAE0 popad
42EAE1 mov esi,冒险岛加.0041B000
42EAE6 lea edi,dword ptr ds:[esi+FFFE6000]
42EAEC add word ptr ds:[edi+2E704],5
42EAF5 push edi
42EAF6 or ebp,FFFFFFFF
42EAF9 jmp short 冒险岛加.0042EB0A
向下找PUSHAD指令
在这里
42EC36 pushad 在这里按F4
42EC37 jmp 冒险岛加.00403831 跳到真正的入口403831
42EC3C add byte ptr ds:[eax],al
42EC3E add byte ptr ds:[eax],al
42EC40 add byte ptr ds:[eax],al
42EC42 add byte ptr ds:[eax],al
42EC44 add byte ptr ds:[eax],al
真正的入口代码是这样
403831 push ebp 停在这里,现在用LOADPE选完全脱壳DUMP内存中的文件
403832 mov ebp,esp
403834 push -1
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课