zoukankan      html  css  js  c++  java
  • F1快捷键CALL

    /*
    使用F1-F8 CALL
    */
     
    MOV ECX,[924E0C]
    MOV ECX,[ECX+1C]
    MOV ECX,[ECX+20]
    MOV ECX,[ECX+0BAC]
    MOV ECX,[ECX+0C]
    MOV ECX,[ECX+0] //使用F1快捷键CALL 使用Fn的快捷键CALL=(fn-1)*4
    MOV EDX,[ECX]
    CALL [EDX+8]
     
     
    CE开始
    094A6888
    1253A0E0
    1253A1B4
    F1上面不放技能 搜索= 0
    放个技能在F1键上 搜索 > 0
    换个技能搜索 数值改变的
    最后找到2个地址
    把这个地址dd 这个地址看看结果 和快捷键上的比较
    od 找F1的数组 注意不要求换技能 只用普通攻击切换
     
     
    dd 154B88B0
    硬件写入
    选测试地址是否正确 看特征
    下断后,回到游戏里 把普通攻击拖到第1格子上
    按F9 删除硬件断点
    回到游戏里拖动技能
    OD断下来
     
    ECX=[EAX+EDI*4]
    EAX=[ESI+0C]
    EDI=0 //F1=0 f2=1,...,
    ESI=[[0A94464]+1c]+20
    ECX=[EAX+EDI*4]
    ECX=[[ESI+0C]+1*4]
    ECX=[[[[0A94464]+1c]+20]+0C]+1*4
    测试 F1的内存 154F8728
    dd [[[[0A94464]+1C]+20]+0C]+0*4
    测试结果不不指向任何地方
    继续往下找
    EAX=[ESI+EAX*4+C38]
    EAX=[ESI+1*4+0C38]
    4+0C38=C3C
    EAX=[ESI+0C3C]
    完整的代码
    ECX=[[ESI+0C]+1*4]
    ECX=[[[[[0A94464]+1C]+20]+0C3C]+0C]+0*4
    测试
    dd [[[[[0A94464]+1C]+20]+0C3C]+0C]+0*4 =154F8728
    和CE的地址一样 结果正确
     
    F1数组=[[[[[0A94464]+1C]+20]+0C3C]+0C]+0*4 //F1=0,F2=1,..,Fn=Fn-1
     技能放在F1上面
     
    查找数据
    按F1键 使用技能
    00518673 - 8B 03  - mov eax,[ebx]
    00518726 - 8B 13  - mov edx,[ebx]
    005A8A81 - 8B 10  - mov edx,[eax]
    004A5501 - 8B 07  - mov eax,[edi]
     
    Ctrl+G 005A8A81
    //EAX=10D8CDA8=dd [[[[[0A94464]+1C]+20]+0C3C]+0C]+0*4
    MOV EDX,[EAX]
    MOV ECX,EAX
    CALL [EDX+8]
     
    MOV EAX,[0A94464]
    MOV EAX,[EAX+1C]
    MOV EAX,[EAX+20]
    MOV EAX,[EAX+0C3C]
    MOV EAX,[EAX+0C]
    MOV EAX,[EAX+0] // 0=F1, 4=F2 ,8=F3,12=F4,...,+4
    MOV EDX,[EAX]
    MOV ECX,EAX
    CALL [EDX+8]
    正确

    OD Ctrl+S定位码

    //上面的JMP

    ADD EBX,-3D

    PUSH 0

    PUSH EBX

     
    //////////////////////////////////////
     
    用CE找到这个地址 094169A0
    每次用其他技能往快捷键F1上拖
    OD dd 094169A0
     
    mov [eax+edi*4],ecx, edi=0
    mov eax,[esi+0c]
    mov ecx,[eax+ebx*4+0BA8],ebx=1
    mov ecx,[ecx+20]
    mov ecx,[eax+1c]
    mov ecx,[0924e0c]
     
     

    dd [[[[[924E0C]+1C]+20]+1*4+0BA8]+C]+0*4

    1*4+0BA8=BAC

     

     

    找F1的功能CALL

    主要思路

    F1~F8 1~6功能CALL

    dd  [[[[[924E0C]+1C]+20]+1*4+0BA8]+C]+0*4

    //1~6

    dd  [[[[[924E0C]+1C]+20]+1*4+0B9C]+C]+0*4

     

    F1 =[[[[[924E0C]+1C]+20]+1*4+0BA8]+C]+0*4

    在CE中添加地址

    16进制显示结果

     

    把数值复制1个添加手动添加地址

     

    004F514F - 8B 55 00  - mov edx,[ebp+00]
    004F51FF - 8B 55 00  - mov edx,[ebp+00]
    0054EB1B - 8B 10  - mov edx,[eax]
    00492E21 - 8B 07  - mov eax,[edi]
     

     

    按F1找到的 ,用CE查找到了一个数值

    0054EB1B - 8B 07  - mov eax,[edi]

    ctrl+g 004BDC21 

    通过查询 F1 =[[[[[924E0C]+1C]+20]+1*4+0BA8]+C]+0*4 这个数值刚好等于 EAX的值

    //获得EAX的值 给EDX下个断然后 OD断下时的值就是EAX的值

    //如果快捷杠上没有技能的话直接使用游戏崩溃

    写代码测试

    //[[[[[924E0C]+1C]+20]+1*4+0BA8]+C]+0*4 

    MOV EDX,[EAX]

    MOV ECX,EAX

    CALL [EDX+8]

    F1完整代码为

    MOV EAX,[924E0C]

    MOV EAX,[EAX+1C]

    MOV EAX,[EAX+20]

    MOV EAX,[EAX+0BAC]

    MOV EAX,[EAX+0C]

    MOV EAX,[EAX+0]   //0 fn = (fn-1)*4

    MOV EDX,[EAX]

    MOV ECX,EAX

    CALL [EDX+8]

    //F1数组+基本CALL

     
    下面这个CALL不是的
    ////
    MOV EDI,[924E0C]
    MOV EDI,[EDI+1C]
    MOV EDI,[EDI+20]
    MOV EDI,[EDI+0BAC]
    MOV EDI,[EDI+0C]
    MOV EDI,[EDI+0]
    MOV EAX,[EDI]
    PUSH 0
    MOV ECX,EDI
    CALL [EAX+14]
    这个CALL也断但测试代码无效
    这个CALL下过断后用代码注入 OD也会断 上面 的CALL不会断的
     





  • 相关阅读:
    数组优化 Dijkstra 最短路
    F
    树 (p155, 从中序和后续回复二叉树)
    矩阵连乘 LRJ白书 p141 栈 解析表达式
    Train Problem II HDU 1023 卡特兰数
    codevs 1166 矩阵取数游戏
    BZOJ 2754: [SCOI2012]喵星球上的点名
    2017.6.11 校内模拟赛
    HDU 2896 病毒侵袭
    UvaLive 4670 Dominating Patterns
  • 原文地址:https://www.cnblogs.com/xe2011/p/2525910.html
Copyright © 2011-2022 走看看