首页
社区
课程
招聘
[原创]第七题
发表于: 2017-6-15 10:47 4697

[原创]第七题

2017-6-15 10:47
4697

1、处理int3反调试,可以看到:

0040F2CA                             |> \68 E2DE4000   PUSH 7-不问少.0040DEE2                                ; /pTopLevelFilter = 7-不问少.0040DEE2
0040F2CF                             |.  FF15 F83C4500 CALL DWORD PTR DS:[<&KERNEL32.SetUnhandledExceptio>; \SetUnhandledExceptionFilter

0040DEE2 为程序处理异常的函数:

0040DEE2                             /.  55            PUSH EBP
0040DEE3                             |.  8BEC          MOV EBP,ESP
0040DEE5                             |.  56            PUSH ESI
0040DEE6                             |.  8B75 08       MOV ESI,DWORD PTR SS:[EBP+8]
0040DEE9                             |.  8B06          MOV EAX,DWORD PTR DS:[ESI]
0040DEEB                             |.  8138 03000080 CMP DWORD PTR DS:[EAX],80000003          比较是不是int3
0040DEF1                             |.  75 25         JNZ SHORT 7-不问少.0040DF18
0040DEF3                             |.  6A 00         PUSH 0                                             ; /lParam = 0
0040DEF5                             |.  6A 00         PUSH 0                                             ; |wParam = 0
0040DEF7                             |.  FF35 302C4000 PUSH DWORD PTR DS:[402C30]                         ; |Message = MSG(464)
0040DEFD                             |.  FF35 00264500 PUSH DWORD PTR DS:[452600]                         ; |hWnd = 9303D4
0040DF03                             |.  FF15 E03D4500 CALL DWORD PTR DS:[<&USER32.PostMessageW>]         ; \PostMessageW        //发送窗口消息,执行正常的流程
0040DF09                             |.  8B46 04       MOV EAX,DWORD PTR DS:[ESI+4]
0040DF0C                             |.  8380 B8000000>ADD DWORD PTR DS:[EAX+B8],9
0040DF13                             |.  83C8 FF       OR EAX,FFFFFFFF
0040DF16                             |.  EB 02         JMP SHORT 7-不问少.0040DF1A
0040DF18                             |>  33C0          XOR EAX,EAX
0040DF1A                             |>  5E            POP ESI
0040DF1B                             |.  5D            POP EBP
0040DF1C                             \.  C2 0400       RETN 4

通过PostMessageW发送消息,可以推断出,最终会执行到0040E3ED :

0040E3ED                             |.  8D45 1C       LEA EAX,DWORD PTR SS:[EBP+1C]
0040E3F0                             |.  C745 1C 01000>MOV DWORD PTR SS:[EBP+1C],1
0040E3F7                             |.  50            PUSH EAX
0040E3F8                             |.  FF75 14       PUSH DWORD PTR SS:[EBP+14]
0040E3FB                             |.  8BCB          MOV ECX,EBX
0040E3FD                             |.  56            PUSH ESI
0040E3FE                             |.  57            PUSH EDI
0040E3FF                             |.  E8 C9200000   CALL 7-不问少.004104CD         这里就是效验key的函数


然而每次按下按钮会执行到:

0040E478                             |.  8D45 1C       LEA EAX,DWORD PTR SS:[EBP+1C]
0040E47B                             |.  897D 1C       MOV DWORD PTR SS:[EBP+1C],EDI
0040E47E                             |.  50            PUSH EAX
0040E47F                             |.  FF75 14       PUSH DWORD PTR SS:[EBP+14]
0040E482                             |.  51            PUSH ECX
0040E483                             |.  6A 00         PUSH 0
0040E485                             |.  8BCB          MOV ECX,EBX
0040E487                             |.  E8 F91D0000   CALL 7-不问少.00410285              这个为执行int3反调试


00410285如下:


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 1
支持
分享
最新回复 (2)
雪    币: 112
活跃值: (27)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
2
谢谢分享
2017-6-15 13:12
0
雪    币: 598
活跃值: (282)
能力值: ( LV13,RANK:330 )
在线值:
发帖
回帖
粉丝
3
用idc脚本调试比较方便
2017-6-15 14:34
0
游客
登录 | 注册 方可回帖
返回
//