171103 逆向-内存与外挂(培训提纲)
1625-5 王子昂 总结《2017年11月3日》 【连续第399天总结】
A. 协会内存与外挂培训提纲
B.
后天给协会培训,于是先写一下提纲记录一发,顺便自己也复习一下相关的东西
内存和调试器
学习C++的时候老师一定说过,变量都是存储在内存中的
每个变量独占一块空间,在声明的时候系统为其分配
例如int类型的变量独占4字节的空间,char类型的变量独占1字节的空间
前段时间学习编程的时候,经常有同学来问问题,例如我觉得我写的没错为什么结果不对啊?这样运行为什么会报错啊,等等
事实上调试(debug)写好的程序是一项非常重要的技能
除了最简单的在代码中添加log输出(cout就可以)以外,调试器也是很好用的工具:
下断以后可以灵活的跟踪程序运行路径,包括单步运行、跳过函数等等
左下角的监视窗口还可以看到所有变量的值,方便地看出变量的变化是否如期
同时可以自己添加,例如:
还有内存转储窗口,可以直接显示内存
可惜CE的转储窗口只能查看,不能修改
貌似VS的内存窗口是可以直接修改的
CheatEngine
与小时候用过的金山游侠修改器类似,通过值的变化来追踪变量的地址
我们以植物大战僵尸为例,很轻松就能找到变量的地址
手动修改非常简单,但是如果需要更进一步的修改,例如自动变化呢?
就让我们通过程序来解决吧
CE中可以看到地址,那么同理构造一个指针,然后修改其值的方法是不行的
编译器会报错,因为系统决定每个进程只能控制自己的内存,不能随便访问、写入其他进程的内存
因此需要下面介绍的功能
Dll注入
动态链接库(Dll)是Exe的补充组件,与Exe共享内存
它可以被Exe调用,也可以反过来调用Exe
最初目的其实是为了函数的通用
不过由于注入后就具有了该进程内存的权限,因此可以用来制作外挂
我们将之前的程序改为Dll,然后注入(注入可以自己写程序,也可以通过现成的程序)
即可
注意调用的函数需要是导出函数,否则会报错
但是也可以通过DllMain来操作,这个函数与Main类似,当Dll被加载时会自动调用它
注入后即可看到程序的变量产生变化
C. 明日计划
上海大学生网络安全竞赛
171103 逆向-内存与外挂(培训提纲)相关推荐
- 连连看逆向分析与外挂编写
1.样本概况 1.1 应用程序信息 MD5值:814DE98DC72E4AB0001BA7F287239D2D 简单功能介绍:连连看单机游戏 1.2 分析环境及工具 系统环境:win7 32位 分析工 ...
- Oracle EBS DBA培训提纲
最近比较闲下来,突然有一个想法,是否可以把自己这些年来的oracle ebs dba的经验,整理出来,做一些培训视频跟ppt,跟大家一起分享. 有想法就马上行动,构思了几天,整理了一下提纲,欢迎ora ...
- 【游戏逆向】游戏外挂开发技术《挖金子》
首先说说基本思路吧.外挂开发主要分为两部分: 一是对游戏的分析调试,主要是找基址和call地址等游戏信息. 二是使用编程工具进行外挂功能开发,比如用delphi或者VB.VC等自己熟悉的一种开发工具进 ...
- 合金弹头 逆向分析与外挂制作报告【内联HOOK】
一.工具及游戏介绍 使用工具:Ollydbg,PEID,Cheat Engine 实现功能:玩家无敌 目标:找到全局数据,或关键代码块. 游戏版本:合金弹头1-5代珍藏版 二.逆向逻辑 1.初始判断[ ...
- 叶梓老师 数据分析与数据挖掘-培训提纲
点击博客个人主页查看叶梓老师的更多详情 第一天上午:统计分析原理 1. 统计基础 2. R语言基础知识 3. R语言数据类型 4. 描述性统计 5. 随机变量与概率密度分布 6. 定性相关 ...
- 移动APP外挂攻防实战
前言 近日,某某龙在2018年的一次会议上发表了一个演讲,4000多人聚集在现场玩"跳一跳"游戏.随着他们指尖的翻飞跳跃,大屏幕上的现场排名也在不断刷新--而在全场的惊叹声中,最高 ...
- 揭秘游戏外挂开发技术(一)之美
学习逆向分析和外挂编程也有一段时间了,我总结了外挂开发的基本思路和一些初级的方法和技巧.首先说说基本思路吧.我觉得外挂开发主要分为两部分: 一是对游戏的分析调试,主要是找基址和call地址等游戏信息. ...
- 揭秘游戏外挂开发技术(一)
学习逆向分析和外挂编程也有一段时间了,我总结了外挂开发的基本思路和一些初级的方法和技巧.首先说说基本思路吧.我觉得外挂开发主要分为两部分: 一是对游戏的分析调试,主要是找基址和call地址等游戏信息. ...
- 移动APP反外挂攻防实战
**> 前言 ** 近日,某某龙在2018年的一次会议上发表了一个演讲,4000多人聚集在现场玩"跳一跳"游戏.随着他们指尖的翻飞跳跃,大屏幕上的现场排名也在不断刷新--而在 ...
最新文章
- centos7.1 RabbitMQ安装配置
- 移动语义-右值引用-完美转发-万字长文让你一探究竟
- 【C语言】控制台窗口图形界面编程(三)窗口相关设置
- DISCUZ x2.5 插件实现DIY功能,让页面也可以自由设计
- 内网穿透 无需公网ip_无需端口映射、无需公网IP,60秒实现FTP服务远程访问
- Windows 7旗舰版安装Visual Studio 2013 Ultimate的系统必备及注意事项
- python json方法详解_python详解json模块
- 中央2套-理财教室-如何购买保险
- STM32工作笔记0013---认识UCOS系统
- Doc2vec在推荐系统中的应用(含算法原理、代码实现)
- static_cast 与reinterpret_cast
- sql server 数据库创建链接服务器访问另外一个sql server 数据库
- KeyBlaze for mac(专业打字练习软件)激活版
- linux ls 输出格式,(转)linux 中使用ls指定输出时间格式
- Linux SSH无密登录配置
- 那些你该知道的CSS颜色代码大全都在这里了,点击查阅
- SpringMVC使用Jedis发布后提示java.lang.ClassNotFoundException: redis.clients.jedis.Jedis问题
- LeCo-88.合并两个有序数组
- excel文件打不开如何修复
- zz一篇很赞同的文章:2008年以后房价会降?想都不要想