• 买卖物CALL


    SUB ESP,0C
    MOV EAX,000021A6  //物品ID(指类型或 系统ID) 
    MOV[ESP],EAX
    MOV EAX,0 //所在的格数
    MOV[ESP+4],EAX
    MOV EAX,00000064  //买卖的数量  
    MOV[ESP+8],EAX
    PUSH ESP//压入数据结构
    PUSH 1//购买组数
    CALL 005A8610 //买物CALL=005A8590   卖物CALL= 005A8610
    ADD ESP, 8
    ADD ESP,0C
     
    物品 红,蓝,弹药
    事先在游戏里,选100个红,
    bp send,回到游戏里点,单击购买物品,OD断下来,复制 返回到 elementc.
     
    0012EB9C   005869B2  返回到 elementc.005869B2 来自 elementc.0058E8A0
    0012EBB0   00588B1F  返回到 elementc.00588B1F 来自 elementc.00586980
    0012EBEC   005A8602  返回到 elementc.005A8602 来自 elementc.00588A70
    0012EC08   00459503  返回到 elementc.00459503 来自 elementc.005A8590///
    0012EC5C   004FB782  返回到 elementc.004FB782 来自 elementc.00459370
    0012EC70   006D4977  返回到 elementc.006D4977
    0012EC90   006D48DC  返回到 elementc.006D48DC 来自 elementc.006D4900
    0012ECA8   006C858E  返回到 elementc.006C858E 来自 elementc.006D48C0
    0012ECB0   0054F002  返回到 elementc.0054F002 来自 elementc.006C8580
    0012ECC8   006D0C4B  返回到 elementc.006D0C4B
    0012ECE0   006D1033  返回到 elementc.006D1033 来自 elementc.006D0BA0
    0012ED1C   006F416F  返回到 elementc.006F416F 来自 elementc.006F3E20
    0012ED24   006F421A  返回到 elementc.006F421A 来自 elementc.006F4160
    0012ED2C   006C8993  返回到 elementc.006C8993 来自 elementc.006D0C60
    0012EDA0   0054E64F  返回到 elementc.0054E64F 来自 elementc.006C85D0
     
     
    前2个地址一定不是,从头开始看特征,ctrl+F9,从第3个返回的地址开始试,
    通常第4个第5个就是
     
    004594FC    51              PUSH ECX                                 ; ECX=156A1408
    004594FD    50              PUSH EAX                                 ; EAX=00000001
    004594FE    E8 8DF01400     CALL elementc.005A8590
    00459503    83C4 08         ADD ESP,8
     
     
    在下而找段空的手动修改这3上参数
     
    1A088574  000021A6// 红ID
    1A088578  00000007//NPC卖的物品位置
    1A08857C  00000064//物品数量
     
    用CodeInject测试找到的CALL是否正确
    PUSH 1A088574//修改的地址
    PUSH 1                                           
    CALL 005A8590
    ADD ESP,8
     
    //出售物品
     
    事先在游戏里,选100个红,
    bp send,回到游戏里点,单击出售物品,OD断下来,复制 返回到 elementc.
     
    前2个地址一定不是,从头开始看特征,ctrl+F9,从第3个返回的地址开始试,
    通常第4个第5个就是
    0058E1F1    52              PUSH EDX
    0058E1F2    55              PUSH EBP                                 ; EBP=00000001
    0058E1F3    E8 18A40100     CALL elementc.005A8610
    0058E1F8    83C4 08         ADD ESP,8
     
     
     
     
    在下而找段空的手动修改这3上参数
    1A08999C  000021A6// 红ID
    1A0899A0  00000000//自己的物品位置
    1A0899A4  00000064//出售的物品数量
     
     
    用CodeInject测试找到的CALL是否正确
     
    PUSH 1A08999C//修改的地址 这个地址在游戏重开后会改变的
    PUSH 1                                           
    CALL 005A8610
    ADD ESP,8
     
    /////////////
    $+4      >000021A6    物品ID
    $+8      >00000007    物品所在的位置
    $+C      >00000064    购买的物品数量
     
    //这个地址由下面的3个地址得到的
    17f1a9b8 这是内存地址 地址会改变的
    注意代码的写法
    17F1A9B8    000021A6 物品类型
    17F1A9BC    00000007 待卖的物品位置
    17F1A9C0    00000007 购买的物品数量(16进制数的)
    //写法1,buy
    procedure buy1(id1,id2,id3:DWORD);
    var  a:array[1..3] of integer;
    begin
      a[1]:=id1;//$000021A6; //红药ID标识
      a[2]:=id2;//7;         //在商店里的背包数组下标
      a[3]:=id3;//64;        //购买物品数量
      asm
        lea eax,a
        mov ecx,eax
        push ecx            
        push 1
        mov ebx,$005A8590
        CALL ebx
        ADD ESP,8
      end;
    end;
    {抄写了郁金香老师的代码}
     
     
    //写法2,buy

     

     

    SUB ESP,0C
    MOV EAX,000021A6 //物品ID(指类型或 系统ID)
    MOV[ESP],EAX
    MOV EAX,7 //物品所在的格数
    MOV[ESP+4],EAX
    MOV EAX,00000064   //买卖的物品数量 
    MOV[ESP+8],EAX
    PUSH ESP //压入数据结构
    PUSH 1 //购买组数
    CALL 005A8590 
    ADD ESP, 8
    ADD ESP,0C

    {代码抄写作者QQ709326113的源代码}

     

     

    //完成后 站在卖药的NPC旁就可以直接买到物品

     

    /////////////////////买弹药/卖弹药////////////////////////

    找法和吃药一样的

    //

    004594FC    51              PUSH ECX                   ; ECX=0DC18590

    004594FD    50              PUSH EAX                   ; 00000001

    004594FE    E8 8DF01400     CALL elementc.005A8590

    00459503    83C4 08         ADD ESP,8

    $+4      >00000798//物品ID

    $+8      >000000CA  //物品所在的位置

    $+C      >000003E8 //物品数量 3e8=1000

    {

    SUB ESP,0C

    MOV EAX,00000798

    MOV[ESP],EAX

    MOV EAX,000000CA

    MOV[ESP+4],EAX

    MOV EAX,000003E8

    MOV[ESP+8],EAX

    PUSH ESP

    PUSH 1

    CALL 005A8590

    ADD ESP, 8

    ADD ESP,0C

    }

     

    //

    $+4      >00000798//物品ID

    $+8      >00000000 //物品所在的位置

    $+C      >000003E8//物品数量 3e8=1000

    {

    SUB ESP,0C

    MOV EAX,00000798

    MOV[ESP],EAX

    MOV EAX,0000000

    MOV[ESP+4],EAX

    MOV EAX,000003E8

    MOV[ESP+8],EAX

    PUSH ESP

    PUSH 1

    CALL 005A8610

    ADD ESP, 8

    ADD ESP,0C

    }





  • 相关阅读:
    算法学习之基础(背包 列队 栈) 习题1.3.9 补全括号
    LVS负载均衡DR模式部署
    SQL更改表架构
    BCP导入导出MsSql
    E. Holes(分块)
    hdu6230 Palindrome(manacher+树状数组)
    Suffix(hash+lcp+二分)
    k近邻法( k-nearnest neighbor)
    《机器学习》第三章——LDA
    《机器学习》第三章——对率回归
  • 原文地址:https://www.cnblogs.com/xe2011/p/2525917.html
Copyright © 2020-2023  润新知