摘要:
1.什么是Ngnix Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能力强; Ngnix的主要功能: 反向代理; 负载均衡; 动静分离; 2.正向代理 Nginx 不仅可以做反向代理,实现负载均衡。还能用作正向代理来进行上网等功能。 正向代理 阅读全文
摘要:
例如:一个HelloDll.dll 其导出表信息如下: 该dll有4个函数; 用.def的方式导出; 其中有个匿名函数; 1.分析 导入dll中的函数有两种方式: 1】通过序号 2】通过函数名 例如:显式链接dll时使用的库函数“GetProcAddress”实现了用函数的查找; myPlus = 阅读全文
摘要:
exe程序中通常会使用动态链接库dll中的函数; dll相当于一个独立的模块,dll中的代码并不会编译到exe程序中; 这就产生了一个问题:exe怎么知道dll中的代码在什么位置; 这就需要dll提供一个清单,这个清单中能清晰说明有多少个函数、它们的名字、地址; 导出表就是这样的一个清单; exe和 阅读全文
摘要:
1.代码的重用 一般在程序中,代码重用可以用函数来实现; 给其它程序重用代码的实现有两种方式: 1】静态链接库 2】动态链接库 也就是可以用来实现模块化; 1.静态链接库 1)创建静态链接库 vc6中创建:File ->new ->Projects ->Win32 Static Library 头文 阅读全文
摘要:
可选pe头结构中最后一个属性:_IMAGE_DATA_DIRECTORY DataDirectory[16];用来表示数据目录 1、我们所了解的PE分为头和节,在每个节中,都包含了我们写的一些代码和数据,但还有一些非常重要 的信息是编译器替我们加到PE文件中的,这些信息可能存在在任何可以利用的地方。 阅读全文
摘要:
如果pe头部没有足够的空间插入一个新的节表,可以考虑扩大最后一个节; 注意是最后一个节,如果扩大中间的节,很可能造成后面的节整体偏移而找不到; 1.扩大节的大概步骤 1】读取文件到缓冲区; 2】拉伸文件镜像; 3】分配一个新的空间:SizeOfImage + Ex; 4】修改最后一个节表的数据: S 阅读全文
摘要:
可以向pe程序的空白区添加代码; 但是,如果想要添加一段复杂功能的代码,空白区可能空间不够; 一种解决办法是新增一个节,把自己的代码加到这个节中; 1.添加节需要做的事情 添加节需要做两件事: 1】判断是否有足够的空间 2】修改的数据 pe文件的结构: 可以看到: dos头紧接着一堆垃圾数据; 后面 阅读全文
摘要:
1.工具头文件 #ifndef PETOOL_H #define PETOOL_H #include "stdafx.h" #include <stdlib.h> #include <windows.h> //函数声明 //************************************** 阅读全文
摘要:
目标: 往一个exe程序中添加一段代码,运行exe程序时先执行自己添加的代码,然后再开始执行exe程序; 例如:使桌面程序crackme.exe执行前,先弹一个框之类的; 思路: 1】修改程序入口 可选pe头中的AddressOfEntryPoint属性决定了程序的入口地址; 可以将这个值设为目标代 阅读全文
摘要:
// PEOperate.cpp: implementation of the PEOperate class. // ////////////////////////////////////////////////////////////////////// #include "PEOperate.h" ///////////////////////////////////////////... 阅读全文