1、restrict 它仅仅能够用于限定指针。告知编译器该指针是訪问一个数据对象的唯一且初始的方式。即不存在其他进行改动操作的途径。 主要作用是能够让编译器进行一些优化,生成更高效的目标代码。 看个样例: int foo(int *a,int *b) { *a = 1; *b = 2; return ...
分类:
其他好文 时间:
2017-04-26 15:57:11
阅读次数:
217
反汇编基本原理与x86指令构造 概要:旨在讲述程序的二进制代码转换到汇编。即反汇编的基本原理。以及 x86 架构的 CPU 的指令构造,有这个基础后就能够自己编写汇编程序了,也能够将二进制代码数据转换成汇编助记指令。当然,把本文当作手冊的阅读指导也是能够的。本文还讲述了 DEBUG 工具的部分功能。 ...
分类:
其他好文 时间:
2017-04-16 15:13:53
阅读次数:
498
上学期实验楼上做过这个实验 直接修改程序机器指令,改变程序执行流程 首先进行反汇编 我们所要修改的是,程序从foo返回,本来要返回到80484ba,而我们要把80484ba修改为getshell的首地址,所以通过vim直接查看可执行文件,并找到程序从foo返回的二进制代码,并将其替换,使之跳转到函数 ...
分类:
其他好文 时间:
2017-03-05 17:35:06
阅读次数:
154
镇场文:学儒家经世致用,行佛家普度众生,修道家全生保真,悟易理象数通变。以科技光耀善法,成就一良心博客。______________________________________________________________________________________________________code:#include<stdio.h>
voidmain()
{
intnum1=..
分类:
编程语言 时间:
2017-02-26 21:27:26
阅读次数:
466
在X64的情况下,JMP反汇编出来的 FF 25 后面加的是 00 00 00 00 和导出表函数地址 测试代码如下: Sub_1和 Sub_8InX64同样是汇编 ...
分类:
其他好文 时间:
2017-02-25 12:30:36
阅读次数:
212
在X86下,JMP反汇编出来的FF 25加的是导入表的地址 测试代码如下: ...
分类:
其他好文 时间:
2017-02-25 12:17:17
阅读次数:
183
源代码: 逆向分析: 结构体中的数据字段是通过名称访问的,但编译器将名称访问转换为数字偏移所以在反汇编中难以区别堆分配结构体 为默认4字节对齐 总结:全局和栈分配方式中的结构体 与 普通变量相似 难以区分 ...
分类:
其他好文 时间:
2017-02-25 01:09:59
阅读次数:
417
定义一个引用类型不能指向NULL吗? 怎么理解引用的类型转换? 引用比指针安全,真的是这样吗? 常量引用和引用有什么不同? 引用指向临时对象? ...
分类:
编程语言 时间:
2017-02-17 21:39:43
阅读次数:
232
在反汇编代码中,当看到xmm寄存器,第一反应是将要进行浮点操作或访问,但是更加多的情况是在使用xmm寄存器初始化局部对象。 下面是自制反汇编工具翻译出来的代码: 首先对函数原型进行分析,对下面翻译代码对rdx的访问使用分析,可以知道作为dl访问,通常是作为布尔类型使用,从而得到setAllowsEd ...
分类:
其他好文 时间:
2017-02-14 20:22:35
阅读次数:
236
这里有一个(x64)例子,刚好说明寄存器在函数中的位置编排。rdi是第一个不为浮点或数据结构的参数,这里的第一个参数实质上与我们定义的函数类型的第一个参数不是对应的。 ...
分类:
其他好文 时间:
2017-02-14 19:08:43
阅读次数:
187