分类 逆向工程 下的文章

逆向工程——栈

[TOC] ## 栈 栈是计算机科学李最重要的且最基础的`数据结构`之一。 从技术上讲,栈就是CPU寄存器里面的某个指针所指向的一片内存区域。这里所说的`某个指针`通常位于x86/x64平台的`ESP寄存器/RSP寄存器`,以及ARM平台的`SP寄存器`。 操作站最常见的指令是`PUSH`和`POP`,在 x86 和 ARM Thumb 模式的指令集里都有这两条指令。 `P...

m0nst3r 2017 年 11 月 30 日 暂无评论

逆向工程——HELLO WORLD!

[TOC] >内容主要参考《RE4B》 从今天开始,我们将学习《RE4B》这本书。这本书和汇编基础一起,将做为我们入门逆向工程的基础。 为了省去大家安装各种不同编译器的麻烦,我们将使用在线工具进行编译,地址如下: [[https://gcc.godbolt.org/]][1] ## HELLO WORLD 现在,我们形如演示各种编程书中的最著名的程序: ``` #...

m0nst3r 2017 年 11 月 27 日 暂无评论

逆向工程——汇编基础(五)

## 子程序 在汇编语言中,无门并不能像高级语言中那样,在不和程序其他部分起冲突的情况下,定义和其他主程序或子程序一样的变量名。 汇编语言并不注重程序员的负担,它依赖程序员的良好设计,以期发挥CPU的最佳性能。 汇编语言不是结构化的语言,它不提供直接的“局部变量”。如果需要,只能`通过堆或栈自行实现`。 参数的传递是靠`寄存器`或`堆栈`来完成的。高级语言中,子程序(函数/过程,...

m0nst3r 2017 年 11 月 22 日 暂无评论

逆向工程——汇编基础(四)

[TOC] ## 堆栈 ### 基本概念 1. 堆栈是一个先进后出(FILO)的线性表 `FILO`是指:`最后`放进表中的数据在`取出`时,`最先`出来,即 Fist in Last Out。 ![3rd_1.png](http://m0nst3r.me/usr/uploads/2017/11/3463317631.png) 2. 系统堆栈不仅仅是一段内存。 由于CP...

m0nst3r 2017 年 11 月 20 日 暂无评论

逆向工程——汇编基础(三)

[TOC] 参考文档:《简明 x86 汇编语言教程》作者:司徒彦南 ##操作内存 我们可以将内存想象为一个顺序的字节流。操作内存是,首先需要的就是他的地址。 ``` mov ax,[0] ``` `方括号`表示,里面的表达式指定的不是`立即数`,而是`偏移量`。在是模式中,`DS:0`中的那个`字`会被装入AX。 ``` mov [0],ax ``` mov指令也可...

m0nst3r 2017 年 11 月 15 日 暂无评论