- 博客(11)
- 资源 (4)
- 收藏
- 关注
原创 调试断点原理之普通断点
以OD为调试器分析不同断点的区别:普通断点原理:直接改写断点内存地址的第一个字节,替换为int3 (0xcc,软中断机制),并保存原始字节至OD维护的一张断点表处。程序运行到此处时会中断,抛出异常,OD通过捕获该异常,暂停程序运行至断点内存地址处(断点处指令仍未执行),当执行断点处指令时,并不是完全从内存中取指令,因为该断点内存中的第一个指令已经被改写为0xcc,因此,此时执行的指令是由断
2015-04-21 22:55:16
6570
原创 C++虚函数:虚指针、虚表、虚函数入口地址
测试程序://test.c#include"stdio.h"#include"string.h"class GSVirtual{public: void gsv(char *src) { char buf[200]; strcpy(buf,src); vir2(); } virtual void vir1() { printf("vir1"); } vir
2015-04-17 20:39:03
1900
1
原创 指针悬挂~实例解释
指针悬挂: 指针在释放之后,没有设置为NULL。使得指针仍然指向原地址。 多个指针指向同一对象时,释放其中一个指针,并设置为null,其他的指针仍然成为了悬挂指针。危 害:通过悬挂指针读写内存,信息泄露代码测试实例: #include#includeint main(){ int *p1=
2014-11-17 14:23:56
1831
1
原创 PIN插装~linux下无法识别程序内部定义例程解决方法
经过几天的coding和阅读PIN相关API,发现,PIN的开发人员也意识到,在linux下由于没有符号表,PIN很难识别一些程序内部定义的例程,这些例程的名字通常为:sub_例程起始地址。因此,PIN提供了一个创建例程的API:RTN_CreateAt(ADDRINT addr,string name)。在PIN识别程序内部自定义例程失败的时候,用户可自己通过上述API来创建此例程,并告诉PIN
2014-11-17 12:21:38
1003
原创 程序动态完整性校验之指令分支记录
目的:记录程序的分支跳转地址,比如:jump、call、ret等直接或间接、无条件或条件转移指令的跳转地址(从哪来,跳到哪去)使用动态插装工具:PIN分析: 首先,因为需要记录指令的地址,并且区分转移指令,因此需要对程序进行指令级插装。由PIN提供指令级插装API : INS_AddInstrumentFunction(func,0) 注册指令级插装回调函数fun
2014-09-15 15:15:45
1550
原创 Pin~动态插装原理
参考文献:《Pin:Building Customized Program Analysis Tools with Dynamic Instrumentation》Pin的插装流程:首先系统加载pin并进行初始化,再由pin去加载pintool,进行相关初始化,然后pintool请求pin运行待插装的程序。Pin则拦截程序运行的入口点。取一个trace然后进行即时编译,在即时编译过程中
2014-04-12 15:31:52
6467
1
原创 linux下安装protobuf及常见错误
下载protobuf-X.X.X.tar.gzmv protobuf-X.X.X.tar.gz descd destar -zxvf protobuf-X.X.X.tar.gz./configure makemake check make install安装测试:protoc --version常见错误:protoc: error while loading sha
2014-03-25 21:20:04
2545
转载 ELF文件动态链接时 GOT,PLT 的变化过程
转自:http://hi.baidu.com/jfojfo/item/5fc5de3c3b9ebbf2e6bb7a03ELF文件动态链接时 GOT,PLT 的变化过程Intel平台下Linux中ELF文件动态链接的加载、解析及实例分析(一): 加载http://www.ibm.com/developerworks/cn/linux/l-elf/part1/index.htmlI
2014-02-18 21:56:33
1070
原创 SUSE Linux 64位环境下编译hadoop2.2.0源码
OS环境:SUSE Linux Enterpriser Server 11 SP2 (64位)Mission:由于apache官网所提供的编译好的Hadoop-2.2.0-tar.gz 只兼容32位系统,安装在64位系统下会出现各种兼容性错误。故,需要在64位系统下,对hadoop-2.2.0源码进行重新编译。START:准备工作:步骤 :1、安装JDK 在ora
2013-12-01 16:19:34
2593
端口查看器 查看端口的利器(无插件)
2010-04-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人