Corax的博客

“我想做我能做的事 ”

【安全学习之路】Day13

sec


【安全学习之路】Day12

sec


【安全学习之路】Day11

sec


【安全学习之路】Day10

sec

今天被国赛题目狠狠地干碎了,但好歹是把自己调节过来了,已经是凌晨两点半,继续学

【安全学习之路】Day1

sec

从今天开始,我将和将Web安全结合二进制安全一起来学习,梦想成为全栈哈哈哈加油吧。 笔记在有道云笔记,想着在博客也可以传一份,所以以图片的方式转载吧。 这段时间会对Web放多一些的经历,二进制安全的方向先结合一些CTF逆向题目,后面会看一些书。

【加密与解密】第四章 5

READ

####3.多重继承虚表 多重继承是指一个类同时继承多个父类。多重继承与单重继承相比,可以有多个父类。 可以看出main函数与单重继承无区别。在cderived构造函数中,首先按继承顺序调用两个基类的构造函数,然后执行自己的构造函数代码。 因为两个基类都有虚函数,在这种情况下编译器会为派生类生成两个虚表,在构造函数时初始化。虚表项的构造顺序和上一个例子基本一致,唯一的区别在于派生类新...

【加密与解密】第四章 4

READ

###4.整数的取模 取模运算可以通过除法指令实现。一般的优化做法是将其转换成等价的位运算或者除法运算,再由除法运算进行优化。 ##虚函数 C++的三大核心机制是封装,继承,多态,而虚函数就是多态的一种体现。软件逆向中,难免遇到使用面向对象思想设计的软件,而虚函数就是在实际软件逆向过程中的一种还原面向对象的重要手段。本章探讨编译器实现虚函数的原理。 ###1.虚表 首先在main的入...

【加密与解密】第四章 3

READ

##数据结构 主要是对局部变量,全局变量,数组等的识别。 ###1.局部变量 局部变量是函数内定义的变量,存放的内存区域称之为栈区。生命周期就是从函数进入到返回释放。 函数在入口处申请了预留栈空间和局部变量空间,也就是sub rsp,30h。局部变量空间在高地址。在应用程序被编译成release版本的时候,需要有更高的性能,所以在取局部变量的时候选用寄存器,当不够的时候再采用栈空间。 #...

【加密与解密】第四章 2

READ

###4.条件指令设置 条件指令的形式是SETcc r/m8,其中r/M8是表示8位寄存器或者单字节内存单元。 条件设置指令格局处理器定义的16种条件测试一些标志位。把结果记录到操作数当中。条件满足时,目标操作数为1,否则为0. 这里有一段代码。 如果运用条件设置指令 ###5.纯算法实现逻辑判断 在编译器优化的时候,会在不改变原来逻辑的情况下,使用数学技巧把源代码的一些逻辑分支转化成...

【加密与解密】第四章 1

READ

通过分析汇编代码来理解其代码功能,然后用高级语言重新描述这段代码,逆向分析原始软件的思路,这就是逆向工程。 #32位软件逆向技术 ##启动函数 首先被执行的是启动函数的相关代码,这段代码是由编译器生成的。启动函数就是对该运行库进行一个初始化。当所有的初始化操作结束后,启动函数会调用应用程序的进入点函数。进入点返回时,启动函数便调用C运行库的exit函数,将返回值传递给他,再推出。 ##函数 ...