OD脱Themida WinLicense壳 用JMP跳转 但是跳转成功之后赋值失败
跑一下脱壳出来的文件custom_dump_NEW8888.dll运行,出现异常.
重新加载custom_dump__.dll
od开run跟踪,开记录到文件,ctl+F8跑起
出现上面异常
看跟踪记录
103C16FC 主 addesi,0x7FFFFFFF ; FL=CA,ESI=7FFFFFFE
103C1702 主 xoresi,0x4 ; FL=P,ESI=7FFFFFFA
103C1708 主 movesi,0x400 ;ESI=00000400
103C170D 主 oresi,edx ;ESI=0000A55F
103C170F 主 addesi,0x20 ; FL=0,ESI=0000A57F
103C1715 主 subesi,0x1C ; FL=P,ESI=0000A563
103C171B 主 addesi,edi ; FL=A,ESI=10384CD0
103C171D 主 oresi,0x800 ;FL=0
103C1723 主 subesi,0x1F ; FL=PA,ESI=10384CB1
103C1729 主 oresi,0x400 ;FL=P
103C172F 主 andesi,0x80000000 ; FL=PZ,ESI=00000000
103C1735 主 oresi,0x28 ; FL=P,ESI=00000028
103C173B 主 oresi,edi ; FL=0,ESI=1037A76D
103C173D 主 subesi,0x28 ;ESI=1037A745
103C1743 主 movedi,0x1 ;EDI=00000001
103C1748 主 xordx,0xA5E8 ; FL=P,EDX=000000B7
103C174D 主 xoredi,ecx ; FL=0,EDI=0F6A303E
103C174F 主 addedx,ebp ; FL=P,EDX=1037A787
103C1751 主 movedx,dword ptr ds: ;EDX=00CD76EC ;//下F2断点
103C1753 主 addedi,0x80000000 ; FL=S,EDI=8F6A303E
103C1759 主 pushdword ptr ds: ;ECX=0013F31C, ESP=0013F2F8
7C92E480 主 movebx,dword ptr ss: ;EBX=0013F300
7C92E483 主 pushecx ;ESP=0013F2F4
7C92E484 主 pushebx ;ESP=0013F2F0
7C92E485 主 jmp0016003C
0016003C 主 pushad ;ESP=0013F2D0
0016003D 主 pushfd ;ESP=0013F2CC
0016003E 主 addecx,0x4 ; FL=A,ECX=0013F320
00160041 主 movesi,ecx ;ESI=0013F320
00160043 主 movedx,ecx ;EDX=0013F320
00160045 主 movedi,0x160000 ;EDI=00160000
0016004A 主 movecx,0x18 ;ECX=00000018
0016004F 主 cld
00160050 主 repmovs byte ptr es:,byte ptr ds:; ECX=00000000,ESI=0013F338, EDI=00160018
00160052 主 movesi,0x160018 ;ESI=00160018
00160057 主 movedi,edx ;EDI=0013F320
00160059 主 movecx,0x18 ;ECX=00000018
0016005E 主 repmovs byte ptr es:,byte ptr ds:; ECX=00000000,ESI=00160030, EDI=0013F338
00160060 主 popfd ; FL=S,ESP=0013F2D0
00160061 主 popad ;ECX=0013F31C, EDX=00CD76EC, ESP=0013F2F0, ESI=1037A745,EDI=8F6A303E
00160062 主 call7C94A824 ; FL=PZ,EAX=00000000, ECX=7D79F598, EDX=00000000, EBX=00000000,ESP=0013FEA0, EBP=0013FF9C, ESI=7C92DE6E,EDI=00001001 LOADDLL 已终止:Can't Load LoadDll.dllKiFastSystemCallR>retn RUN 跟踪已关闭
到上面附近的应用程序里下F2断点,不要到系统指令里下,根据经验,我下到103C1751位置,重新加载F9,断在103C1751,F7下来到103C1759,看信息窗
ds:=???产生异常的地方,新开OD加载原始程序custom.dll,103C1759下硬件断点,F9,断在103C1759,,看信息窗
ds:=500875FF看ds:数据窗口
找个空的地方补上103C1759处 ,用JMP跳转
10610528处:
依然是ds:=??? 赋值失败
然后我又摸索了一个晚上,觉得应该是改写成一个堆栈的 压入数据语句。尝试无数语句。我没办法了求助各位大神,到底该怎么办,怎么写,我现在都快崩溃了
附上各种写法:
push dword ptr ds:
mov dword ptr ds:,0x500875FF
jmp 103C175B
mov eax,0x500875FF
push eax
push dword ptr ds:
jmp 103C175B
mov eax,0x500875FF
push eax
mov dword ptr ds:,eax
push dword ptr ds:
jmp 103C175B
mov eax,0x500875FF
push eax
mov edx,dword ptr ds:
push dword ptr ds:
jmp 103C175B
mov eax,0x500875FF
push eax
lea dword ptr ds:,eax
push dword ptr ds:
jmp 103C175B
请问楼主,tmd的版本号,the 和wl是不同的壳,难道是双层壳 谢谢分享 你跟过去,看看补成功没?可以考虑循环一个字节一个字节的写入指定地址… 感谢分享,前来学习 dll脱壳得解决重定位问题,挺麻烦的
页:
[1]