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

逆向工程扫盲篇

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

在这里我们会

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

编译并运行以下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

修改成功

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

原文地址:https://www.cnblogs.com/godoforange/p/11578489.html

时间: 2024-07-31 01:41:24

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

一步一步带你入门MySQL中的索引和锁 (转)

出处: 一步一步带你入门MySQL中的索引和锁 索引 索引常见的几种类型 索引常见的类型有哈希索引,有序数组索引,二叉树索引,跳表等等.本文主要探讨 MySQL 的默认存储引擎 InnoDB 的索引结构. InnoDB的索引结构 在InnoDB中是通过一种多路搜索树——B+树实现索引结构的.在B+树中是只有叶子结点会存储数据,而且所有叶子结点会形成一个链表.而在InnoDB中维护的是一个双向链表. 你可能会有一个疑问,为什么使用 B+树 而不使用二叉树或者B树? 首先,我们知道访问磁盘需要访问到

一步一步带你入门MySQL中的索引和锁

索引 索引常见的几种类型 索引常见的类型有哈希索引,有序数组索引,二叉树索引,跳表等等.本文主要探讨 MySQL 的默认存储引擎 InnoDB 的索引结构. InnoDB的索引结构 在InnoDB中是通过一种多路搜索树——B+树实现索引结构的.在B+树中是只有叶子结点会存储数据,而且所有叶子结点会形成一个链表.而在InnoDB中维护的是一个双向链表. 你可能会有一个疑问,为什么使用 B+树 而不使用二叉树或者B树? 首先,我们知道访问磁盘需要访问到指定块中,而访问指定块是需要 盘片旋转 和 磁臂

JAVA安卓植物大战僵尸主题四子棋游戏

@前言 这里使用安卓最基本的API实现双人四子棋游戏(无AI),开发语言为java,开发环境为Android Studio 2.1.2,目标SDK版本为24,最低为15: 界面采用植物大战僵尸主题,图片资源来源于网络,进行了PS加工,非原创: 游戏界面基本可以适配所有安卓手机分辨率,不过在分辨率太大或太小的手机上整体效果会有影响: Github源码: https://github.com/jiangxh1992/FourInRowGame 视频演示: https://vimeo.com/1875

植物大战僵尸——任意阳光修改

简介 ??这是植物大战僵尸系列的第一个练习,目的是实现任意阳光修改功能. 原理 ??该功能的原理其实很简单,大致步骤就是: 1. 开始任意一局游戏: 2. 找到该局游戏的阳光值在内存中的地址: 3. 根据该地址,找到游戏阳光的基地址: 4. 编写一个手动修改该值的小程序. 准备 系统:Windows 7 SP1 x64 ultimate 游戏:植物大战僵尸 工具:CheatEngine v6.7.VisualStudio 2017 分析 确定阳光位置 ??启动游戏,打开任意一局游戏. 可以看到此

BZOJ 1565 植物大战僵尸(最大权闭合图)

题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1565 题意:植物大战僵尸,一个n*m的格子,每 个格子里有一个植物,每个植物有两个属性:(1)价值:(2)保护集合,也就是这个植物可以保护矩阵中的某些格子.现在你是僵尸,你每次只能从(i,m) 格子进入,从右向左进攻.若一个格子是被保护的那么你是不能进入的.每进入一个格子则吃掉该格子的植物并得到其价值(价值有可能是负的).注意,每次在进 入一行后还可以再退到最右侧然后再换一行吃别的.问

植物大战僵尸农场理财系统定制开发

对于在新时期.新常态下好项目,创新才能引人关注,植物大战僵尸农场理财系统开发,咨询电话:156-2272-1962. 植物大战僵尸系统奖励制度开发 奖励:开拓市场奖励 拿九级佣金收益,一代4%.二代2%.三代1%,四-九代0.5% 购买一块土地20元永久使用 购买一个神兽9.9元可看家护院保护期3天 奖励:购买种子奖 1.呆呆米:20元/颗,24小时采摘一次,采摘一次2.88-3.6元,15天枯萎! 化肥1元一袋一天一次施肥 投资种子化肥共35元,15天收益54元左右 2.萌萌菇:50元/颗,2

javascript开发植物大战僵尸网页版游戏源代码下载

原文:javascript开发植物大战僵尸网页版游戏源代码下载 源代码下载:http://www.zuidaima.com/share/1550463429364736.htm javascrip实现的植物大战僵尸

一个类似植物大战僵尸的python源码

# 1 - Import library import pygame from pygame.locals import * import math import random # 2 - Initialize the game pygame.init() width, height = 640, 480 screen=pygame.display.set_mode((width, height)) keys = [False, False, False, False] playerpos=[1

部分 CM11 系统 Android 平板执行植物大战僵尸 2 黑屏的解决的方法

原文 http://forum.xda-developers.com/showthread.php?t=2755197 部分 CM11 系统的 Android 平板(比如三星 GT-P5110 )执行植物大战僵尸 2 时黑屏,解决方法例如以下: 安装 NOMone Resolution Changer 使用上述软件(须要 ROOT 权限)将分辨率调整到 1280 * 768 (适用于 1280 * 800 分辨率的平板),保持 DPI 不变 执行植物大战僵尸 2