C++学习
1_f0rm4t3d
-
展开
-
由函数指针变量组成的数组(实现免杀动态调用的基础)
C 语言使用由函数指针变量组成的数组, 简单模拟虚函数表调用方式原创 2013-12-11 17:34:04 · 1285 阅读 · 0 评论 -
C++分析淹没EIP
可定位的EIP位置,利用数据段数据给EIP位置赋值,强行转移程序的执行流程,也就是关键是pop EIP时栈顶的数据决定,因为EIP会把pop过来的数据当指令地址去寻址执行,这下问题就清晰了,应该是可以把它转移到一个可执行代码段(比如自己的ShellCode),以上只是个人的简单理解,手写的大致汇编流程,一定有很多错误,求指点!原创 2013-09-25 21:45:14 · 1756 阅读 · 0 评论 -
C和C++面试题
1,关于动态申请内存 答:内存分配方式三种: (1)从静态存储区域分配:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。 全局变量,static变量。 (2)在栈上创建:在执行函数时,函数内局部变量的存储单元都可以在栈上创建, 函数执行结束时这些存储单元自动被释放。 栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 (3)用malloc或转载 2014-04-18 10:32:16 · 952 阅读 · 0 评论 -
三种方法打印 main函数的返回地址的值(old EIP)(用途,你懂得!)
这里可以简单的修改任意函数的返回地址,可以做到自定义EIP的指向,即可执行当前进程空间的任意指令,这里只是让大家更清楚栈帧结构,没有涉及跨进程的inline HOOK 等,后面会陆续讲下读取任意进程内存,修改任意进程函数执行流程等方法。 废话不多说了,直接上菜: #include #include /* 打印 main函数的返回地址的值(用途,你懂得!)原创 2014-09-28 23:16:04 · 3727 阅读 · 0 评论