![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++逆向
文章平均质量分 78
Traxer
这个作者很懒,什么都没留下…
展开
-
C++反汇编学习笔记1——选择判断语句
逆向第一篇,两年前写的,欢迎大家吐槽!1.流程控制语句的识别If…else…语句比较简单,这里就不做详细说明。这里对switch语句和循环语句进行判断。1.1 switch语句1.1.1 case语句块不大于3条(模拟if…else…结构,也有可能不止3条,表示比较少)此时,switch语句块反汇编的代码与if…else…的相差无几,只是switch语句将所有条件跳转都放到了一原创 2013-12-17 18:18:12 · 1980 阅读 · 0 评论 -
C++反汇编学习笔记3——函数的调用方式
函数的调用方式VC++下有三种函数调用方式,分别是:__cdecl 、 __stdcall 、__fastcal。第一种是C/C++默认的函数调用方式,如果不特殊指明用那种方式则默认使用__cdecl,而且只有第一种可以在不定参数的函数下使用,后面的方式指明所使用的函数必须是确定参数的,包括参数的个数和类型。下面就来详细介绍这三种调用方式之间的区别。1. __cdecl方式和__原创 2013-12-17 18:27:31 · 1680 阅读 · 0 评论 -
C++反汇编学习笔记4——结构体和类1
在C++中类和结构体都具有构造函数、析构函数和成员函数,两者的唯一区别就在于结构体的默认访问控制为public,而类则是private。在C++中对于访问控制都是在编译期进行检查,所以在执行时程序不会对访问控制做任何检查和限制,因此在反汇编中两者没有区别,两者原理相同只是类型名称不同。1.对象的内存布局了解C++就必然要了解类,所以类和对象之间的关系这里就不再多说,就举几个简单的小例子:原创 2013-12-17 18:38:04 · 2050 阅读 · 0 评论 -
C++反汇编学习笔记5——结构体和类2
两年前写的,欢迎大家吐槽!转载请注明出处。3.静态数据成员CStatic类具有静态的数据成员,现在来看一下它与上面提到过的类有什么不同:class CStatic {public: void ShowNumber() { printf("m_nInt= %d , m_snInt = %d", m_nInt, m_snInt);原创 2013-12-17 18:41:51 · 1323 阅读 · 0 评论 -
C++反汇编学习笔记7——数组和指针以及他们的寻址
两年前写的,欢迎大家吐槽! 转载请注明出处。1. 数组在函数内先通过一个简单的例子来看一下数组和普通变量在初始化时的不同之处:这是数组初始化: 42: int nArry[5] = {1, 2, 3, 4, 5};0042B758 mov dword ptr [ebp-1Ch],1 0042B75F mov dw原创 2013-12-17 18:53:54 · 5822 阅读 · 0 评论 -
C++反汇编学习笔记2——循环语句
转载请注明出处。1. 循环语句1.1 do循环首先来看一段goto语句(什么?不知道goto语句,C语言老师太水了吧,这都不教。其实就和无条件跳转指令JMP差不多,但是最好不要用,因为会破坏结构化)的例子:int GoToDo(intnCount){ int nSum =0; int nIndex =0;GOTO_DO: nSu原创 2013-12-17 18:23:42 · 1188 阅读 · 0 评论 -
C++反汇编学习笔记6——变量在内存中的位置和访问方式
变量在内存中的位置和访问方式1. 全局变量和局部变量的区别具有初始值的全局变量在源代码链接时就被写入所创建的PE文件,当该文件被执行时操作系统分析各个节中的数据填入对应的内存地址中,这时全局变量就已经存在了,等PE文件的分析和加载工作完成之后才执行入口点的代码。所以全局变量不受作用域的影响,程序的任何位置都可以访问。下面就来具体讲述不同点。全局变量和常量类似都是被写入文件中,因此生原创 2013-12-17 18:48:13 · 4874 阅读 · 0 评论