WPE|52wpe|我爱WPE

 找回密码
 注册会员
搜索
  • 2198查看
  • 0回复

主题

好友

4976

积分

论坛元老

发表于 2010-3-8 23:33:14 |显示全部楼层
文是由ximo大牛的指导下完成,学到了很多东西,感谢ximo,膜拜ximo

脱壳目标:TPPpack加过的记事本(TPPpack主程序见附件,在tut发现的..)

1.SEH + AntiDRx01013010 > $  E8 00000000              call    01013015                                      ;  EP

01013015   $  5D                       pop     ebp

01013016   .  81ED F58F4000            sub     ebp, 0x408FF5

0101301C   .  60                       pushad

0101301D   .  33F6                     xor     esi, esi                                      ;  ESI清零

0101301F   .  E8 11000000              call    <SEH_1>

00495024    8B6424 08                  mov     esp, dword ptr [esp+0x8]                      ;  Drx清零
复制代码01013035 > $  64:FF35 00000000         push    dword ptr fs:[0]

0101303C   .  64:8925 00000000         mov     dword ptr fs:[0], esp

01013043   .  AD                       lods    dword ptr [esi]                               ;  造成第一次内存访问异常.Dr7清零

01013044   .  90                       nop



01013024   .  8B6424 08                mov     esp, dword ptr [esp+0x8]                      ;  异常出口

01013028   .  64:8F05 00000000         pop     dword ptr fs:[0]

0101302F   .  58                       pop     eax

01013030   .  61                       popad

01013031   .  EB 13                    jmp     short 01013046



01013046   ?  60                       pushad

01013047   ?  33FF                     xor     edi, edi                                      ;  edi清零

01013049   .  E8 00000000              call    <SEH_2>

0101304E >/$  830424 10                add     dword ptr [esp], 0x10

01013052  |.  64:8B07                  mov     eax, dword ptr fs:[edi]

01013055  |.  50                       push    eax

01013056  |.  64:8927                  mov     dword ptr fs:[edi], esp

01013059  |.  C607 00                  mov     byte ptr [edi], 0x0                           ;  再次造成内存访问异常.Dr7清零

0101305C  |.  90                       nop

0101305D  |.  90                       nop

0101305E  |.  8B7C24 0C                mov     edi, dword ptr [esp+0xC]                      ;  DRx全部清零

01013062  |.  33C0                     xor     eax, eax                                      ;  eax清零

01013064  |.  8947 04                  mov     dword ptr [edi+0x4], eax

01013067  |.  8947 08                  mov     dword ptr [edi+0x8], eax

0101306A  |.  8947 0C                  mov     dword ptr [edi+0xC], eax

0101306D  |.  8947 10                  mov     dword ptr [edi+0x10], eax

01013070  |.  8387 B8000000 27         add     dword ptr [edi+0xB8], 0x27

01013077  |.  33C0                     xor     eax, eax

01013079  \.  C3                       retn                                                  ;  返回到ntdll.7C9232A8

0101307A      1F                       db      1F
复制代码Dr0,Dr1,Dr2,Dr3是存放中断的地址,Dr6,Dr7是控制状态的(比如硬件写入断点还是执行等等),被清零了,你下的硬件断点信息全被清掉了,因此下的硬件断点也就失效了

2.Stolen code

bp VirtualProtect 解码后返回

alt+m 在x001000下内存访问断点 shift+f9就到fake oep了01007568  /$  68 BA750001              push    010075BA                                      ;  断在这里
复制代码向上一拉,全是00...

快速发帖

您需要登录后才可以回帖 登录 | 注册会员

手机版|Archiver|WPE|52wpe|我爱WPE ( 闽ICP备15009081号 )

GMT+8, 2024-5-4 06:48 , Processed in 0.062949 second(s), 16 queries .

返回顶部