我在学习破一个dll 加aspack 的壳是时候,我按照前辈的方法找到了OEP ,也找到了重定位程序。但是怎么也找不到输入表。我把我的步骤写在下面,请给我前辈指点一下,是不是我的OEP找的不对,还是其他地方除了问题。
1。用OD加载DLL, 搜索 sub ecx,8
shr ecx,1
找到地址重定位程序,并得到地址重定位的大小。
009C81C8 8785 35050000 xchg dword ptr ss:[ebp+535],eax
009C81CE 8B95 22040000 mov edx,dword ptr ss:[ebp+422]
009C81D4 8B85 2D050000 mov eax,dword ptr ss:[ebp+52D]
009C81DA 2BD0 sub edx,eax
009C81DC 74 79 je short DesignDl.009C8257
009C81DE 8BC2 mov eax,edx
009C81E0 C1E8 10 shr eax,10
009C81E3 33DB xor ebx,ebx
009C81E5 8BB5 39050000 mov esi,dword ptr ss:[ebp+539]
009C81EB 03B5 22040000 add esi,dword ptr ss:[ebp+422]
009C81F1 833E 00 cmp dword ptr ds:[esi],0
009C81F4 74 61 je short DesignDl.009C8257
009C81F6 8B4E 04 mov ecx,dword ptr ds:[esi+4]
009C81F9 83E9 08 sub ecx,8
009C81FC D1E9 shr ecx,1
009C81FE 8B3E mov edi,dword ptr ds:[esi]
009C8200 03BD 22040000 add edi,dword ptr ss:[ebp+422]
009C8206 83C6 08 add esi,8
009C8209 66:8B1E mov bx,word ptr ds:[esi]
009C820C C1EB 0C shr ebx,0C
009C820F 83FB 01 cmp ebx,1
009C8212 74 0C je short DesignDl.009C8220
009C8214 83FB 02 cmp ebx,2
009C8217 74 16 je short DesignDl.009C822F
009C8219 83FB 03 cmp ebx,3
009C821C 74 20 je short DesignDl.009C823E
009C821E EB 2C jmp short DesignDl.009C824C
009C8220 66:8B1E mov bx,word ptr ds:[esi]
009C8223 81E3 FF0F0000 and ebx,0FFF
009C8229 66:01041F add word ptr ds:[edi+ebx],ax
009C822D EB 1D jmp short DesignDl.009C824C
009C822F 66:8B1E mov bx,word ptr ds:[esi]
009C8232 81E3 FF0F0000 and ebx,0FFF
009C8238 66:01141F add word ptr ds:[edi+ebx],dx
009C823C EB 0E jmp short DesignDl.009C824C
009C823E 66:8B1E mov bx,word ptr ds:[esi]
009C8241 81E3 FF0F0000 and ebx,0FFF
009C8247 01141F add dword ptr ds:[edi+ebx],edx
009C824A EB 00 jmp short DesignDl.009C824C
009C824C 66:830E FF or word ptr ds:[esi],0FFFF
009C8250 83C6 02 add esi,2
009C8253 ^ E2 B4 loopd short DesignDl.009C8209
009C8255 ^ EB 9A jmp short DesignDl.009C81F1
009C8257 8B95 22040000 mov edx,dword ptr ss:[ebp+422]
地址重定位表的大小=9ae640-99d000=11640
2.搜索 61,75
程序跳到
009C83AF 61 popad
009C83B0 75 08 jnz short DesignDl.009C83BA
009C83B2 B8 01000000 mov eax,1
009C83B7 C2 0C00 retn 0C
009C83BA 68 00000000 push 0
009C83BF C3 retn //跳到OEP
OEP 出代码
00992AE0 55 push ebp
00992AE1 8BEC mov ebp,esp
00992AE3 83C4 B4 add esp,-4C
00992AE6 B8 48289900 mov eax,DesignDl.00992848
00992AEB E8 7846EEFF call DesignDl.00877168
00992AF0 E8 A7B5FFFF call DesignDl.0098E09C
00992AF5 E8 D210EEFF call DesignDl.00873BCC
00992AFA 8BC0 mov eax,eax
我发现在此处滚动窗口屏幕就代码就变化
是不是OPE找的不对啊,
3。按照前辈介绍的方法找输入表
任意跳一个call [XXXX] 看XXXX的内存
我发现找到的都不连续,为什么呢?
各位大侠能指点一下么?
我找的是999168到9993c7 总共 214 H 大小。
我上传了附件。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)