追逐自己的梦想----------辅助制作第三十三课:向仓库存入N个物品对象汇编实现代码

	BYTE nbData[0x90] = {
		0x00, 0x00, 0x94, 0x00, 0x84, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2B, 0x0C,
		0x17, 0x24, 0x68, 0xCA, 0x9A, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00,
		0x00, 0x00, 0x15, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3D, 0x9E, 0x64, 0xE1, 0x20, 0x05,
		0xB0, 0x0B, 0x68, 0xCA, 0x9A, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,
		0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x01, 0x00, 0x4F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
		0x00, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x3A, 0x00, 0x00,
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x1C, 0x28, 0x00, 0x00,
		0x00, 0x00, 0x1C, 0x29, 0x12, 0x20, 0x2D, 0x0E, 0x1A, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

				__asm{
					lea ecx, nbData
					mov DWORD ptr[ecx + 0x12], 0x3B9ACA65
					mov WORD ptr[ecx+0x1a] ,2
					mov DWORD ptr[ecx + 0x2a], 0x0B65E0FD
					mov DWORD ptr[ecx + 0x2a + 4], 0x0BF007A8
					mov DWORD ptr[ecx + 0x32], 0x3B9ACA65
					mov DWORD ptr[ecx + 0x3a], 0x000000B2
					mov BYTE ptr[ecx + 0x43],	0x00
					push 0x86			
					push ecx
					MOV ECX, DWORD PTR DS : [0xF34880]
					mov eax, 0x004A9AE0
					CALL eax
				}

其中用到的数据就是上节课分析的那些数据,这些数据是手动提取出来的,具体参数如下:


下内存写入断点 得到
+2A的来源:(8字节) db [[物品背包基址]+410+ 4*1]+54
16F9BDD4  FD E0 65 0B A8 07 F0 0B BD                       e??金创药(
+1A的来源: (2字节) 物品数量
+2A的来源:(8字节) db [[物品背包基址]+410+ 4*1]+54
+3A:  物品最大上限 db [[物品背包基址]+410+ 4*1]+c44
+12的来源:(4字节) db [[物品背包基址]+410+ 4*1]+4c
+32的来源:(4字节) db [[物品背包基址]+410+ 4*1]+4c
+43的来源:(1字节)  物品下表db [[物品背包基址]+410+ 4*1]+1f4

0X31BB524  背包列表基址




金疮药(小)
+4C  4字节   3B9ACA65                  
+54  8字节0B65E0FD 0BF007A8                       
+c44 4字节  000000B2
+1f4 1字节  00

00 00 94 00 84 00 01 00 00 00 03 00 00 00 2B 0C 
17 24 65 CA 9A 3B 00 00 00 00 01 00 00 00 00 00 
00 00 4D 00 00 00 00 00 00 00 FD E0 65 0B A8 07  
F0 0B 65 CA 9A 3B 00 00 00 00 B6 00 00 00 00 00 
00 00 01 08 00 00 01 00 4F 90 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 AB 00 00 00 00 00 00 00 00 00 00 27 3A 00 00 
00 00 00 00 00 00 00 00 00 00 00 0F 1C 28 00 00 
00 00 1C 29 12 20 2D 0E 1A 26 00 00 00 00 00 00 



雪原参 2
+4C  4字节  3B9ACA6A

                
+54  8字节B73B0653 0B704F99                     
+c44 4字节  0000001D
+1f4 1字节  01 

具体的函数封装SaveGoodsToDepot(char* szpName , DWORD ndNum);就留在下节课来完成了,下节课我们将完成一个结构体的封装,用来实现上面数据的封装,并实现数据对其,以方便我们对数据的操作,增加代码的可读性等。具体实现留到下节课来完成了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值