PEbundle V2.3脱壳 - 某算法注册机
【脱文标题】 PEbundle V2.3脱壳 - 某算法注册机
【脱文作者】 weiyi75[Dfcg]
【作者邮箱】 weiyi75@sohu.com
【作者主页】 Dfcg官方大本营 --- http://www.chinadfcg.com/
【使用工具】 Fi,Ollydbg,Loadpe,Imprec1.42
【脱壳平台】 Win2K
【软件名称】 keygen
【软件简介】 PEbundle v2.3 加壳的一个某算法注册机
【软件大小】 164KB
【下载地址】 本地下载
【加壳方式】 PEbundle v2.3
【保护方式】 压缩壳,IAT简单加密
【脱壳声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:
--------------------------------------------------------------------------------
【脱壳内容】
看过 PEbundle V2.3脱壳——唐诗三百首 V1.2 脱文,大家对PEbundle V2.3有些概念吧,特点是循环多。
既然有了前面的经验,就没必要慢慢跟踪了,首先找Oep。
OD设置忽略全部异常设置,载入程序,无须隐藏OD,因为PEbundle是个压缩壳。
00439000 > 9C pushfd //入口点 00439001 60 pushad 00439002 E8 02000000 call keygen.00439009 00439007 33C0 xor eax, eax 00439009 8BC4 mov eax, esp 0043900B 83C0 04 add eax, 4 0043900E 93 xchg eax, ebx 0043900F 8BE3 mov esp, ebx 00439011 8B5B FC mov ebx, dword ptr ds:[ebx-4] 00439014 81EB 07304000 sub ebx, keygen.00403007 ; ASCII "D$" 0043901A 87DD xchg ebp, ebx 0043901C 80BD DD3B4000 0>cmp byte ptr ss:[ebp+403BDD], 0 00439023 74 21 je short keygen.00439046 00439025 8D85 D6384000 lea eax, dword ptr ss:[ebp+4038D6] 0043902B 50 push eax 0043902C FF95 B2384000 call dword ptr ss:[ebp+4038B2] 00439032 8D8D 2C3A4000 lea ecx, dword ptr ss:[ebp+403A2C] 00439038 51 push ecx 00439039 50 push eax 0043903A FF95 A2384000 call dword ptr ss:[ebp+4038A2] ....................................................................................
找Oep试试我的二次软硬断点结合法,这个方法只能找Oep,IAT无法避免加密。
命令行 d 12ffc0
0012FFC0 F8 FF 12 00 F5 87 E6 77 A8 16 55 00 56 00 00 00 ?.鯂鎤?U.V... //已经有数据了,没关系,还是下个硬件写入dword断点 0012FFD0 00 F0 FD 7F 00 02 00 00 C8 FF 12 00 00 02 00 00 .瘕...?.... 0012FFE0 FF FF FF FF B4 F0 E7 77 C8 8E E6 77 00 00 00 00 答鐆葞鎤.... 0012FFF0 00 00 00 00 00 00 00 00 00 90 43 00 00 00 00 .........怌.....
F9运行
硬件断点1
00439376 C3 retn 00439377 C8 000000 enter 0, 0 0043937B 57 push edi 0043937C 56 push esi 0043937D 8B75 08 mov esi, dword ptr ss:[ebp+8] 00439380 8B7D 0C mov edi, dword ptr ss:[ebp+C] 00439383 8A06 mov al, byte ptr ds:[esi] 00439385 3C 61 cmp al, 61 00439387 72 06 jb short keygen.0043938F 00439389 3C 7A cmp al, 7A 0043938B 77 02 ja short keygen.0043938F 0043938D 04 E0 add al, 0E0 0043938F 8A27 mov ah, byte ptr ds:[edi] 00439391 80FC 61 cmp ah, 61 00439394 72 08 jb short keygen.0043939E 00439396 80FC 7A cmp ah, 7A 00439399 77 03 ja short keygen.0043939E 0043939B 80C4 E0 add ah, 0E0 0043939E 46 inc esi 0043939F 47 inc edi 004393A0 837D 10 01 cmp dword ptr ss:[ebp+10], 1 004393A4 75 01 jnz short keygen.004393A7 ...........................................................................
然后Alt+M 打开内存镜像窗口。
内存镜像,项目 12 地址=00401000 //Code 段下内存访问断点,F9运行 大小=0000D000 (53248.) Owner=keygen 00400000 区段=.text 包含=code 类型=Imag 01001002 访问=R 初始访问=RWE
内存断点
0040D1EF /. 55 push ebp //OEP 入口,LoadPe脱壳 0040D1F0 |. 8BEC mov ebp, esp 0040D1F2 |. 6A FF push -1 0040D1F4 |. 68 10FD4000 push keygen.0040FD10 0040D1F9 |. 68 4ED34000 push keygen.0040D34E ; jmp to MSVCRT._except_handler3; SE handler installation 0040D1FE |. 64:A1 0000000>mov eax, dword ptr fs:[0] 0040D204 |. 50 push eax 0040D205 |. 64:8925 00000>mov dword ptr fs:[0], esp 0040D20C |. 83EC 68 sub esp, 68 0040D20F |. 53 push ebx 0040D210 |. 56 push esi 0040D211 |. 57 push edi 0040D212 |. 8965 E8 mov dword ptr ss:[ebp-18], esp 0040D215 |. 33DB xor ebx, ebx 0040D217 |. 895D FC mov dword ptr ss:[ebp-4], ebx 0040D21A |. 6A 02 push 2 0040D21C |. FF15 54E44000 call dword ptr ds:[40E454] ; MSVCRT.__set_app_type 0040D222 |. 59 pop ecx 0040D223 |. 830D 70234100>or dword ptr ds:[412370], FFFFFFFF 0040D22A |. 830D 74234100>or dword ptr ds:[412374], FFFFFFFF 0040D231 |. FF15 50E44000 call dword ptr ds:[40E450] ; MSVCRT.__p__fmode 0040D237 |. 8B0D 64234100 mov ecx, dword ptr ds:[412364] 0040D23D |. 8908 mov dword ptr ds:[eax], ecx 0040D23F |. FF15 4CE44000 call dword ptr ds:[40E44C] ; MSVCRT.__p__commode .........................................................................................
1 2 下一页 |