ida逆向c语言失败,IDA逆向:结构体的逆向

源代码:

int _tmain(int argc, _TCHAR* argv[])

{

struct v1 {

int a;

short b;

char c;

int d;

double e;

};

v1* heap_struct = (v1*)malloc(sizeof(v1));

heap_struct->a = ;

heap_struct->b = ;

heap_struct->c = ;

heap_struct->d = ;

heap_struct->e = ;

return ;

}

逆向分析:

结构体中的数据字段是通过名称访问的,但编译器将名称访问转换为数字偏移

所以在反汇编中难以区别

堆分配结构体

push ; Size

call ds:__imp__malloc

add esp,

cmp esi, esp

call j___RTC_CheckEsp

mov [ebp+heap_struct], eax

mov eax, [ebp+heap_struct]

mov dword ptr [eax],

mov eax,

mov ecx, [ebp+heap_struct]

mov [ecx+], ax

mov eax, [ebp+heap_struct]

mov byte ptr [eax+],

mov eax, [ebp+heap_struct]

mov dword ptr [eax+],

mov eax, [ebp+heap_struct]

fld ds:__real@

fstp qword ptr [eax+10h]

原类型 大小 偏移

int (dword)

short ()

char (byte)

int (dword)

double (qword)

为默认4字节对齐

总结:全局和栈分配方式中的结构体 与  普通变量相似 难以区分

【逆向工具】IDA使用3-全局变量、数组、结构体

全局变量 测试代码 全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建.全局变量是可以被本程序所有对象或函数引用.下面这段代码中将int.float.char变量定义在main函数之外. / ...

逆向知识第十四讲,(C语言完结)结构体在汇编中的表现形式

逆向知识第十四讲,(C语言完结)结构体在汇编中的表现形式 一丶了解什么是结构体,以及计算结构体成员的对其值以及总大小(类也是这样算) 结构体的特性 1.结构体(struct)是由一系列具有相同类型或不 ...

[IDA]批量载入结构体

我们之前介绍了如果单独定义一个C结构体并转换为IDA中的结构体. 但是,在内核中有很多庞大的结构体,一环接着一环,手动导入不现实. 还存在一个问题,可能大小格式不匹配. 之前有一位老哥推荐我一个工具: ...

安利一个IDA插件diaphora,可以将函数名、注释、结构体等的先前版本移植到新版本

插件代码地址 https://github.com/joxeankoret/diaphora 使用方法: 启动IDA并首先打开包含完整符号的二进制文件1.让我们的IDA完成初始的自动分析,之后,通过运 ...

IDA分析时添加新的C语言结构体

View - Open Subviews - Local Type - INSERT键 - 输入新结构体 - 右击"Synchornize to idb" 之后再分析处按 T 就可 ...

站在OC的基础上快速理解Swift的类与结构体

阅读此文章前,您已经有一定的Object-C语法基础了!) 2014年,Apple推出了Swift,最近开始应用到实际的项目中. 首先我发现在编写Swift代码的时候,经常会遇到Xcode不能提示,卡 ...

iOS安全攻防之结构体保护使用

Objective-C 代码很容易被 hook,因此需要对一些重要的业务逻辑进行保护,可以改用结构体的形式,把函数名隐藏在结构体里,以函数指针成员的形式存储.这样编译后只留了下地址,去掉了名字和参数表 ...

c++ STL map 结构体

Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候 ...

随机推荐

动态加载js、css 代码

一.原生js: /** * 加载js和css文件 * @param jsonData.path 前缀路径 * @param jsonData.url 需要加载的js路径或css路径 * @param ...

转:alphaImageLoader滤镜加载后 链接不能点击

我是一个很少使用IE滤镜,也是一个不赞成使用IE滤镜的前端工程师.不过今天有一个朋友给我发来了一个有关于IE6的BUG,就是在IE6中使用了AlphaPNG透明的IE滤镜之后,a链接不能够点击.具体情 ...

简单的HTML注册界面

我的第一个HTML页面

jquery版 发同步请求 自定义头部信息 公共请求体

//jquery版 发同步请求 function getData(url,param,fn){ var Authorization=localStorage.getItem("Authori ...

mahout 使用

最近在做mahout源码调用的时候,发现一个参数:startPhase和endPhase,这两个参数是什么意思呢?比如运行RecommenderJob时,可以看到10个MR任务,所以猜测是否是一个ph ...

几个 h5页面效果和 自动 app 生成网站 微页

用MAKA.易企秀.兔展就够了,MAKA和兔展用户体验好些,易企秀广告有点丑,不过模板多一些. 至于交互类工具,iH5.Mugeda.Epub360这三个里面选一个就行. -------------- ...

php的设计模式------工厂模式

1.工厂模式简介 属于创建型模式.定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行主要解决的问题:接口选择的问题. 2.分类 2.1 简单工厂模式 接口: ...

ASP.NET 使用 AjaxPro 实现前端跟后台交互

使用 AjaxPro 进行交互,很多人都写过文章了,为什么还要继续老生常谈呢.因为有一些细节上的东西我们需要注意,因为这些细节如果不注意的话,那么程序会报错,而且维护性较差. 引言 一.首先,还是那句 ...

LINUX内核升级-更新网卡驱动

因项目需要,将当前内核(2.6.32-220.el6.x86_64)升级到目标内核(2.6.33-110.el6.x86_64),但是编译的目标 内核(2.6.33-110.el6.x86_64)的对 ...

多数据源 + Configuration中bean依赖注入顺序问题

为什么要调用方法,而不是直接autowire? 官方文档 https://docs.spring.io/spring-boot/docs/current/reference/html/howto-da ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值