|
灵感来源尾巴.
在逃跑吧!少年中,我们可以找到子弹访问地址进行nop
到达无限子弹修改.
所以今天给大家带来的是汇编地址修改方法。
温馨提示:其它功能也可以理解汇编修改哦
汇编命令分析:Vdec [ecx+edi*4+48]
dec是减1指令 当[ecx+edi*4+48]这个指令执行时减1
参照游戏是枪战类的此命令为指令执行时,狙击枪子弹数量减1
要锁定子弹的数量,第一种方法是用nop指令
进入汇编模板后
把dec [ecx+edi*4+48] 这条指令删除
填充对应机器码个数的nop指令
如
字节 指令
ff 4c b9 48 dec [ecx+edi*4+48]
汇编中就这样写
nop
nop
nop
nop
pop edi (此处为未删除的指令)
方法二 指令用掉的子弹加0
add byte ptt [ecx+edi*4+48],0
方法三 指令用掉的子弹减0
sub byte ptt [ecx+edi*4+48],0
方法四 跳过这条指令达到未执行也就不会减少子弹数量
jmp exit
originalcode: //标号
dec [ecx+edi*4+48]
exit: //标号
pop edi
jmp returnhere
我们来分析一下:jmp exit,转到标号exit处执行指令,那么dec [ecx+edi*4+48]这条指令被跳过没有执行,那么子弹的数量就会保持不变,从
而达到与锁定子弹数量一样的效果,pop edi这条代码本来是和dec [ecx+edi*4+48]放在一起的,该代码不能被跳过,否则游戏会崩溃,所以要把它
放到标号exit下面。分析结束,任务完成
第二个情况是让子弹数量只加不减
要让子弹数量只增不减,可以把dec指令改为inc指令,inc是加1指令,与dec刚刚相反,要实现当子弹数量大于6时停止增加,可用条件转移指令jb,当然还需要与cmp指令配合使用
cmp [ecx+edi*4+48],6
jb originalcode
mov byte ptt [ecx+edi*4+48],6
jmp exit
originalcode:
inc [ecx+edi*4+48]
们来分析一下。首先把dec改为inc,子弹数量加1,然后用cmp指令,拿子弹数量即[ecx+edi*4+48]
的数值与6比较,用jb指令如果低于6则转
移到标号originalcode处执行指令,子弹数量正常增加,如果不低于6,则不转移,mov byte ptr [ecx+edi*4+48],6
这条代码执行后,子弹数量写入
6,子弹数量就固定在6了,下面用jmp exit这条指令跳到exit处,跳过了inc [ecx+edi*4+48]这条代码不被执行,如果不跳过,子弹数量加1,子弹
数量就变成7而不是6了,分析完毕,任务完成
|
上一篇:fail发布的那个快手极速版的的咋用呀下一篇:秒结算控分
|