软件逆向原理与实践 复习-编程思维
一、IA-32的内存模型和内存管理 区分三个概念:物理地址、线性地址和逻辑地址 物理地址:CPU地址总线传来的地址。 线性地址:空间是连续的,从0到FFFFFFFFH,虚拟地址不是被直接送到内存地址总线上,而是送到存储器管理单元MMU,把虚拟地址映射为物理地址。 逻辑地址:在有地址变换功能的计算机中,访内指令给出的地址 (操作数) 叫逻辑地址,也叫相对地址,也就是是机器语言指令中,用来指定一个操
morethink program
一、IA-32的内存模型和内存管理 区分三个概念:物理地址、线性地址和逻辑地址 物理地址:CPU地址总线传来的地址。 线性地址:空间是连续的,从0到FFFFFFFFH,虚拟地址不是被直接送到内存地址总线上,而是送到存储器管理单元MMU,把虚拟地址映射为物理地址。 逻辑地址:在有地址变换功能的计算机中,访内指令给出的地址 (操作数) 叫逻辑地址,也叫相对地址,也就是是机器语言指令中,用来指定一个操
游戏 我们就以《猎人的生存日记》(Orion Sandbox)这款游戏来分析。 下载链接 用FlashStart打开Orion Sandbox 1.swf 我们需要反复进入游戏,可以先打开一次游戏,以此进行:文件 \(\rightarrow\)游戏路径\Orion Sandbox 1.swf。 工具 可以看16进制的软件(我用的是HxD) 数字 因为这是个本地游戏,所以在本地要有个储存的位置
Cycript Cycript 是一种运行时的动态分析工具,它可以在运行的 iOS 应用程序中注入代码,并与其交互。使用 Cycript,你可以在运行时检查和修改应用程序的状态、调用其方法、查看和修改变量值等。 Cycript 的语法类似于 JavaScript,它包含了一些特殊的命令和语法,用于与 iOS 应用程序进行交互。也可以用使用OC的语法。 可以使用 Cycript 来执行以下操作:
所有资源可以在官网下载 代码逆向工程 逆向分析法 静态分析 不执行代码,观察外部特征,获取其文件类型、大小、PE头、Import/Export API、字符串、是否运行时解压缩、注册信息、调试信息、数字证书、反汇编代码等 动态分析 在程序文件执行的过程中对代码进行分析。 一般首先静态分析,再进行动态分析。 逆向Hello World 代码如下: #include<windows.h>
我们把玻璃杯摆成金字塔的形状,其中 第一层 有 1 个玻璃杯, 第二层 有 2 个,依次类推到第 100 层,每个玻璃杯 (250ml) 将盛有香槟。 从顶层的第一个玻璃杯开始倾倒一些香槟,当顶层的杯子满了,任何溢出的香槟都会立刻等流量的流向左右两侧的玻璃杯。当左右两边的杯子也满了,就会等流量的流向它们左右两边的杯子,依次类推。(当最底层的玻璃杯满了,香槟会流到地板上) 例如,在倾倒一杯香槟后,
给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。 示例 1: 输入:root = [1,2,5,3,4,null,6]输出:[1,null,2,null,3,null,4,null,5,null,6]示
给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。 如果链表中存在环 ,则返回 true 。 否则,返回 false 。 示例 1:
【C++】从零开始的CS:GO逆向分析3——写出一个透视 本篇内容包括: 1. 透视实现的方法介绍 2. 通过进程名获取进程id和进程句柄 3. 通过进程id获取进程中的模块信息(模块大小,模块地址,模块句柄) 4. 读取游戏内存(人物ViewMatrix,敌人坐标,敌人生命值,敌人阵营) 5. 三维坐标转二维坐标(游戏内人物坐标转换成屏幕上的坐标) 6. glfw+
【C++】从零开始的CS:GO逆向分析2——配置GLFW+IMGUI环境并创建透明窗口 使用的环境:Visual Studio 2017,创建一个控制台程序作为工程文件 1.配置glfw 在github上下载GLFW https://github.com/glfw/glfw,github上的版本会比官网的高 解压后使用Visual Studio打开文件夹 选择生成32位项目
【C++】从零开始的CS:GO逆向分析1——寻找偏移与基址的方法 前言:此文章主要用于提供方法与思路,fps游戏基本都能如此找偏移,文章里找的偏移比较少,主要用来演示寻找思路,文章的后记中会附一个大佬的github项目,项目会定期更新CS:GO游戏中常用的偏移值,写程序的时候使用大佬项目里的内容即可。本章需要CE基础,达到会改植物大战僵尸的阳光就可以了,全称采用CE搜基址,没有使用汇编分析。
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图。本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正。 如有好的建议,欢迎反馈。码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作。如想转载,请把我的转载信息附在文章后面,并声明我的个人信息和本人博客地址即可,但必须事先通知我。 你如果是从中间插过来看的,请仔细阅读 跟羽夏学 Ghi
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图。本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正。 如有好的建议,欢迎反馈。码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作。如想转载,请把我的转载信息附在文章后面,并声明我的个人信息和本人博客地址即可,但必须事先通知我。 你如果是从中间插过来看的,请仔细阅读 跟羽夏学 Ghi
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图。本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正。 如有好的建议,欢迎反馈。码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作。如想转载,请把我的转载信息附在文章后面,并声明我的个人信息和本人博客地址即可,但必须事先通知我。 你如果是从中间插过来看的,请仔细阅读 跟羽夏学 Ghi
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图。本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正。 如有好的建议,欢迎反馈。码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作。如想转载,请把我的转载信息附在文章后面,并声明我的个人信息和本人博客地址即可,但必须事先通知我。 你如果是从中间插过来看的,请仔细阅读 跟羽夏学 Ghi
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图。本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正。 如有好的建议,欢迎反馈。码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作。如想转载,请把我的转载信息附在文章后面,并声明我的个人信息和本人博客地址即可,但必须事先通知我。 你如果是从中间插过来看的,请仔细阅读 跟羽夏学 Ghi
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图。本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正。 如有好的建议,欢迎反馈。码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作。如想转载,请把我的转载信息附在文章后面,并声明我的个人信息和本人博客地址即可,但必须事先通知我。 你如果是从中间插过来看的,请仔细阅读 跟羽夏学 Ghi
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图。本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正。 如有好的建议,欢迎反馈。码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作。如想转载,请把我的转载信息附在文章后面,并声明我的个人信息和本人博客地址即可,但必须事先通知我。 你如果是从中间插过来看的,请仔细阅读 跟羽夏学 Ghi
本文作者:xiaoyuer 1.木马分析入门 大家好,我最近从Web安全开始学习二进制安全,分享一下自己学习过程的收获和心得体会。由于是入门的内容,所以对于二进制大佬来说这很简单,所以本文主要面向的对象主要是和我一样一直做Web安全,又想入门二进制安全的人。本次我学习的案例是木马和病毒常用的一个技术:确保只有一个病毒或者木马在系统中运行,即运行单一实例。对于病毒和木马而言,如果多次重复运行