首页
社区
课程
招聘
[原创]美女找茬简关键CALL分析
发表于: 2012-10-25 09:53 5279

[原创]美女找茬简关键CALL分析

2012-10-25 09:53
5279
第一次自己分析一个关键CALL,还有好多没有弄懂的地方。

0042BD07    MOV EAX,DWORD PTR SS:[ESP+3C]       ; 点击的横坐标EAX==X
0042BD0B    MOV ESI,DWORD PTR SS:[ESP+40]       ; 点击的纵坐标ESI==Y
0042BD0F    CMP ECX,1
0042BD12    MOV DWORD PTR SS:[ESP+1C],EAX
0042BD16    MOV DWORD PTR SS:[ESP+18],ESI
0042BD1A    JNZ SHORT ZhaoCha.0042BD2E
0042BD1C    MOV DWORD PTR SS:[ESP+3C],1F4       ; 图片的宽
0042BD24    MOV DWORD PTR SS:[ESP+40],1C2       ; 图片的高
0042BD2C    JMP SHORT ZhaoCha.0042BD3E
0042BD2E    MOV DWORD PTR SS:[ESP+3C],17D       ; 不同图片的大小不同??
0042BD36    MOV DWORD PTR SS:[ESP+40],11E
0042BD3E    MOV EDI,DWORD PTR DS:[4795F4]       ; 4795f4存储的是一个指针
0042BD44    MOV ECX,DWORD PTR DS:[EDI+8]        ; [

+8]=两幅图片X边界的区分值
0042BD47    CMP EAX,ECX                         ; 比较X得到点击的版面是左边还是右边
0042BD49    JL SHORT ZhaoCha.0042BD5C           ; 如果在右边就转换X到左边的坐标
0042BD4B    MOV EDX,DWORD PTR SS:[ESP+3C]
0042BD4F    ADD EDX,ECX
0042BD51    CMP EAX,EDX
0042BD53    JG SHORT ZhaoCha.0042BD5C
0042BD55    MOV EDX,DWORD PTR DS:[EDI+4]        ; 最左边的小边界框的宽度 7
0042BD58    SUB EDX,ECX
0042BD5A    ADD EAX,EDX
0042BD5C    MOV EDX,DWORD PTR DS:[EDI]          ; EDX=上边界的大小
0042BD5E    CMP ESI,EDX                         ; 纵坐标y小于上边界,跳到最后
0042BD60    JL ZhaoCha.0042C07B
0042BD66    MOV ECX,DWORD PTR SS:[ESP+40]
0042BD6A    ADD ECX,EDX
0042BD6C    CMP ESI,ECX
0042BD6E    JG ZhaoCha.0042C07B                 ; 纵坐标y大于下边界,跳到最后
0042BD74    MOV ECX,DWORD PTR DS:[EDI+4]        ; 最左边的小边界框的宽度 7
0042BD77    CMP EAX,ECX
0042BD79    JL ZhaoCha.0042C07B                 ; 横坐标x小于左边界,跳到最后
0042BD7F    MOV EDI,DWORD PTR SS:[ESP+3C]
0042BD83    ADD EDI,ECX
0042BD85    CMP EAX,EDI
0042BD87    JG ZhaoCha.0042C07B                 ; 如果点到了中间的边界。跳到最后
0042BD8D    SUB EAX,ECX                         ; X减去左边界框的宽度,得到在图片中的X
0042BD8F    SUB ESI,EDX                         ; Y减去上面部分UI界面占用的宽度,得到在图片中的坐标Y
0042BD91    MOV DWORD PTR SS:[ESP+3C],EAX
0042BD95    MOV EAX,DWORD PTR SS:[EBP+4]
0042BD98    MOV DWORD PTR SS:[ESP+40],ESI
0042BD9C    MOVSX ESI,WORD PTR DS:[EBX+A20]
0042BDA3    TEST EAX,EAX
0042BDA5    JE SHORT ZhaoCha.0042BDC1           ; 某值为空。跳走,没看懂
0042BDA7    MOV ECX,DWORD PTR SS:[EBP+8]
0042BDAA    SUB ECX,EAX
0042BDAC    MOV EAX,2AAAAAAB
0042BDB1    IMUL ECX
0042BDB3    SAR EDX,5
0042BDB6    MOV EAX,EDX
0042BDB8    SHR EAX,1F
0042BDBB    ADD EDX,EAX
0042BDBD    CMP EDX,ESI
0042BDBF    JA SHORT ZhaoCha.0042BDC8
0042BDC1    MOV ECX,EBP
0042BDC3    CALL ZhaoCha.00430C30
0042BDC8    MOV EDX,DWORD PTR SS:[EBP+4]
0042BDCB    MOV EAX,DWORD PTR DS:[4A260D]
0042BDD0    LEA EDI,DWORD PTR DS:[ESI+ESI*2]
0042BDD3    XOR ESI,ESI
0042BDD5    SHL EDI,6
0042BDD8    ADD EDI,EDX                         ; EDI与是否已经被点击的地址有关
0042BDDA    TEST EAX,EAX
0042BDDC    JLE ZhaoCha.0042BF5A
0042BDE2    LEA ECX,DWORD PTR DS:[EBX+238]      ; 用ECX获得茬矩形的宽和高
0042BDE8    LEA EBP,DWORD PTR DS:[EDI+2A]       ; 用EBP可以获取茬的TOP和LEFT坐标
0042BDEB    10       MOV DWORD PTR SS:[ESP+10],ECX
0042BDEF    MOVSX EDX,WORD PTR SS:[EBP-14]      ; 循环的开始
0042BDF3    CMP DWORD PTR SS:[ESP+3C],EDX
0042BDF7    JL SHORT ZhaoCha.0042BE3E           ; 如果X小于茬矩形的LEFT就跳
0042BDF9    PUSH 0
0042BDFB    CALL ZhaoCha.00444050               ; 获取对应茬矩形的宽度
0042BE00    MOVSX ECX,WORD PTR SS:[EBP-14]
0042BE04    ADD EAX,ECX
0042BE06    MOV ECX,DWORD PTR SS:[ESP+3C]
0042BE0A    CMP ECX,EAX
0042BE0C    JA SHORT ZhaoCha.0042BE39           ; 大于LEFT+矩形宽度 就跳
0042BE0E    MOVSX EDX,WORD PTR SS:[EBP]
0042BE12    CMP DWORD PTR SS:[ESP+40],EDX
0042BE16    JL SHORT ZhaoCha.0042BE39           ; 小于茬矩形TOP就跳
0042BE18    MOV ECX,DWORD PTR SS:[ESP+10]
0042BE1C    PUSH 0
0042BE1E    CALL ZhaoCha.00444090               ; 获取对应茬矩形的高度
0042BE23    MOVSX ECX,WORD PTR SS:[EBP]
0042BE27    ADD EAX,ECX
0042BE29    MOV ECX,DWORD PTR SS:[ESP+40]
0042BE2D    CMP ECX,EAX
0042BE2F    JA SHORT ZhaoCha.0042BE39           ; 大于TOP+矩形高度就跳
0042BE31    MOV AL,BYTE PTR DS:[ESI+EDI+3E]
0042BE35    TEST AL,AL                          ; 以上条件满足就查看是否被点击过了
0042BE37    JE SHORT ZhaoCha.0042BE56           ; 如果没有被点击过就OK,否则比较下一个
0042BE39    MOV EAX,DWORD PTR DS:[4A260D]       ; 茬总数
0042BE3E    MOV ECX,DWORD PTR SS:[ESP+10]
0042BE42    INC ESI                             ; 比较次数+1
0042BE43    ADD EBP,2                           ; 推动指针
0042BE46    ADD ECX,24                          ; 推动指针
0042BE49    CMP ESI,EAX
0042BE4B    MOV DWORD PTR SS:[ESP+10],ECX
0042BE4F  ^JL SHORT ZhaoCha.0042BDEF           ; 循环看五个茬矩形是否都比较过了
0042BE51    JMP ZhaoCha.0042BF5A
0042BE56    PUSH 2
0042BE58    MOV ECX,ZhaoCha.0049AF74
0042BE5D    MOV BYTE PTR DS:[ESI+EDI+3E],1      ; 标记为已经点击过了
0042BE62    CALL ZhaoCha.00427FA0
0042BE67    CMP EAX,1

在得到茬矩形的数据以后就可以模拟点击了。

[课程]FART 脱壳王!加量不加价!FART作者讲授!

上传的附件:
收藏
免费 6
支持
分享
最新回复 (1)
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
QQ小游戏现在也有TP了吧,怎么能调试的呢?
2012-10-26 10:28
0
游客
登录 | 注册 方可回帖
返回
//