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
//完成后 站在卖药的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
}