作者:无名侠链接:https://www.zhihu.com/question/23810828/answer/138696052来源:知乎著作权归作者所有,转载请联系作者获得授权。 元旦节马上就要过去,赶紧趁着12点之前写完回答。 如果觉得本文对你有用,请点个赞并关注一下我吧~ 我做逆向大概四年左 ...
分类:
其他好文 时间:
2017-02-10 20:18:52
阅读次数:
215
1:上一节解释了什么是位置无关码、位置有关码。当程序的加载地址与链接地址不一致的时候,如果使用位置有关码则需要重定位。 2:重定位的操作实质就是把链接脚本中的想要重定位的代码段如:.text、 .data段的内容复制到链接地址处。 3:具体分析一下位置有关码,位置无关码:位置无关码和位置有关码实质的 ...
分类:
其他好文 时间:
2017-01-24 02:02:07
阅读次数:
281
在C语言编程中,我们几乎不可能看见有人将一个结构体变量作为参数进行传递,因为效率太低了。本文尝试从反汇编的角度给出其中的原因。 对于C语言来说,所有的参数传递都是值传递。如果一个变量为指针,那么传递的就是指针变量的值(即某个内存地址)。 那么,如果一个参数是结构体变量(包括多个成员),怎么从call ...
分类:
其他好文 时间:
2017-01-19 19:42:38
阅读次数:
569
运行结果: 查看反汇编的代码,发现:int nTmp = &a[4] - &a[0];00416B87 lea eax,[ebp-28h] 00416B8A lea ecx,[arrayTmp] 00416B8D sub eax,ecx 00416B8F sar eax,2 00416B92 mov ...
分类:
编程语言 时间:
2016-12-26 12:04:27
阅读次数:
211
Must-Read Books and Other References Books on C/C++: The C Programming Language by Brian W. Kernighan and Dennis M. Ritchie. Prentice Hall, 1988. The ...
分类:
其他好文 时间:
2016-12-21 21:22:49
阅读次数:
215
博客链接: 第一周作业 摘要:学习了实验楼linux基础入门课程。 第二周作业 摘要:实验楼实验一:反汇编一个简单的程序。书《linux内核设计与实现》:第1章,第2章,第18章内容。 第三周作业 摘要:自己对于为何要学习linux的感想。 第四周作业 摘要:实验二:分析精简内核源代码mymain. ...
分类:
系统相关 时间:
2016-12-18 15:28:28
阅读次数:
263
在调试一些病毒程序的时候,可能会碰到一些反调试技术,也就是说,被调试的程序可以检测到自己是否被调试器附加了,如果探知自己正在被调试,肯定是有人试图反汇编啦之类的方法破解自己。为了了解如何破解反调试技术,首先我们来看看反调试技术。 一、Windows API方法 Win32提供了两个API, IsDe ...
教程目录:[基础篇CE教程]第一课 内存与数据第二课 用CE搜索内存中的数据第三课 模糊值的搜索第四课 模糊值的搜索[游戏实践]第五课 内存中的值第六课 偏移与基址第七课 偏移与基址之源第八课 多级偏移的寻找与分析[OD与反汇编]:认识ODOD与反汇编001.OD界面详解.rarOD与反汇编002. ...
分类:
其他好文 时间:
2016-11-27 20:18:40
阅读次数:
391
在C++中,程序员可以动态分配内存。而堆内存正是我们使用C++的malloc函数、new运算符或者其他具有相同功能的函数动态分配的,下面是一个使用new操作符申请一个对象的例子 以上代码反汇编如下(只贴出重要部分): 根据以上反汇编代码可以得知,new操作符在申请一个对象的内存空间时,会先检查空间是 ...
分类:
其他好文 时间:
2016-11-21 22:44:19
阅读次数:
119
构造函数是C++类的重要组成部分,起着初始化对象的作用。当对象生成的时候,编译器会自动调用对象的构造函数,完成对象的初始化工作。根据对象的不同作用域和声明周期,可以将对象分为一下几种: 1.局部对象 2.堆对象 3.全局对象 4.静态对象 下面我们将以反汇编(VC6.0)的形式,查看局部对象的调用时 ...
分类:
其他好文 时间:
2016-11-21 07:52:56
阅读次数:
180