【问题标题】:Assembly language--what does this block do汇编语言——这个块做什么
【发布时间】:2016-04-02 15:14:43
【问题描述】:

我对汇编语言非常陌生,我的朋友要求我研究加密数据包到他的游戏的 dll。这是代码

635D1387  /. 55             PUSH EBP
635D1388  |. 8BEC           MOV EBP,ESP
635D138A  |. 837D 08 00     CMP DWORD PTR SS:[EBP+8],0
635D138E  |. 75 13          JNZ SHORT dom.635D13A3
635D1390  |. 837D 0C 00     CMP DWORD PTR SS:[EBP+C],0
635D1394  |. 75 0D          JNZ SHORT dom.635D13A3
635D1396  |. 837D 10 00     CMP DWORD PTR SS:[EBP+10],0
635D139A  |. 75 07          JNZ SHORT dom.635D13A3
635D139C  |. 33C0           XOR EAX,EAX
635D139E  |. 50             PUSH EAX
635D139F  |. 50             PUSH EAX
635D13A0  |. 50             PUSH EAX
635D13A1  |. EB 0F          JMP SHORT dom.635D13B2
635D13A3  |> 68 9ACB221E    PUSH 1E22CB9A
635D13A8  |. 68 438A8C12    PUSH 128C8A43
635D13AD  |. 68 F304951E    PUSH 1E9504F3
635D13B2  |> FF15 78E35E63  CALL DWORD PTR DS:[635EE378]
635D13B8  |. 5D             POP EBP
635D13B9  \. C2 0C00        RETN 0C

答案将不胜感激,并将大大提高我的技能。非常感谢。

【问题讨论】:

    标签: assembly x86 reverse-engineering


    【解决方案1】:

    基本上是这样的:

    foo(int x, int y, int z)
    {
        if (x != 0 || y != 0 || z != 0)
        {
            bar(0x1e9504f3, 0x128c8a43, 0x1e22cb9a);
        } else {
            bar(0, 0, 0);
        }
    }
    

    这不太可能对您有太大帮助。

    【讨论】:

      猜你喜欢
      • 2014-09-03
      • 1970-01-01
      • 2022-12-09
      • 1970-01-01
      • 2015-01-20
      • 2014-11-08
      • 2010-11-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多