1、 汇编2、 脱壳1)5种常见的语言特征(也是判断是否到达OEP的一种方法)2)附加数据的处理3)自校验的处理 1) 如果是调用错误提示——F12堆栈调用法 2)如果是文件/数据损坏错误提示——2OD对比法(bp CreateFileA)4) BC++程序的手动查找IAT3、 破解1>一般破解目标...
分类:
其他好文 时间:
2014-07-07 16:13:57
阅读次数:
248
mov:寄存器,数据mov:寄存器,寄存器mov:寄存器,内存单元mov:段寄存器,内存单元mov:内存单元,寄存器mov:内存单元,段寄存器mov:段寄存器,寄存器mov:寄存器,段寄存器add:寄存器,数据add:寄存器,寄存器add:内存单元,寄存器add:寄存器,内存单元sub:寄存器,数据...
分类:
其他好文 时间:
2014-07-03 11:52:24
阅读次数:
191
8086CPU出栈入栈都是以字为单位进行的。push ax 由一下两步完成1、SP=SP-22、将ax中的内容送入SS:SP指向的内存单元pop ax1、将SS:SP指向的内存单元中的内容送入ax2、SP=SP+2push 寄存器pop 寄存器push 段寄存器pop 段寄存器push 内存单元po...
分类:
其他好文 时间:
2014-07-02 00:52:34
阅读次数:
302
Targets选项下有Other linker flags的设置,用来填写XCode的链接器参数,如:-ObjC -all_load -force_load等。还记得我们在学习C程序的时候,从C代码到可执行文件经历的步骤是:源代码 > 预处理器 > 编译器 > 汇编器 > 机器码 > 链接器 > 可...
分类:
移动开发 时间:
2014-07-01 20:31:43
阅读次数:
271
Dalvik汇编语言基础Dalvik虚拟机为自己设计了一套指令集,并制定了自己的指令格式和调用规范。位描述约定如下:每16位的字采用空格分隔开来每个字母表示4位,每个字母按顺序从高字节开始,排列到低字节。每4位之间可能使用竖线「|」表示不同的内容。顺序采用A~Z的单个大写字母作为一个4位操作码,op...
分类:
移动开发 时间:
2014-07-01 13:53:30
阅读次数:
163
本文目录一、C语言简史二、C语言的特点三、C语言能做什么?四、C语言的版本问题五、C语言语法预览回到顶部一、C语言简史C语言于1972年发明,首次使用是用于重写UINX操作系统(UNIX以前是用汇编写的)随着UNIX操作系统的成功,C语言也得到了大幅度地推广,至今还是世界上最流行、使用最广泛的高级程...
分类:
编程语言 时间:
2014-06-30 23:46:57
阅读次数:
320
1、C语言的执行过程包括5个步骤:分别是:预处理,编译,汇编,链接,执行
第一步:编写C源代码,截图如下:
2、预处理,命令为:gcc -E variable.c -o variable.i(这步的作用是文件的展开和宏替换),生成的文件类型是.i类型的。
3、编译:命令为:gcc -S variable.i -o variable.s,这里的.s文件就成了会变语言,截图如下:
4、...
分类:
编程语言 时间:
2014-06-30 18:23:41
阅读次数:
269
践踏堆栈-缓冲区溢出漏洞
打算写这篇文章是因为在网上看过一篇论文,讲了缓冲区溢出破坏堆栈来执行恶意程序的漏洞。该论文请见参考资料1。这篇文章会涉及一些汇编的基础知识,以及虚拟内存的一些基本概念等。当然用来调试程序的系统是linux,工具是gcc。很久没有看过汇编和C语言了,错漏之处,还请指正。
1.概要
文章标题有提到堆栈和缓冲区,那么就先来探讨下这几个名词的定义。这里的缓冲区,指的就是计算...
分类:
其他好文 时间:
2014-06-30 10:22:25
阅读次数:
176
一.常用的寄存器
r0 -r3 临时变量 用于传递参数,传递返回指,当传递参数的参数大于4个时,用栈空间。即开辟sp
fp:frame pointer 记录回溯sp
ip: 很少用 ,临时存放sp
sp:指向栈顶
lr:link register 用于跳转时记录返回地址
pc:记录cpu运行指令的地址 因为arm采用流水线方式 取值 译码 执行等 pc=pc+8, 即pc指向当前执行的指令的下两条。
cpsr :状态寄存器,每种工作模式有自己的cpsr,记录当前...
分类:
其他好文 时间:
2014-06-30 07:53:36
阅读次数:
344
include/asm/io.h
#define outb(value,port) __asm__ ("outb %%al,%%dx"::"a" (value),"d" (port))
//宏定义outb用汇编实现了在端口地址port处写入值value
//使用的寄存器是al,一个byte长度,而端口port使用的是2byte长度地址来标记的寄存器,注意这里寄存器的使用
...
分类:
系统相关 时间:
2014-06-29 23:13:13
阅读次数:
369