通过游戏外挂.学习逆向技术指超级马里奥.

一丶前言

1.什么是逆向.

  逆向就是在没有源代码的情况下.通过汇编.反汇编来逆向一个成品的Exe(也可以是别的.举例是EXE)这样叫做逆向.

2.逆向的用途

   逆向技术可以用于 反病毒.反外挂. 破解. ...... 等等.当然反病毒反外挂的前提就是你要对外挂或者病毒写法了解. 才可以进行.所以逆向的高度取决于开发的水平.

3.这篇博客的作用.

  这篇博客不是教授外挂的.而是以外挂为切入点.讲解逆向技术.并了解逆向技术可以做什么.

二丶超级马里奥

想必超级玛丽大家都玩过.

那么我们可以对它做点什么.

1.血值.可以修改为无限血量

2.子弹个数.可以修改无限子弹.

3.生命个数.可以修改为无限生命

4.子弹状态. 使马里奥可以发送普通子弹. 登山镐子弹. 以及忍者飞镖子弹. CTRL+Z键还可以开启大招.

三丶逆向工具准备

我们要做外挂的前提需要有逆向工具.

Cheat_Engine 简称CE 一款可以搜索内存的工具. 也可以看反汇编.

那么我们可以用CE做切入点.

1.使用CE 附加超级马里奥进程.

2.搜索子弹个数. 依次减少.然后继续搜索.这样可以搜索到子弹的个数的基址.

3.基址就是保存信息的一个全局变量地址.就是不会变动的地址.这样超级马里奥重新启动也会是这个地址.

1.搜索子弹个数

2.子弹个数更改.点击再次扫描.

当我们再次扫描之后会发现还有两个地址.根据经验.绿色的是基地址.

当然我们可以关掉游戏.重新启动.然后看看地址还是不是这个.如果是这个.(0x00428292) 那么这个地址就是个静态地址.我们可以认为这个地址是不变的了.

3.下拉到下面.CTRL +B 键观察附近内存. 然后CTRL + 2 以字节的10进制显示.

观察附近内存. 可以看到92上面的82地址是个6. 而看我们当前的血值也是6 可以猜想这个变量存放的是血值.

我们可以减血看一下.

我们可以修改一下血值.看看是否是.

修改之后发现是.所以82就是血的基址.  然后通过我们马里奥不断的进行不同的操作.

可以看出这块内存会更改.

当然这个操作需要手动去做.步骤我就不做了.

所以我们可以得出.

0x00428282  =  血的基址

0x00428292 =   子弹个数基址.

0x004282A2 =   生命个数的基址.

四丶编程实现外挂编写.

C++  : 如果是C++ 我们需要熟悉几个API.  OpenProcess 打开进程句柄.        ReadProcessMemory(); 写内存.  WriteProcessMemory() 读内存.

易语言: 易语言可以使用模块. 我用的是超级模块.

要熟悉的易语言命令.

1.取进程ID(进程名)  返回进程ID  (跟OpenProcess 一样.只不过是封装的一个)

2.十六到十             在易语言当中.我们操作的地址需要转化成10进制.可以用这个命令.

3.写内存整数型     跟WriteProcessMemory一样的. 只不过封装了一下. 

具体代码可以在博客中下载. 一个是 VS2015 版本MFC的.  一个是易语言编写的. 附加模块.

成品图演示

MFC

易语言:

资料下载: 链接:https://pan.baidu.com/s/1AaRAuw7uUcxhxCL_nCrYMQ 密码:i2xt  (超级马里奥 + CE 工具 + 易语言.e代码文件 + 成品 + MFC 代码 + 成品)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python与爬虫

拒绝撕逼,用数据来告诉你选择器到底哪家强

几天写了一篇文章,爬虫入门到精通-网页的解析(xpath) - 知乎专栏 然后有人问我,xpath速度比bs4快么?说实话,我也不太清楚。。。 ? 还有人说,“...

37913
来自专栏北京马哥教育

Linux | 只有十三个字符的经典Fork炸弹,讨厌谁就去整他吧!

Jaromil在2002年设计了最为精简的一个Linux Fork炸弹,整个代码只有13个字符,在shell中运行后几秒后系统就会宕机: 这样看起来不是很好理解...

4376
来自专栏王清培的专栏

数据分表小结

本次拆分主要包括订单和优惠券两大块,这两块都是覆盖全集团所有分子公司所有业务线。随着公司的业务飞速发展,不管是存储的要求,还是写入、读取的性都基本上到了警戒水位...

1060
来自专栏双十二技术哥

组件化实践详解(一)

具体实施一项技术项目之前我们会首先确定对应的目标,之后的行动计划都会朝着目标一步步靠拢。

732
来自专栏我是攻城师

Redis 3.0.0正式版发布,全新的分布式高可用数据库

3817
来自专栏java技术学习之道

面试必看!2018年4月份阿里最新的java程序员面试题目

3904
来自专栏竹清助手

现代化PHP开发

PHP 正在重生。作为一门专注WEB开发的语言,它不断吸取其他语言的优点,如命名空间,闭包,性状,操作码缓存等特性,PSR 规范和Composer 包管理以及...

2322
来自专栏LET

CPU Cache简介

真空中光速为299,792,458米/秒,目前,Intel的i7频率可以达到4GHz,简单换算一下,可以得出结论:光(电流)在一个Cycle内移动的距离约为0....

1972
来自专栏漫漫全栈路

【译】助你成功搭建云应用的12条方法

原文作者:Rafael Benevides 原文地址:https://dzone.com/articles/12-factors-to-cloud-succes...

3069
来自专栏芋道源码1024

Dubbo 源码解析 —— Cluster

前言 今天是小长假的倒数第二天,本来国庆是要加班四天的,后来因为要有事要回家才得以幸免,但是后天上班之后都要搬砖搬到手脱皮是必须的了.但是再忙每周一篇源码解析...

3725

扫码关注云+社区

领取腾讯云代金券