摘要:
逆向之利用地址覆盖执行Shellcode Shellcode Shellcode定义 Shellcode实际是一段代码(也可以是填充数据),是用来发送到服务器利用特定漏洞的代码一般可以获取权限。 Shellcode的作用 Shellcode一般是作为数据发送给受攻击服务器的。Shellcode是溢出 阅读全文
摘要:
逆向之异常处理机制分析 异常处理简介 异常处理概念 是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件) 异常处理的方法 异常处理使用try、catch和finally关键字来尝试可能未成功的操作,处理失败,以及在事后清理资源。 异常处理 阅读全文
摘要:
逆向之虚函数执行分析 同名函数调用 函数重复定义: 在C++中,同一类中是不能定义两个名字相同、参数个数和类型都相同的函数的,否则就是“重复定义” 不同层次的函数调用: 在类的继承层次结构中在不同的层次中可以出现名字相同、参数个数和类型都相同而功能不同的函数。编译系统按照同名覆盖的原则决定调用的对象 阅读全文
摘要:
逆向之密码破解 OllyDbg介绍 OllyDbg的功能 OllyDbg提供程序动态调试的功能,可以在程序运行过程中修改汇编指令 OllyDbg的转移指令 在利用OllyDbg分析程序的过程中, “转移指令”就是在程序判断符合特定条件的情况下使程序发生跳转。 “转移指令”通常是分析程序的突破口。 常 阅读全文
摘要:
逆向之整数溢出漏洞 溢出漏洞的简介 溢出漏洞的概念: 溢出是黑客利用程序的漏洞,专门开发的一种程序,加相应的参数运行后,就可以达到某种目的。溢出是程序设计者设计时的不足所带来的错误 溢出的类型: 溢出分为缓冲区溢出、 内存溢出、数据溢出等 整数的概念 整数的分类: 在计算机中,整数分为无符号整数以及 阅读全文
摘要:
逆向之函数栈帧结构分析 函数的简介 函数的定义 计算机的函数,是一个固定的一个程序段,或称其为一个子程序,它在可以实现固定运算功能的同时,还带有一个入口和一个出口。 函数的入口: 函数的入口,就是函数所带的各个参数,我们可以通过这个入口,把函数的参数值代入子程序供计算机处理。 函数的出口: 函数的出 阅读全文
摘要:
逆向之程序堆栈 计算机内存分布 计算机内存:计算机内存分为数据段、代码段、堆段和栈段。 堆和栈在数据结构中是两种不同的数据结构。两者都是数据项按序排列的数据结构。 栈 栈的定义:后进先出的数据结构。 栈的存取规则:后存放的先取先存放的后取,类似于取放在箱子底部的东西,首先要移开压在它上面的物体 堆 阅读全文
摘要:
逆向之汇编语言 首先介绍计算机程序在计算机中的处理过程。 现代计算机存储和处理的信息以二值信号表示,也就是二进制序列,程序对于计算机而言就是一串二进制数据流,以流水线的方式进入CPU进行运算。主要在CPU与内存之间进行数据传递。但程序员写出来的程序是以高级语言的形式展现的,计算机不是人脑,看不懂高级 阅读全文