菊罗汉 发表于 2021-3-5 03:55

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

slzslz 发表于 2021-3-5 07:01

请问楼主,tmd的版本号,the 和wl是不同的壳,难道是双层壳

15065837187 发表于 2021-3-5 09:10

谢谢分享

无闻无问 发表于 2021-3-5 12:56

你跟过去,看看补成功没?可以考虑循环一个字节一个字节的写入指定地址…

lili2312280 发表于 2021-3-5 17:05

感谢分享,前来学习

TQHN 发表于 2021-3-15 17:51

dll脱壳得解决重定位问题,挺麻烦的
页: [1]
查看完整版本: OD脱Themida WinLicense壳 用JMP跳转 但是跳转成功之后赋值失败