开篇语:  
         WG,一个很刺眼的名词,市面上大部分的挂都是使用VB/Delphi/C++或者E语言来写的,我之前也是使用Delphi和VB,这些语言的好处就是编写简单,容易入门!尤其是E语言,基本上说都实现了WG模块化...很多新手开始学的时间,都是跟着视频教程,一步一步操作,最后成功了都不知道为什么成功!这些都语言封装度太强,直观性不是很好!对于入门的话,我还有建议使用偏底层点的语言,如:Win32Asm,C这类语言...虽然编写繁琐,但原理能很清晰的表达出来,对于日后使用高级语言编写打下牢固的基础!
建议:有8086/Win32汇编语言的基础,熟悉C语言或者其他一门高级语言,了解PE结构和Win程序的原理运行机制,以及后期过保护要用到的内核编程知识等!本系列教程都使用Win32汇编语言和OD动态调试!
——————————————————————————————————————————————
   OK,从最简单的开始上菜...(高手越过吧)

游戏:《植物大战僵尸中文版》
目的:使游戏的阳光光值达到5211314,我爱你一生一世!
思路:单机游戏吗!简单的修改下游戏内存数据就OK
工具:RadASM,CE,Spy++  关于工具的使用,下次我列专版来说!大家也可谷歌!
步骤:
1.使用CE找到游戏阳光值的内存地址,Spy++获得游戏窗口标题
2.使用Win32汇编语言实现
涉及几个简单的API:
FindWindow
GetWindowThreadProcessId
OpenProcess
WriteProcessMemory
为了更直观的表达思路,代码可能过于繁琐!但十分容易理解!
———————————————————————————— 
源码:
.386
.model flat,stdcall
option casemap:none
;***********************************************************
include windows.inc
include user32.inc
include kernel32.inc
includelib user32.lib
includelib kernel32.lib
;***********************************************************
.data
h0 db '提示',0
h1 db '植物大战僵尸中文版',0     ;游戏窗口标题
t0 db'使用前请先进入游戏,如已准备完毕,请点击确定!',0
t1 db'未获取窗口句柄',0
t2 db'未获取进程ID',0
t3 db'未获取进程句柄',0
t4 db'内存写入失败',0
t5 db'修改成功',0
ww dd ?           ;用来存放进程ID
gg dd 5211314     ;我们要修改阳光的值
;***********************************************************
.code
start:
invoke MessageBox,0,offset t0,offset h0,MB_OK
;**********************************************************
;获取窗口的句柄,并判断是否成功
invoke FindWindow,0,offset h1       
.if eax==0
invoke MessageBox,0,offset t1,offset h0,MB_OK
.endif
;***********************************************************
;获取进程的ID,并判断是否成功
invoke GetWindowThreadProcessId,eax,offset ww
.if eax==0
invoke MessageBox,0,offset t2,offset h0,MB_OK
.endif 
;***********************************************************
;获取进程句柄,并判断是否成功
invoke OpenProcess,PROCESS_ALL_ACCESS,FALSE,ww
.if eax==0
invoke MessageBox,0,offset t3,offset h0,MB_OK
.endif
;**********************************************************
;向内存写入数据,并判断是否成功
invoke WriteProcessMemory,eax,10F58418H,addr gg,4,0
.if eax==0
invoke MessageBox,0,offset t4,offset h0,MB_OK
.else
invoke MessageBox,0,offset t5,offset h0,MB_OK 
.endif
;*********************************************************
invoke ExitProcess,0
end start
————————————————————————————————
总结:新手需要注意的几点:
1.区分模块句柄,窗口句柄!区分线程ID和进程ID
2.GetWindowThreadProcessId的返回值是线程ID,而进程ID是存放在第二个
参数当中,本例为ww变量
3.OpenProcess函数的权限问题
4.使用WriteProcessMemory函数时,注意写入数据的尺寸问题!
5.为了教程需求,本阳光值的地址为动态基地址,每次启动都会变化,请注意!
————————————————————————————————
注:由于水平有限,编写仓促,如有错误或不足,请指出!谢谢

——小生

=================

BOOL WriteProcessMemory(
HANDLE hProcess,   //进程句柄
LPVOID lpBaseAddress, // 要写的内存首地址
LPVOID lpBuffer,// 指向要写的数据的 指针
DWORD nSize,// 要写入的字节数。
LPDWORD lpNumberOfBytesWritten
);
返回值
非零值代表成功。

invoke WriteProcessMemory,eax,10F58418H,addr gg,4,0

eax 是进程句柄

10F58418H 是要改阳光值的内存首地址

addr gg 指向要写的数据的指针 也就是要修改的值5211314(16进制)

4 要写入4个字节数.

最后一个参数 填0 估计没什么用。

问题:每次都要重新使用CE找到游戏阳光值的内存地址吗?

Win32汇编WG系列教程1——《植物大战僵尸5211314》相关推荐

  1. 【CE入门教程】使用Cheat Engine(CE)修改游戏“植物大战僵尸”之植物篇

    目录 1.单卡片无CD 1.1 思路一 1.2 思路二 2.全卡片无CD 3.豌豆射手射速修改(修改植物射速) 4.实现豌豆射手发射"玉米加农炮"(思路) 上一期教程中,我们学习了 ...

  2. 【CE入门教程】使用Cheat Engine(CE)修改游戏“植物大战僵尸”之其他篇

    目录 1.跳关(任意选择关卡) 2.修改金币值 3.实现自动收集阳光 上一期教程中,我们学习了寻找植物大战僵尸僵尸距离基址.实现"秒杀"僵尸的方法.PS:上篇链接:[CE入门教程] ...

  3. 32位汇编第六讲,OllyDbg逆向植物大战僵尸,快速定位阳光基址

    32位汇编第六讲,OllyDbg逆向植物大战僵尸,快速定位阳光基址 一丶基址,随机基址的理解 首先,全局变量的地址,我们都知道是固定的,是在PE文件中有保存的 但是高版本有了随机基址,那么要怎么解决这 ...

  4. 【CE入门教程】使用Cheat Engine(CE)修改游戏“植物大战僵尸”之僵尸篇

    目录 1.寻找僵尸位置基址 2.实现"秒杀"僵尸(修改僵尸血量) 上一期教程中,我们学习了修改植物大战僵尸的单卡片无CD.全卡片无CD.豌豆射手射速修改以及实现豌豆射手发射&quo ...

  5. 植物大战僵尸2平安时代全新玩法

    说到益智策略类塔防御战游戏,那植物大战僵尸绝对是不二之选,开创了益智策略类塔防御战的新纪元,植物大战僵尸系列包含了全明星.西游版.长城板.原版等众多版本,而最受欢迎的无疑是新添的:植物大战僵尸2平安时 ...

  6. 基于python开发植物大战僵尸

    目录 摘要 2 一, 引言 3 1.1中国游戏产业的现状 3 1.2中国游戏产业的未来发展局势 4 1.3植物大战僵尸游戏的发展状况 4 二.系统结构 5 2.1 Python3.8.2 IDLE 简 ...

  7. 植物大战僵尸android4版本,植物大战僵尸4

    植物大战僵尸4是一款经典的策略塔防游戏,游戏关卡众多,操作简单,老少皆宜,游戏初始有200个种子可以打僵尸.每消灭一个僵尸,根据僵尸的等级,将会奖励不同数量的种子,感兴趣的小伙伴赶紧下载体验吧. 植物 ...

  8. 针对“扫雷“和“植物大战僵尸“游戏,分析,扫描,阳光值,植物,金币,僵尸的分析逆向

    <软件逆向分析> 2022年9月 目录 {#目录 .TOC-Heading} [一.实验工具介绍 3](#一实验工具介绍) [二.针对"扫雷"游戏 3](#二针对扫雷游 ...

  9. 使用Cheat Enginee(CE)修改“植物大战僵尸”子弹类型

    使用Cheat Enginee(CE)修改"植物大战僵尸"子弹类型 单击查看内存 右键转到地址,输入4672a5 点击确定 自动汇编该语句,注入CT表框架代码,代码注入,分配到当前 ...

最新文章

  1. 平时用电脑的一些技巧
  2. 20. 邮件提醒(接收邮件)
  3. python知识:opencv下的轮廓和区域
  4. 杰奇linux伪静态,常用的13个.htaccess重写URL的伪静态规则
  5. 蓝桥杯-01字串(java)
  6. cubic-bezier_带CSS中的示例的cube-bezier()函数
  7. 果园机器人作文开头_易学好用的万能开头—热点事件引入式
  8. php当前完整url的写法
  9. python线程按照顺序执行_Python3多线程之间的执行顺序问题
  10. [转载] python数据类型转换
  11. 字典攻击ssh弱口令
  12. k8s之liveness and readness
  13. windows 下删除EFI分区方法
  14. 计算机网络-字符编码的由来(为什么会有乱码,ASCII、Unicode、GBK和UTF-8字符编码区别)
  15. 安卓手机与Linux同步后,搜索文件内的内容
  16. Word粘贴参考文献格式问题
  17. 项目经验 需求评审与技术评审
  18. 基于Oracle的SQL编程
  19. 空气动力学基础课堂笔记
  20. 大闹天竺里的机器人_数字看清王宝强《大闹天竺》里的植入

热门文章

  1. SpringIOC 和AOP 的理解
  2. 成为优秀领导者必备的五个能力要素
  3. java代码实现移动或者剪切功能
  4. 手机游戏能否引领移动互联网时代?
  5. Android OpenGL动态壁纸
  6. 华为鸿蒙发布现场,华为P50系列亮相鸿蒙发布会!但发布时间仍未确定
  7. RK3568+鸿蒙教学实验平台鸿蒙认证设计方案
  8. 关于图片验证码Kaptcha的应用
  9. 2022-2028全球及中国原子吸收光谱仪行业研究及十四五规划分析报告
  10. 超详细VMware安装Ubuntu虚拟机步骤