摘要:
在平时的分析当中,经常会碰到PE结构的文件,虽然 010 Editor 等工具会提供一个模板,把各个部分都详细的标记出来,但是在调试的时候,经常会需要在 VS 等程序框中进行调试,所以,就需要对PE结构有一定的了解,才能够快速定位到自己想要的地方。 为了更好的了解PE结构中的每一位的作用,最好的办法 阅读全文
摘要:
在上一篇文章手动打造一个弹窗程序中,我们自己手写了一份导入表,在调用函数的时候,我们CALL的是导入地址表的一个地址,为什么要调用这里,而且在构造导入表的时候,导入名称表(INT)和导入地址表(IAT)里面装的内容是一样的,程序又是怎么去调用的,在这篇文章中就来分析一下。 注:以下操作是在 XP 上 阅读全文
摘要:
文章来源:https://blog.seclibs.com/2020/02/25/进制的本质/ 什么是进制,进制的本质又是什么,为什么在计算的时候都会把十进制作为中间转换,其实这样的思维完全是错误的,进制的本质并不是我们熟悉的十进制。 进制的本质 进制的本质就是查表,与各种的转换没有任何关系,并不是 阅读全文
摘要:
文章来源:https://blog.seclibs.com/基于数组越界的缓冲区溢出/ 上一篇文章说了函数调用时候的堆栈变化,这里就基于这个内容来验证一下基于数组越界的缓冲区溢出。 在c语言中,数组必须是静态的,也就是在定义的时候必须明确数组的大小,在根本上来说,这个是堆栈提升的原因,只有在数组的大 阅读全文
摘要:
文章来源:https://blog.seclibs.com/函数调用堆栈图 c语言/ 我们就使用一个简单的c语言程序来对描述一下在函数调用的时候都发生了什么。 中间的一小段没有意义的汇编语言是为了方便设置断点,为后面的调试做好铺垫,因为有时会碰到找不到断点位置的情况,使用这个方法,可以在找不到断点的 阅读全文
摘要:
文章来源:http://blog.seclibs.com/算法之二分查找上 c语言实现/ 使用递归来实现的,逻辑比较简单,也不是太复杂的东西,直接上代码了 如果需要下载代码,请移步至文末 代码: "Github" 文章首发公众号和个人博客 公众号:无心的梦呓(wuxinmengyi) 博客:http 阅读全文
摘要:
文章来源:http://blog.seclibs.com/算法之二分查找上/ 二分查找在平时的生活中也挺常用的,比如说以前玩的猜数游戏,每次都取中间数,然后得知是大了,还是小了,这个例子也就是二分查找。 比如下面的这个例子,要查找有没有数值19,其中low和high是查找的区间的下标,mid是查找区 阅读全文
摘要:
文章来源:http://blog.seclibs.com/nginx学习 架构/ Nginx程序架构图如下 后面就先按照这个图所展示出来的内容对Nginx的架构进行一次梳理,文中所涉及到的内容,主要都是针对Linux系统的。 最上面的Master进程是管理员直接控制的,也只有Master进行接受管理 阅读全文
摘要:
文章来源:http://blog.seclibs.com/算法之排序下/ 前面两篇文章说了时间复杂度为O(n2)的冒泡排序、插入排序和选择排序;也说了时间复杂度为O(nlogn)的归并排序和快速排序;这次来说一下时间复杂度为O(n)的桶排序、计数排序和基数排序,由于它们的时间复杂度是线性的,所以它们 阅读全文
摘要:
文章来源:http://blog.seclibs.com/算法之排序中 c语言实现/ 上一篇文章里说了归并排序和快速排序,它们的代码实现是非常相似的,只要理解了其中的具体实现,还是比较容易写出代码的。 归并排序 代码如下,需要下载代码的请移步至文末 快速排序 代码如下,需要下载代码的请移步至文末 代 阅读全文