首页
社区
课程
招聘
[旧帖] [求助]哪位达人帮我分析一下这段代码! 0.00雪花
发表于: 2008-8-14 16:28 3916

[旧帖] [求助]哪位达人帮我分析一下这段代码! 0.00雪花

2008-8-14 16:28
3916
0040C530   .  64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
0040C536   .  6A FF         PUSH -1
0040C538   .  68 FCFF4300   PUSH AtLarge2.0043FFFC
0040C53D   .  50            PUSH EAX
0040C53E   .  64:8925 00000>MOV DWORD PTR FS:[0],ESP
0040C545   .  81EC 64020000 SUB ESP,264
0040C54B   .  56            PUSH ESI
0040C54C   .  8BF1          MOV ESI,ECX
0040C54E   .  E8 7FC10000   CALL <JMP.&MFC42u.#2371>
0040C553   .  8A86 6C350000 MOV AL,BYTE PTR DS:[ESI+356C]
0040C559   .  84C0          TEST AL,AL
0040C55B   .  0F85 8A010000 JNZ AtLarge2.0040C6EB
0040C561   .  8B8424 780200>MOV EAX,DWORD PTR SS:[ESP+278]
0040C568   .  85C0          TEST EAX,EAX
0040C56A   .  0F84 7B010000 JE AtLarge2.0040C6EB
0040C570   .  8B86 68350000 MOV EAX,DWORD PTR DS:[ESI+3568]
0040C576   .  57            PUSH EDI
0040C577   .  85C0          TEST EAX,EAX
0040C579   .  74 40         JE SHORT AtLarge2.0040C5BB
0040C57B   .  8B50 20       MOV EDX,DWORD PTR DS:[EAX+20]
0040C57E   .  8B3D 6C274400 MOV EDI,DWORD PTR DS:[<&USER32.GetWindow>;  USER32.GetWindowRect
0040C584   .  8D4C24 20     LEA ECX,DWORD PTR SS:[ESP+20]
0040C588   .  51            PUSH ECX                                 ; /pRect
0040C589   .  52            PUSH EDX                                 ; |hWnd
0040C58A   .  FFD7          CALL EDI                                 ; \GetWindowRect
0040C58C   .  8B4E 20       MOV ECX,DWORD PTR DS:[ESI+20]
0040C58F   .  8D4424 10     LEA EAX,DWORD PTR SS:[ESP+10]
0040C593   .  50            PUSH EAX                                 ; /pRect
0040C594   .  51            PUSH ECX                                 ; |hWnd
0040C595   .  C686 6C350000>MOV BYTE PTR DS:[ESI+356C],1             ; |
0040C59C   .  FFD7          CALL EDI                                 ; \GetWindowRect
0040C59E   .  8B5424 1C     MOV EDX,DWORD PTR SS:[ESP+1C]            ;  (初始 cpu 选择)
0040C5A2   .  8B4424 20     MOV EAX,DWORD PTR SS:[ESP+20]
0040C5A6   .  8B8E 68350000 MOV ECX,DWORD PTR DS:[ESI+3568]
0040C5AC   .  6A 01         PUSH 1
0040C5AE   .  6A 00         PUSH 0
0040C5B0   .  6A 00         PUSH 0
0040C5B2   .  52            PUSH EDX
0040C5B3   .  50            PUSH EAX
0040C5B4   .  6A 00         PUSH 0
0040C5B6   .  E8 25BF0000   CALL <JMP.&MFC42u.#6193>
0040C5BB   >  E8 AEBE0000   CALL <JMP.&MFC42u.#1165>
0040C5C0   .  8B40 04       MOV EAX,DWORD PTR DS:[EAX+4]
0040C5C3      8A88 FC000000 MOV CL,BYTE PTR DS:[EAX+FC]
0040C5C9   .  84C9          TEST CL,CL
0040C5CB      0F85 AA000000 JNZ AtLarge2.0040C67B
0040C5D1   .  6A 00         PUSH 0
0040C5D3   .  8D4C24 34     LEA ECX,DWORD PTR SS:[ESP+34]
0040C5D7   .  E8 24420000   CALL AtLarge2.00410800
0040C5DC   .  8D4C24 30     LEA ECX,DWORD PTR SS:[ESP+30]
0040C5E0   .  C78424 740200>MOV DWORD PTR SS:[ESP+274],0
0040C5EB   .  E8 34BD0000   CALL <JMP.&MFC42u.#2506>
0040C5F0   .  68 34524500   PUSH AtLarge2.00455234                   ;  at-large recorder 2 is running in demo mode...
0040C5F5   .  8D4C24 0C     LEA ECX,DWORD PTR SS:[ESP+C]
0040C5F9   .  E8 5EBE0000   CALL <JMP.&MFC42u.#538>
0040C5FE   .  C68424 740200>MOV BYTE PTR SS:[ESP+274],1
0040C606   .  E8 63BE0000   CALL <JMP.&MFC42u.#1165>
0040C60B   .  8B40 04       MOV EAX,DWORD PTR DS:[EAX+4]
0040C60E   .  8D4C24 08     LEA ECX,DWORD PTR SS:[ESP+8]
0040C612   .  51            PUSH ECX
0040C613   .  8BB8 14010000 MOV EDI,DWORD PTR DS:[EAX+114]
0040C619   .  8D8F 0C020000 LEA ECX,DWORD PTR DS:[EDI+20C]
0040C61F   .  E8 A0BF0000   CALL <JMP.&MFC42u.#858>
0040C624   .  8B57 20       MOV EDX,DWORD PTR DS:[EDI+20]
0040C627   .  6A 00         PUSH 0                                   ; /Erase = FALSE
0040C629   .  6A 00         PUSH 0                                   ; |pRect = NULL
0040C62B   .  52            PUSH EDX                                 ; |hWnd
0040C62C   .  FF15 04274400 CALL DWORD PTR DS:[<&USER32.InvalidateRe>; \InvalidateRect
0040C632   .  8D4C24 08     LEA ECX,DWORD PTR SS:[ESP+8]
0040C636   .  C68424 740200>MOV BYTE PTR SS:[ESP+274],0
0040C63E   .  E8 01BE0000   CALL <JMP.&MFC42u.#800>
0040C643   .  8D8C24 900000>LEA ECX,DWORD PTR SS:[ESP+90]
0040C64A   .  C78424 740200>MOV DWORD PTR SS:[ESP+274],2
0040C655   .  C78424 900000>MOV DWORD PTR SS:[ESP+90],AtLarge2.??_7C>
0040C660   .  E8 ABCA0000   CALL AtLarge2.?Destroy@CxImage@@QAE_NXZ
0040C665   .  8D4C24 30     LEA ECX,DWORD PTR SS:[ESP+30]
0040C669   .  C78424 740200>MOV DWORD PTR SS:[ESP+274],-1
0040C674   .  E8 A1BD0000   CALL <JMP.&MFC42u.#641>
0040C679   .  EB 59         JMP SHORT AtLarge2.0040C6D4
0040C67B   >  68 D4514500   PUSH AtLarge2.004551D4                   ;  thank you for registering at-large recorder 2!
0040C680   .  8D4C24 10     LEA ECX,DWORD PTR SS:[ESP+10]
0040C684   .  E8 D3BD0000   CALL <JMP.&MFC42u.#538>
0040C689   .  C78424 740200>MOV DWORD PTR SS:[ESP+274],3
0040C694   .  E8 D5BD0000   CALL <JMP.&MFC42u.#1165>
0040C699   .  8B40 04       MOV EAX,DWORD PTR DS:[EAX+4]
0040C69C   .  8BB8 14010000 MOV EDI,DWORD PTR DS:[EAX+114]
0040C6A2   .  8D4424 0C     LEA EAX,DWORD PTR SS:[ESP+C]
0040C6A6   .  50            PUSH EAX
0040C6A7   .  8D8F 0C020000 LEA ECX,DWORD PTR DS:[EDI+20C]
0040C6AD   .  E8 12BF0000   CALL <JMP.&MFC42u.#858>
0040C6B2   .  8B4F 20       MOV ECX,DWORD PTR DS:[EDI+20]
0040C6B5   .  6A 00         PUSH 0                                   ; /Erase = FALSE
0040C6B7   .  6A 00         PUSH 0                                   ; |pRect = NULL
0040C6B9   .  51            PUSH ECX                                 ; |hWnd
0040C6BA   .  FF15 04274400 CALL DWORD PTR DS:[<&USER32.InvalidateRe>; \InvalidateRect
0040C6C0   .  8D4C24 0C     LEA ECX,DWORD PTR SS:[ESP+C]
0040C6C4   .  C78424 740200>MOV DWORD PTR SS:[ESP+274],-1
0040C6CF   .  E8 70BD0000   CALL <JMP.&MFC42u.#800>
0040C6D4   >  8B56 20       MOV EDX,DWORD PTR DS:[ESI+20]
0040C6D7   .  6A 00         PUSH 0                                   ; /Timerproc = NULL
0040C6D9   .  68 D0070000   PUSH 7D0                                 ; |Timeout = 2000. ms
0040C6DE   .  68 ADBA0000   PUSH 0BAAD                               ; |TimerID = BAAD (47789.)
0040C6E3   .  52            PUSH EDX                                 ; |hWnd
0040C6E4   .  FF15 88274400 CALL DWORD PTR DS:[<&USER32.SetTimer>]   ; \SetTimer
0040C6EA   .  5F            POP EDI
0040C6EB   >  8B8C24 680200>MOV ECX,DWORD PTR SS:[ESP+268]
0040C6F2   .  5E            POP ESI
0040C6F3   .  64:890D 00000>MOV DWORD PTR FS:[0],ECX
0040C6FA   .  81C4 70020000 ADD ESP,270
0040C700   .  C2 0800       RETN 8

看后面的说明似乎很简单。我将0040C5CB      0F85 AA000000 JNZ AtLarge2.0040C67B 改成JZ。就没有弹出要求注册的窗口了,但是功能限制了。不知道是不是在这段代码里控制的?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 427
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
0040C5C3      8A88 FC000000 MOV CL,BYTE PTR DS:[EAX+FC]
这里的BYTE PTR DS:[EAX+FC]你看看,可能是标志。。
如果不是就向上找。
2008-8-14 16:42
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
看了。。BYTE PTR DS:[EAX+FC]的数值是00和CL比较。。CL是01
那确定是这里。。要怎么破解掉呢?
2008-8-14 17:13
0
雪    币: 427
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
向[EAX+FC]下硬件访问断点,看看哪里向那里写入了0,程序刚载入的时候又是多少。。
2008-8-14 18:20
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
弱弱的问一下。。怎么才能硬件断点呢?
2008-8-15 13:56
0
雪    币: 107
活跃值: (13)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
你试一下将0040C5C3      8A88 FC000000 MOV CL,BYTE PTR DS:[EAX+FC]]处改为:MOV CL,1看行不行。如不行,则是动态生成,硬件断点下法是先EAX+FC的地址是多少,然后在od的最下面命令行处输入he 你所得到的地址。
2008-8-15 15:48
0
雪    币: 6092
活跃值: (654)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
7
看论坛 FAQ
2008-8-15 17:10
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
晕死了。mov CL,1这个地方只是一个比较。。在其他地方还有验证。我用硬断下了EAX+FC这个地址。但一直都没有被拦截下来。。
2008-8-18 10:29
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
9
0040C5C3      8A88 FC000000 MOV CL,BYTE PTR DS:[EAX+FC]
0040C5C9   .  84C9          TEST CL,CL

改成

0040C5C3      FEC1                inc     cl
0040C5C5      8888 FC000000       mov     [eax+FC], cl

若不行的话就得看程式了.
2008-8-18 10:45
0
雪    币: 102
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
貌似只能暴破?建议楼主跟下算法。
2008-8-18 16:57
0
游客
登录 | 注册 方可回帖
返回
//