首页
社区
课程
招聘
[旧帖] [求助]bp ExitWindowsEx下了断点如何去校验? 0.00雪花
发表于: 2012-1-17 00:51 1329

[旧帖] [求助]bp ExitWindowsEx下了断点如何去校验? 0.00雪花

2012-1-17 00:51
1329
请高手看看,新手不太懂请教下。

004045FE  |. /74 11         je      short 00404611
00404600  |. |E8 ABFEFFFF   call    004044B0
00404605  |. |E8 32FFFFFF   call    0040453C
0040460A  |. |33C0          xor     eax, eax
0040460C  |. |A3 04809200   mov     dword ptr [928004], eax
00404611  |> \807B 28 02    /cmp     byte ptr [ebx+28], 2
00404615  |.  75 0A         |jnz     short 00404621
00404617  |.  833E 00       |cmp     dword ptr [esi], 0
0040461A  |.  75 05         |jnz     short 00404621
0040461C  |.  33C0          |xor     eax, eax
0040461E  |.  8943 0C       |mov     dword ptr [ebx+C], eax
00404621  |>  E8 FEFCFFFF   |call    00404324
00404626  |.  807B 28 01    |cmp     byte ptr [ebx+28], 1
0040462A  |.  76 05         |jbe     short 00404631
0040462C  |.  833E 00       |cmp     dword ptr [esi], 0
0040462F  |.  74 21         |je      short 00404652
00404631  |>  8B43 10       |mov     eax, dword ptr [ebx+10]
00404634  |.  85C0          |test    eax, eax
00404636  |.  74 1A         |je      short 00404652
00404638  |.  E8 53220000   |call    00406890
0040463D  |.  8B53 10       |mov     edx, dword ptr [ebx+10]
00404640  |.  8B42 10       |mov     eax, dword ptr [edx+10]
00404643  |.  3B42 04       |cmp     eax, dword ptr [edx+4]
00404646  |.  74 0A         |je      short 00404652
00404648  |.  85C0          |test    eax, eax
0040464A  |.  74 06         |je      short 00404652
0040464C  |.  50            |push    eax                             ; /hLibModule
0040464D  |.  E8 52CFFFFF   |call    <jmp.&kernel32.FreeLibrary>     ; \FreeLibrary
00404652  |>  E8 A5FCFFFF   |call    004042FC
00404657  |.  807B 28 01    |cmp     byte ptr [ebx+28], 1
0040465B  |.  75 03         |jnz     short 00404660
0040465D  |.  FF53 24       |call    dword ptr [ebx+24]
00404660  |>  807B 28 00    |cmp     byte ptr [ebx+28], 0
00404664  |.  74 05         |je      short 0040466B
00404666  |.  E8 A1FEFFFF   |call    0040450C
0040466B  |>  833B 00       |cmp     dword ptr [ebx], 0
0040466E  |.  75 17         |jnz     short 00404687
00404670  |.  833D 28E09400>|cmp     dword ptr [94E028], 0
00404677  |.  74 06         |je      short 0040467F
00404679  |.  FF15 28E09400 |call    dword ptr [94E028]
0040467F  |>  8B06          |mov     eax, dword ptr [esi]
00404681  |.  50            |push    eax                             ; /ExitCode
00404682  |.  E8 FDCEFFFF   |call    <jmp.&kernel32.ExitProcess>     ; \ExitProcess  断点
00404687  |>  8B03          |mov     eax, dword ptr [ebx]
00404689  |.  56            |push    esi
0040468A  |.  8BF0          |mov     esi, eax
0040468C  |.  8BFB          |mov     edi, ebx
0040468E  |.  B9 0B000000   |mov     ecx, 0B
00404693  |.  F3:A5         |rep     movs dword ptr es:[edi], dword >
00404695  |.  5E            |pop     esi
00404696  \.^ E9 76FFFFFF   \jmp     00404611

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
http://221.1.222.15:82/down/ScJxcscsoft.zip这是地址。
小心这里 不知我nop的对不对

007E29EE  |. /74 08         je      short 007E29F8   我nop掉了
007E29F0  |. |4E            dec     esi
007E29F1  |. |74 16         je      short 007E2A09  我nop掉了
007E29F3  |. |4E            dec     esi
007E29F4  |. |74 24         je      short 007E2A1A  我nop掉了
007E29F6  |. |EB 31         jmp     short 007E2A29
007E29F8  |> \6A 00         push    0                                ; /Reserved = 0; Case 1 of switch 007E29ED
007E29FA  |.  6A 06         push    6                                ; |Options = EWX_REBOOT|EWX_FORCE
007E29FC  |.  E8 3356C2FF   call    <jmp.&user32.ExitWindowsEx>      ; \ExitWindowsEx  1
007E2A01  |.  83F8 01       cmp     eax, 1
007E2A04  |.  1BDB          sbb     ebx, ebx
007E2A06  |.  43            inc     ebx
007E2A07  |.  EB 20         jmp     short 007E2A29
007E2A09  |>  6A 00         push    0                                ; /Reserved = 0; Case 2 of switch 007E29ED
007E2A0B  |.  6A 0C         push    0C                               ; |Options = EWX_FORCE|EWX_POWEROFF
007E2A0D  |.  E8 2256C2FF   call    <jmp.&user32.ExitWindowsEx>      ; \ExitWindowsEx   2
007E2A12  |.  83F8 01       cmp     eax, 1
007E2A15  |.  1BDB          sbb     ebx, ebx
007E2A17  |.  43            inc     ebx
007E2A18  |.  EB 0F         jmp     short 007E2A29
007E2A1A  |>  6A 00         push    0                                ; /Reserved = 0; Case 3 of switch 007E29ED
007E2A1C  |.  6A 04         push    4                                ; |Options = EWX_FORCE
007E2A1E  |.  E8 1156C2FF   call    <jmp.&user32.ExitWindowsEx>      ; \ExitWindowsEx  3
2012-1-17 00:59
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
老师们帮下忙好不好,看看上面如何解决?谢谢啊
2012-1-17 09:52
0
雪    币: 180
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
还好只是关机……
F8单步,将脱壳后和脱壳前的程序流程进行对比,很容易就找到原因。
009274D7 8B45 E4 mov eax,dword ptr ss:[ebp-1C] ;文件的大小 :ASCII "2255360"给eax
009274DA E8 C52CAEFF call ScJxc.0040A1A4 ;计算出来一个值给eax
009274DF 3D 00003000 cmp eax,300000
009274E4 7E 0C jle short ScJxc.009274F2 ;必须让它跳,不然就挂了

你可以直接改跳转,也可以把300000改为比你脱壳后程序此处eax大或者相等的值。
2012-1-17 10:32
0
游客
登录 | 注册 方可回帖
返回
//