
逆向编程
晚霞残影邀明月
脚本丈量走过的路,测量未走的人生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
汇编笔记-(基本常用指令,函数调用规则,语句与结构反汇编)
堆栈 堆栈指令 push: 把32位操作数压入堆栈,压入成功后esp被减4. pop: 将32位操作数弹出堆栈,弹出之前esp被加4. 可涉及堆栈操作的指令 sub: 通常被减数放入寄存器中,第二个参数放在堆栈上; add: 第一个参数放在eax寄存器上,第二参数放在堆栈上; ret: 返回。类似于pop与jmp的组合指令。 call: 调用函数。类似于push与jmp的组合指令。 数据传送指令 ...原创 2020-05-02 17:12:22 · 450 阅读 · 0 评论 -
逆向编程-入口地址了解
程序在进行入口函数地址执行之前,先将执行下列函数,为程序的运行准备环境。 main函数被调用前先要调用的函数如下: getversion(); 获取当前运行平台的版本号。控制台程序运行在Windows模拟的dos下,因此这里获取的版本好为ms-dos的版本信息。 _heap_init(); 用于初始化堆栈空间。在函数实现中使用HeapCreate申请堆空间,申请空间的大小由_heap_init传递...原创 2019-02-02 17:44:38 · 634 阅读 · 0 评论 -
逆向分析-汇编分析
汇编实现: 1.参数入栈; 2.函数调用;升栈;保护现场;填充缓冲区,执行操作;恢复现场,减低堆栈 3.平衡栈; eg: //保存原来栈底 push ebp //提升栈 mov ebp,esp sub esp,0x40 //保护现场 push edi push esi push ebx //填充堆栈 mov eax,0x0cccccccc lea edi,[ebp-40] mov ecx,0x10...原创 2019-02-04 21:27:08 · 649 阅读 · 0 评论 -
逆向工程-语句分析
逆向工程函数分析: 分析函数参数:将传入的参数分别用符号进行表示; 分析局部变量:[ebp-4] 分析全局变量:[0x12345678] 功能分析 //if语句汇编分析 int a = 0; int b = 2; if (b > a) { cout << a; } 汇编逆向分析: //提升堆栈 00911E80 push ebp 00911E81 ...原创 2019-02-05 21:48:59 · 563 阅读 · 0 评论 -
逆向工程-PE文件结构
pe通常由以下几部分组成,DOS文件、标准PE头、可选头、节表和相应的节。 DOS文件头: _IMAGE_DOS_HEADER{ WORD e_magic; //MZ标记*,用于判断是否为可执行文件1 WORD e_cblp; //bytes on last page WORD e_cp; //pages of file WORD e_crlc; //relocations W...原创 2019-02-06 15:41:24 · 338 阅读 · 0 评论 -
PE文件结构-目录项结构
目录项结构 数据目录项位于可选PE头的最后一部分,向前四个字节说明了数据目录项的数量,而每个数据目录项的结构一致,分别包含RVA地址和数据项的大小。 IMAGE_DATA_DIRECTORY STRUCT { DWORD VirtualAddress ;数据的起始RVA DWORD isize ;数据块的长度 } 数据目录项通常共有16项,它们的详细说明如下: 英文描述 中文描述 ...原创 2019-03-09 11:50:24 · 1133 阅读 · 0 评论