首页
社区
课程
招聘
[旧帖] [求助]高人讲解下这个游戏交易的CALL 0.00雪花
发表于: 2009-2-26 00:51 3722

[旧帖] [求助]高人讲解下这个游戏交易的CALL 0.00雪花

2009-2-26 00:51
3722
004784F7  |> \40            inc     eax                                     ;  Case 30 of switch 00478313
004784F8  |.  8BCE          mov     ecx, esi
004784FA  |.  50            push    eax
004784FB  |.  E8 365B0100   call    CUser::ExchangeProcess              调用以下CALL

0048E036 >/$  80B9 888B0000>cmp     byte ptr [ecx+8B88], 0            
0048E03D  |.  75 70         jnz     short 0048E0AF
0048E03F  |.  8B4424 04     mov     eax, dword ptr [esp+4]
0048E043  |.  0FB610        movzx   edx, byte ptr [eax]
0048E046  |.  4A            dec     edx                                     ;  Switch (cases 1..8)
0048E047  |.  74 47         je      short 0048E090
0048E049  |.  4A            dec     edx
0048E04A  |.  74 23         je      short 0048E06F
0048E04C  |.  4A            dec     edx
0048E04D  |.  74 17         je      short 0048E066
0048E04F  |.  4A            dec     edx
0048E050  |.  4A            dec     edx
0048E051  |.  74 0C         je      short 0048E05F
0048E053  |.  83EA 03       sub     edx, 3
0048E056  |.  75 57         jnz     short 0048E0AF
0048E058  |.  E8 A7100000   call    CUser::ExchangeCancel    取消交易;  Case 8 of switch 0048E046
0048E05D  |.  EB 50         jmp     short 0048E0AF
0048E05F  |>  E8 E30B0000   call    CUser::ExchangeDecide    确定交易;  Case 5 of switch 0048E046
0048E064  |.  EB 49         jmp     short 0048E0AF
0048E066  |>  40            inc     eax                                     ;  Case 3 of switch 0048E046
0048E067  |.  50            push    eax
0048E068  |.  E8 8B060000   call    CUser::ExchangeAdd           交换增加?
0048E06D  |.  EB 40         jmp     short 0048E0AF
0048E06F  |>  8B91 28870000 mov     edx, dword ptr [ecx+8728]               ;  Case 2 of switch 0048E046
0048E075  |.  80BA C8AB0300>cmp     byte ptr [edx+3ABC8], 3
0048E07C  |.  75 09         jnz     short 0048E087
0048E07E  |.  40            inc     eax
0048E07F  |.  50            push    eax                                     ; /Arg1
0048E080  |.  E8 9C020000   call    CUser::ExchangeAgreeChina   接受交易   ; \CUser::ExchangeAgreeChina
0048E085  |.  EB 28         jmp     short 0048E0AF
0048E087  |>  40            inc     eax
0048E088  |.  50            push    eax                                     ; /Arg1
0048E089  |.  E8 AA050000   call    CUser::ExchangeAgree       接受交易     ; \CUser::ExchangeAgree
0048E08E  |.  EB 1F         jmp     short 0048E0AF
0048E090  |>  8B91 28870000 mov     edx, dword ptr [ecx+8728]               ;  Case 1 of switch 0048E046
0048E096  |.  80BA C8AB0300>cmp     byte ptr [edx+3ABC8], 3
0048E09D  |.  75 09         jnz     short 0048E0A8
0048E09F  |.  40            inc     eax
0048E0A0  |.  50            push    eax                                     ; /Arg1
0048E0A1  |.  E8 0C000000   call    CUser::ExchangeReqChina   请求交易     ; \CUser::ExchangeReqChina
0048E0A6  |.  EB 07         jmp     short 0048E0AF
0048E0A8  |>  40            inc     eax
0048E0A9  |.  50            push    eax                                     ; /Arg1
0048E0AA  |.  E8 58030000   call    CUser::ExchangeReq       请求交易     ; \CUser::ExchangeReq
0048E0AF  \>  C2 0400       retn    4                                       ;  Default case of switch 0048E046

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 245
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
以上这段代码存在允许一个ID发出两个交易请求"ExchangeReq "的BUG,,我实在搞不懂,不知道有没高手能给分析下,万分感谢!!
2009-2-26 00:53
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
3
if edx==1 then jmp
2009-2-26 00:56
0
雪    币: 485
活跃值: (12)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
4
该睡觉了....
2009-2-26 01:04
0
雪    币: 245
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
呵呵,感谢回复,不过我还是没有搞得懂,它是怎么判断交易请求的
2009-2-26 01:07
0
雪    币: 245
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谁能告诉我,edx 是存放"交易请求"线程例表的吗?
2009-2-26 01:17
0
游客
登录 | 注册 方可回帖
返回
//