逆向工程扫盲篇

最近又来了一群对逆向工程感兴趣的同学,我这里带领大家来一次逆向工程初体验。

在这里我们会

  • 修改弹框的值
  • 修改植物大战僵尸的阳光

编译并运行以下C程序

使用的工具:Devcpp

#include<windows.h>
int main(){MessageBox(0,"Hello world","title",MB_OK);return 0;
} 


编译后如上所示。
运行结果如下:

下面我们来一步一步修改HelloWorld

IDA的基本使用

IDA的介绍:

交互式反汇编器专业版(Interactive Disassembler Professional),人们常称其为IDA Pro,或简称为IDA。是目前最棒的一个静态反编译软件,为众多0day世界的成员和ShellCode安全分析人士不可缺少的利器!IDA Pro是一款交互式的,可编程的,可扩展的,多处理器的,交叉Windows或Linux WinCE MacOS平台主机来分析程序, 被公认为最好的花钱可以买到的逆向工程利器。IDA Pro已经成为事实上的分析敌意代码的标准并让其自身迅速成为攻击研究领域的重要工具。它支持数十种CPU指令集其中包括Intel x86,x64,MIPS,PowerPC,ARM,Z80,68000,c8051等等。

IDA pro 7.0下载地址:https://www.52pojie.cn/thread-675251-1-1.html

IDA的基本操作

打开IDA我们会发现这个页面


我们点ok下一步。

然后将我们刚才生成的程序拖进来。

然后进行反汇编,反汇编后的页面如下所示。

这里在右面我们找到main方法打开,然后按tab查看源代码。

源代码如上所示。
我们对比下可以发现,基本上和我们的源程序一样。

这也是IDA强大的地方。

这里我们找到msgbox压参数前的位置。然后把这个地址复制下来

至此IDA的工作,在我们这里结束

X64dbg修改弹框文字

x64是一个超级强大的调试器。下载地址:https://x64dbg.com/
下载后我们打开x64dbg,并把我们的程序拖进去。

然后按Ctrl+g跳到指定位置。

在这里双击下断点。

然后按F9跳到这里。

然后我们看到右面的ds:[404006]
我们为此跳到404006的位置。位置在左下角按Ctrl+G跳到404006

可以看到右下角是helloworld。
我们右击后编辑。

然后继续按F9运行。

至此我们完成了对弹框字符串的修改。

植物大战僵尸修改阳光初体验

这里我们下载完植物大战僵尸小游戏后运行。

运行后可以发现,目前的阳光数是50

我们打开Cheat Engine工具有以下页面


这里我们选择植物大战僵尸的应用并且打开

然后输入value=50 然后点first Scan


在植物大战僵尸里花掉50阳光,使阳光变为0


然后再右面填0然后点next scan


然后再捡个阳光使值变成25

然后在右面填next scan

然后将11F40700这个地址的value变成9999

修改成功

至此我们完成了逆向工程初体验。逆向工程博大精深,希望大家能多学习,多学知识谢谢大家。

从植物大战僵尸开始一步一步带你入门逆向工程,相关推荐

  1. 做一个植物大战僵尸有多难?python教你几步搞定

    一个简单的植物大战僵尸游戏. 仅供个人学习和非商业用途.如果这个游戏侵犯了版权,请告诉我. 已有的植物: 向日葵, 豌豆射手, 坚果墙, 寒冰豌豆射手, 樱桃炸弹, 三向豌豆射手, 食人花, 喷射蘑菇 ...

  2. C语言实现植物大战僵尸----学习过程

    大一下学期c语言课程设计要我们用c语言制作一款游戏,之前网上冲浪时候发现了c语言实现植物大战僵尸的教程,就想来跟着教程做一遍,并记录下自己的学习过程与经验. 前排分享我所学习的视频和文章: [可能是B ...

  3. 用文件保存游戏服务器数据恢复,玩植物大战僵尸等单机游戏时,存档丢失了怎么数据恢复?...

    相信很多人在玩例如植物大战僵尸.使命召唤等游戏时,都遇到到因为游戏奔溃,导致之前的存档丢失的情况.那么这种情况下,这些存档能够找回吗?首先我们要知道,存档在电脑上找不到,并不意味着这些存档的数据消失了 ...

  4. ce逆向修改——植物大战僵尸针对“阳光值”

    ce逆向修改--植物大战僵尸 一.实验目的 为熟悉CE的使用和对软件逆向分析有进一步的了解. 二.实验设备 Cheat Engine 6.8.植物大战僵尸 三.实验内容 1.针对"阳光值&q ...

  5. C/C++ 学习日记3:制作带有界面的植物大战僵尸助手(基于MFC)

    2018年8月21日 > 那一天,是天下情人们的狂欢节.不行,我拒绝 最近在研究怎么弄出界面,以至于忘掉更新博客这件事情了,从接触MFC到Qt,Qt从安装到编译碰到了一些麻烦,最后还有一些地方的 ...

  6. 植物大战僵尸(6):查找植物叠加种植CALL

    实验目标:我们都知道植物大战僵尸游戏中植物是不可以叠加种植的,也就是一个格子只能种植一个植物,今天我们将实现一个格子里种植无限多的植物. 我们首先需要找到植物的种植CALL,然后在逐步测试观察功能之间 ...

  7. 植物大战僵尸之加钱外挂..

    //注意:本程序测试时,用的植物大战僵尸版本为: 植物大战僵尸年度中文版 //本程序对其它版本有可能不起作用 植物大战僵尸年度中文版  下载地址: http://l5.yunpan.cn/lk/36m ...

  8. 植物大战僵尸(1):实现无限阳光

    从本节课开始我们将进入实战环节,我们将手动分析植物大战僵尸的一些功能的实现并编写辅助,并根据章节的深入一步一步的完善我们的辅助,为啥这里使用植物大战僵尸呢?本来想使用网络游戏的,但涉及到驱动过保护和版 ...

  9. 植物大战僵尸一:多线程修改UI界面,游戏必备API

    本博文适合刚刚学完android基础准备做做项目实战一下的人看,在我的博文中,我会将这个游戏的开发过程讲得非常详细,所以非常容易理解,植物大战僵尸这个游戏我会出一系列的博文详细解释,所以有兴趣的人可以 ...

最新文章

  1. 捷途ipel平台怎么样_奇瑞捷途X有望搭载北斗、GPS双导航系统
  2. 注解@Slf4j的使用
  3. 微信人人商城云服务器,微信支付配置
  4. linux集群系列(4) --- LVS之负载均衡集群 --- 持久连接
  5. 自定义通配器导入bean对象
  6. 转载 | pymysql.err.InterfaceError: (0, ‘‘)解决办法
  7. android actionbar 背景,Android应用开发之定制页面背景及Actionbar overflow menu的背景色...
  8. 《构建之法》第十三章学习总结
  9. 【tool】企业级开源分布式文件服务器搭建(FastDFS)
  10. python登陆qq邮箱_python+selenium自动化测试——QQ邮箱自动登录写信
  11. Jenkins自动化构建Gitee项目
  12. Android 源码编译mk里导入androidx下的包
  13. Tableau商业智能与可视化应用实战系列视频教程(史上最全)
  14. 在开发中如何正确的应对系统故障
  15. 各种主流浏览器内核引擎的对比分析
  16. 无人机学习笔记 8 雷达工作波段划分
  17. java poi生成word 并插入 表格
  18. Robin广场舞案例实践分析之深入思考
  19. opencv 修改图像像素
  20. 计算机锁屏之后QQ音乐停止播放了,MAC电脑如何在息屏状态下让QQ音乐能继续播放音乐...

热门文章

  1. 四十不惑——写给2016年的自己
  2. 【学生管理系统】学生管理(重点)
  3. acwing1047. 糖果
  4. 关于Cocoapods个人总结 一些个稀奇古怪的问题
  5. 微信测试号实现微信分享等功能【转载】
  6. Excel生成随机数,随机日期
  7. 求解一元三次方程(c语言)
  8. Unable to use key file xxx (OpenSSH SSH-2 private key)
  9. 获得更多tick是否能改善算法交易业绩?
  10. Speech两种使用方法