逆向
B_H_L
这个作者很懒,什么都没留下…
展开
-
PE文件详解
DOS MZ头IMAGE_DOS_HEADERSTRUCT :IMAGE_DOS_HEADER STRUCT{+0hWORDe_magic //Magic DOS signature MZ(4Dh5Ah) DOS可执行文件标记+2h WORD e_cblp //Bytes on last page offile+4hWORD e_cp //Pages i转载 2014-03-27 14:06:11 · 1180 阅读 · 0 评论 -
PE 导出表
当PE 文件被执行的时候,Windows 加载器将文件装入内存并将导入表(Export Table) 登记的动态链接库(一般是DLL 格式)文件一并装入地址空间,再根据DLL 文件中的函数导出信息对被执行文件的IAT 进行修正。导出表就是记载着动态链接库的一些导出信息。通过导出表,DLL 文件可以向系统提供导出函数的名称、序号和入口地址等信息,比便Windows 加载器通过这些信息来完成动态连转载 2014-04-11 14:50:45 · 1175 阅读 · 0 评论 -
汇编跳转指令
名称功能操作数操作码模数寄存器1寄存器2或内存位移量立即数符号方向芯片型号16位32位JO溢出跳转短$70无无无无10无无8086无无JNO不溢出跳转短$71无无无无10无无8086无无JB低于跳转短转载 2014-04-12 11:41:33 · 3890 阅读 · 0 评论 -
理解windows消息处理机制
消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。转载 2014-04-12 11:14:11 · 1532 阅读 · 0 评论 -
汇编 段内转移和段间转移
a.段内直接转移,具体格式:CALL 过程名。此时CS不入栈,IP的内栈入栈,入栈后再将加上目的地址与CALL指令的下一条指令的偏移地址之差值就可以转移到目的地址,详细过程: SP-2=>SP;将堆栈指针SP减2 (SP) IP+偏移地址之差;转到目的地址 b.段内间接转移,具体格式:CALL OPRD,那么在这里OPRD可以寄存器或内存单元,它的具体实现过转载 2014-06-06 11:23:46 · 8969 阅读 · 0 评论 -
详谈HOOK API的技术
文章作者:MGF信息来源:邪恶八进制信息安全团队(www.eviloctal.com)HOOK API是一个永恒的话题,如果没有HOOK,许多技术将很难实现,也许根本不能实现。这里所说的API,是广义上的API,它包括DOS下的中断,WINDOWS里的API、中断服务、IFS和NDIS过滤等。比如大家熟悉的即时翻译软件,就是靠HOOK TextOut()或ExtTextOut(转载 2014-06-06 17:24:28 · 1296 阅读 · 0 评论 -
Windows API Hook
原文地址:http://blog.sina.com.cn/s/blog_628821950100xmuc.html原文对我的帮助极大,正是因为看了原文,我才学会了HOOK,鉴于原文的排版不是很好,又没有原工程例子源码下载,因此我决定对其重新整理,文章后面附有我测试时的工程源码下载地址。注:我测试的环境为Win7+VS2008+MFC原文出处,好像是这篇:http://blog.cs转载 2014-05-23 17:11:12 · 757 阅读 · 0 评论 -
动态获取API函数地址
cvc论坛里好久没人写基础文章了,我就大胆地来个大家写个有关API函数地址获取的文章,希望对初学病毒的你有所帮助 要想动态地获得一个API函数的地址,我们通常都是调用系统的LoadLibraryA()函数和GetProcAddress()函数来动态地获得。LoadLibraryA()用来加载API函数对应的动态链接库(dll),GetProcAddress()函数用来获得API函数对应转载 2014-06-13 17:24:54 · 7662 阅读 · 0 评论 -
Win32 PE病毒原理分析
by guojpeng/CVC.GB在绝大多数病毒爱好者眼中,真正的病毒技术在Win32 PE病毒中才会得到真正的体现(令病毒极度疯狂的DOS时代已经过去)。并且要掌握病毒技术的精髓,学会Win32汇编是非常必要的。本节所涉及到的源代码全部采用Win32汇编语言编写。Win32病毒同时也是所有病毒中数量极多,破坏性极大,技巧性最强的一类病毒。譬如FunLove、中国黑客等病毒都是属转载 2014-06-13 17:51:09 · 7103 阅读 · 1 评论 -
PE 导入表
输入表结构 在 PE文件头的 IMAGE_OPTIONAL_HEADER 结构中的 DataDirectory(数据目录表) 的第二个成员就是指向输入表的。而输入表是以一个 IMAGE_IMPORT_DESCRIPTOR(简称IID) 的数组开始。每个被 PE文件链接进来的 DLL文件都分别对应一个 IID数组结构。在这个 IID数组中,并没有指出有多少个项(就是没有明确指明有多少个转载 2014-04-11 15:01:46 · 1155 阅读 · 0 评论 -
PE 节表、对齐值、RVA
通常,区块中的数据在逻辑上是关联的。PE 文件一般至少都会有两个区块:一个是代码块,另一个是数据块。每一个区块都需要有一个截然不同的名字,这个名字主要是用来表达区块的用途。例如有一个区块 叫.rdata,表明他是一个只读区块。注意:区块在映像中是按起始地址(RVA)来排列的,而不是按字母表顺序。另外,使用区块名字只是人们为了认识和编程的方便,而对操作系统来说这些是无关紧要的。微软给这些区块取了转载 2014-04-11 15:12:52 · 2002 阅读 · 0 评论 -
intel汇编指令
反汇编引擎的目的就是要把机器码翻译成汇编语言的格式,主要的汇编格式有Intel格式、AT&T格式,一般在window环境中使用的大多数都是intel格式的汇编语言。这里从官方手册的介绍中总体介绍这两部分的内容,只有知道机器码的格式,汇编指令的格式,才能在其上架起一座桥梁汇编或反汇编。这里我们习惯称汇编指令为Intruction operand,而称机器码为Intruction Opcode。转载 2014-03-26 12:16:15 · 14669 阅读 · 0 评论 -
内核库函数Kernel32.exe提供的API
函数名称 说明AddAtom 向本地原子表添加一个字符串AllocConsole 为当前进程分配一个新控制台AreFileApisANSI 确定一个WIN32文件函数集是否在使用ANSI或OEM字符集代码页BackupRead 向一缓冲区读进与给定文件相关联的数据BackupSeek 在访问数据流中向前搜索BackupWrite 将数据传送到指定的文件或目录中Be转载 2014-04-16 13:58:24 · 2666 阅读 · 0 评论 -
win32 API函数大全
1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetCloseEnum 结束一转载 2014-04-16 15:08:50 · 1567 阅读 · 0 评论 -
Windows系统服务编程
许多的病毒和木马都将自己注册为系统服务,来实现自启动。有的注册新的服务,有的替换现有服务实现隐藏。添加系统服务是Windows木马一个普遍使用的技术,还是比较实用的。就让我们来看看它是如何实现的。 先给出一段程序,说明如何添加一个新的系统服务。 #include #include #include转载 2014-04-17 11:06:48 · 6050 阅读 · 0 评论 -
使用 GetStartupInfo 检查自己是否被"调试"
标 题: 使用 GetStartupInfo 检查自己是否被"调试"作 者: dummy时 间: 2006-09-03,17:42:24链 接: http://bbs.pediy.com/showthread.php?t=31447在使用 CreateProcess 创建进程时,需要传递 STARTUPINFO 的结构的指针,而常常我们并不会一个一个设置其结构的值,转载 2014-04-16 09:17:36 · 1727 阅读 · 0 评论 -
windows服务的编程方法
windows服务有两种,一种是驱动服务程序,另外一种是win32服务程序,我们这里只谈win32服务程序,查看win32服务程序,可以这样:开始->运行->services.msc可以打开windows自带的服务程序控制程序。这个大家都应该很熟悉了吧。下面来讲讲利用vc编程来对win32服务程序进行管理,包括创建、删除已经对win32服务程序的运行状态进行管理。在进入编程之前先要转载 2014-04-17 11:31:59 · 956 阅读 · 0 评论 -
创建SvcHost.exe调用的服务原理与实践
创建时间:2003-08-27 更新时间:2003-08-27文章属性:原创文章提交:bingle (bingle_at_email.com.cn)创建SvcHost.exe调用的服务原理与实践 by bingle_at_email.com.cn www.BingleSite.net1. 多个服务共享一个Svchost.exe进程利与弊wi转载 2014-04-17 11:46:43 · 1021 阅读 · 0 评论 -
RvaToOffset 函数实现
DWORD RvaToOffset(PBYTE pMapping, DWORD dwRva) { IMAGE_DOS_HEADER *pidh = (IMAGE_DOS_HEADER *)pMapping; IMAGE_NT_HEADERS *pinh = (IMAGE_NT_HEADERS *)(pMapping + pidh->e_lfanew);转载 2014-04-03 17:50:42 · 1782 阅读 · 0 评论 -
8086 CPU 寄存器简介
引子打算写几篇稍近底层或者说是基础的博文,浅要介绍或者说是回顾一些基础知识,自然,还是得从最基础的开始,那就从汇编语言开刀吧,从汇编语言开刀的话,我们必须还先要了解一些其他东西,像 CPU ,内存这些知识点还是理解深刻一点的比较好,所以这一篇博文就绕着 80x86 CPU 中寄存器的基础部分下手,至于其他的一些将会在后续的博文中介绍 。同时在这里转载 2014-03-24 14:14:12 · 1782 阅读 · 0 评论 -
一种巧妙的删除程序自己的方法
转自乘风原创程序近日看到网友询问如何实现程序运行之后把自己删除的方法,不知大家对木马甚么的兴趣实在太浓,还是想要这样的效果:用户只要一运行程序,可执行文件就没有了,可是程序还是在跑,胆小的只怕要喊"鬼呀!","老婆,快出来看上帝"甚么的 。其实最典型的用法是写反安装程序. 闲来无事,Bear掰到一种还算巧妙的“删除自己”的方法。 大家都知道,一般的程序运行的时候,可执行文件转载 2014-09-29 16:16:08 · 1420 阅读 · 1 评论