植物大战僵尸G制作日志--新手

制作日志

assembly : 汇编

1.阳光

**偏移 **

5578   
868

总基础地址

popcapgame1.exe+331C50=

  00731C50

2. 卡槽CD

偏移

0
4
10
20

总基础地址

"popcapgame1.exe"+0014C6FC=

0054C6FC

——有两种实现方式——

方法一,找到了四层偏移(非基础地址)

.局部变量 one, 整数型
.局部变量 ka, 整数型
.局部变量 kacao, 整数型
.局部变量 ff, 整数型
.局部变量 ff1, 整数型
.局部变量 ff2, 整数型
.局部变量 ff3, 整数型

.计次循环首 (10, ka)
    ff = 读内存整数型 (进程ID, 十六到十 (“0054C6FC”))
    ff1 = 读内存整数型 (进程ID, ff + 十六到十 (“20”))
    ff2 = 读内存整数型 (进程ID, ff1 + 十六到十 (“10”))
    ff3 = 读内存整数型 (进程ID, ff2 + 十六到十 (“4”))
    kacao = 读内存整数型 (进程ID, ff3 + 十六到十 (“0”))
    one = 读内存整数型 (进程ID, kacao + (ka - 1) × 80)
    写内存整数型 (进程ID, ff3 + 十六到十 (“0”) + (ka - 1) × 80, 5000)
.计次循环尾 ()

切记,切记——————最后得到偏移无法直接使用,是数值不是地址

切记,切记——————流程为:基址——(偏移1)地址——(偏移2)数值

易语言应用时应该使用:

(偏移1)地址+偏移2

方法二、改写汇编

inc [edi+24](冷却自加1)
地址:004958BC
使用CE脚本

直接赋值5000:newmem:mov [edi+24],#5000

[ENABLE]

alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)

newmem:
mov [edi+24],#5000
originalcode:
inc [edi+24]
mov eax,[edi+24]

exit:
jmp returnhere

"popcapgame1.exe"+958BC:
jmp newmem
nop
returnhere:
[DISABLE]


找空内存

本人找的————00759C44

使用CE脚本得出修改前后的字节集

易语言
.如果 (选择框4.选中 = 真)
    写内存字节集 (进程ID, 十六到十 (“004958BC”), 还原字节集2 (“E9 83 43 2C 00 90”))
    写内存字节集 (进程ID, 十六到十 (“00759C44”), 还原字节集2 (“C7 47 24 88 13 00 00 FF 47 24 8B 47 24 E9 6C BC D3 FF”))
.否则
    写内存字节集 (进程ID, 十六到十 (“004958BC”), 还原字节集2 (“FF 47 24 8B 47 24”))
    写内存字节集 (进程ID, 十六到十 (“00759C44”), 还原字节集2 (“00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00”))
.如果结束

方法三、0 1大法

BOOL 逻辑形 (字节型) 0——1

植物冷却完成=0或1,没有冷却=0或1——(卡槽亮暗)

冷却逻辑地址   00497513  
 mov byte ptr [ebp+48],00
 

0为暗,改1

.如果 (选择框4.选中 = 真)
    写内存字节集 (进程ID, 十六到十 (“00497513”), 还原字节集2 (“C6 45 48 01”))
.否则
    写内存字节集 (进程ID, 十六到十 (“00497513”), 还原字节集2 (“C6 45 48 00”))

3.自动收集

BOOL (4字节)——

阳光掉落 未点击=0 点击后回收=1

方法一:瞬间收集

判断阳光是否点击 ⟶ \longrightarrow

判断阳光是否点击的地址 = 004352EE
其代码:
popcapgame1.exe+352EE - 80 7B 50 00           - cmp byte ptr [ebx+50],00  { 判断是否点击 }
popcapgame1.exe+352F2 - 75 09                 - jne popcapgame1.exe+352FD  { 点击跳转 }
popcapgame1.exe+352F4 - 8B FB                 - mov edi,ebx
popcapgame1.exe+352F6 - E8 55F5FFFF           - call popcapgame1.exe+34850
popcapgame1.exe+352FB - EB 07                 - jmp popcapgame1.exe+35304
popcapgame1.exe+352FD - 8B CB                 - mov ecx,ebx
popcapgame1.exe+352FF - E8 CCF8FFFF           - call popcapgame1.exe+34BD0 
popcapgame1.exe+35304 - 83 7B 60 00           - cmp dword ptr [ebx+60],00 

so 易语言使用

.如果 (选择框5.选中 = 真)
    写内存字节集 (进程ID, 十六到十 (“004352F2”), 还原字节集2 (“EB 09”))
.否则
    写内存字节集 (进程ID, 十六到十 (“004352F2”), 还原字节集2 (“75 09”))
.如果结束

汇编知识补充 :

助记符英文翻译说明
JEJump if left Equals right相等跳转 (左操作数=右操作数)
JNEJump if left Not Equals right不相等跳转 (左操作数≠右操作数)
JCXZJump if CX equals ZeroCX=0 跳转
JECXZJump if ECX equals ZeroECX=0 跳转
JRCXZJump if RCX equals ZeroRCX=0 跳转(64 位模式)

方法二:缓慢收集

判断地址 = 0043485B
popcapgame1.exe+3485B - 75 3E                 - 'jne popcapgame1.exe+3489B'

so 易语言使用

.如果 (选择框6.选中 = 真)
    写内存字节集 (进程ID, 十六到十 (“0043485B”), 还原字节集2 (“90 90”))
.否则
    写内存字节集 (进程ID, 十六到十 (“0043485B”), 还原字节集2 (“75 3E”))
.如果结束

日志结束–感谢观看!!!!!-----(o゚v゚)ノ
萌新学习心得总结—仅学习使用

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值