----IDA 逆代码
实战IDA逆向代码
eGanWo
联系方式:641290869@qq.com
展开
-
IDA 逆向代码 --- LOBYTE、HIBYTE、BYTE0~BYTE3 的使用
场景:IDA 反编译的代码,对于取当前数的某位时,使用的是LOBYTE、HIBYTE、BYTE1~BYTE8,但是实际上,IDA反汇编的代码里面 BYTE8从来没有用过,会使得逆向工程师产生疑惑。需要知道其具体的意义.分析,这些类型数据都存储在defs.h 中,我们逆向代码的时候可以直接将此文件加到工程中,直接创建一个win32工程,贴下列代码://测试 LOBYTE、HIBYTE ...原创 2020-03-25 18:10:30 · 7352 阅读 · 1 评论 -
IDA 逆向代码 --- 反编译失败 Decomplication failure
场景:IDA经常会解析错误,Decomplication failure,我们要学会如何处理这些错误,才能得到伪代码。可能原因1:函数约定的错误;可能原因2:函数参数识别错误;解决方法:分析函数的参数个数和调用约定,Y重新定义函数;例如:上面有提示出错的地址 ,G过去看 是在调用函数,看看他是调用什么函数,函数有啥问题。可能原因3:函数体内字节码未识别;解决...原创 2019-11-29 11:14:17 · 2295 阅读 · 0 评论 -
IDA 逆向代码 --- 双精度浮点型jumpout
场景:IDA识别出一个函数为:int __fastcall _floatsidf(int result){ if ( result ) JUMPOUT(&loc_DD7F4AA4); return result;}分析:调试一下,通过输入和输出发现:函数floatsidf 实际上就是将int 转换成为 double型;浮点数,注意R0 和R1,是使用...原创 2019-11-11 16:23:00 · 4683 阅读 · 0 评论 -
IDA 逆向代码 --- 可变参识别错误解决
一、背景:碰到一个IDA识别可变参函数调用的时候,识别错tt_uart_send_head_80499B6(2, 0x19);//函数调用的地方unsigned int tt_uart_send_head_80499B6(int a1, ...)// 函数定义明显这里有错误,因为我们知道可变参列表的前面一定有一个参数表示可变参的个数;二、分析: 2.1 可变参的基础C 库宏 - v...原创 2019-11-11 15:49:04 · 1894 阅读 · 0 评论 -
IDA逆向代码 --- 结构体分析与建立
结构体的创建首先要确定结构体的大小,主要是通过数据的使用来确定结构体的大小; IDA中结构体成员一般出现在:类初始化的地方(XX.dll);根据成员的多少,我们创建结构体的大小,注意虚表vt占4个字节;一般有三个地方有助于我们创建结构体:初始化函数成员列表、memcpy函数的使用、memset函数的使用、数据库字段;在memcpy的参数中的size,结构体大小起码为size;在...原创 2019-10-11 17:35:51 · 1801 阅读 · 0 评论 -
逆向反汇编--- 虚函数特征识别与虚表的建立
一、虚函数重要性虚函数是面向对象的重要组成部分,是多态的基础,如果定义了虚函数但是没有定义构造函数,编译器必须提供默认的构造函数(因为必须要初始化虚表指针);二、虚函数特性与识别虚表指针一定是在对象的首地址的前4个字节(固定的,且4字节,这一点很重要),虚表指针指向的虚函数表的首地址,虚函数作为成员函数使用; 对于开发者来说,虚表和虚表指针都是隐藏的;如果类没有虚函数,构造的时候不...原创 2019-03-08 23:14:32 · 961 阅读 · 0 评论 -
IDA 逆向代码---小技巧
1、识别局部变量。 反汇编出来的伪代码中,后面又注释的 rX@X的就是局部变量; int v7_stepID; // r0@1 int v8_ret; // r4@1 局部变量可以直接使用,IDA一般不会识别错误; 2、越界判断代码,逆向时不用管。 unsigned __int8 v13_recbuf[1024]; // [sp...原创 2019-09-07 16:41:00 · 2157 阅读 · 0 评论 -
IDA 逆向代码--- 指针类型的使用
场景:指针、地址、数组访问、一维二维数组转换在IDA F5 之后的伪代码里面时常被用到;理解:指针指向的是地址,指针表示的是 从某个地址开始 按照 指定数据类型 读取数据;如下函数定义: int v12; // r3@32 unsigned int v39[96]= { //int v39; // [sp+94h] [bp-1074h]@1 ...原创 2019-09-07 16:15:15 · 1679 阅读 · 0 评论 -
IDA sig文件的生成与使用
问题引入:Sig文件能使得IDA识别更多的符号,便于分析;前面在《IDA 逆向技巧》中有提到sig文件的制作,自己写一个demo编译成为lib,再生成sig文件,具体步骤如下;1、使用IDA打开lib,可以看出lib里面有多少个obj文件;2、使用link.exe 将lib中的obj文件导出来(这个link.exe 来自于哪里?)命令:link -lib /extract:test...原创 2019-08-05 11:02:22 · 2483 阅读 · 0 评论 -
IDA 逆向代码 --- 数组分析与建立
需要逆向的代码:(IDA 拷贝出来的) int v54; // [sp+F4h] [bp-1124h]@1 int v55; // [sp+104h] [bp-1114h]@1 int v56; // [sp+108h] [bp-1110h]@1 int v57; // [sp+10Ch] [bp-110Ch]@1 int v58; // [sp+110h] [bp-1108h...原创 2019-08-02 20:03:50 · 2429 阅读 · 0 评论