123456

 
上一页 1 2 3 4 5 6 ··· 39 下一页

2014年2月19日

shellcode流程

摘要: shellcode就是汇编的opcode,一般以子函数形式出现:取得shellcode的方便方式是:1.写一个函数如:void __stdcall code(LONG &a, LONG &b, DWORD &c, LONG &d, DWORD &e)取得它的汇编码:如: push ebp mov ebp,esp sub esp,14h push ebx push esi push edi mov dword ptr [ebp-4],0FFFFFFFFh mov dword ptr [ebp-0... 阅读全文

posted @ 2014-02-19 21:54 hgy413 阅读(285) 评论(0) 推荐(0) 编辑

2014年2月16日

驱动学习7

摘要: 上层应用程序和底层驱动程序通信时,应用程序会发出I/O请求,操作系统将I/0请求转化为相应的IRP,不同类型的IRP根据类型传递给不同的派遣函数IRP有两个基本属性,一个是MagorFunction,一个是MinorFunction,分别记录IRP的主类型和子类型,操作系统根据MajorFunction将IRP派遣到不同的派遣函数中,在派遣函数中还可以判断这个IRP属性哪个MinorFunction一般来说,NT式驱动和WDM驱动都是在DriverEntry中注册派遣函数的,在驱动对象中,有个函数指针数组MajorFunction,每个元素记录了一个函数地址,通过设置这个数组,可以把IRP类型 阅读全文

posted @ 2014-02-16 22:36 hgy413 阅读(237) 评论(0) 推荐(0) 编辑

2014年2月10日

windbg学习!vad

摘要: 在ring0 !address不能提供详细的信息了可以尝试用下!vad!vad扩展显示一个或多个虚拟地址详细的虚拟地址描述符(virtual address descriptor (VAD))。语法!vadVAD-Root[Flags]参数VAD-Root 指定要显示的VAD树的根的16进制地址。 Flags 指定显示的格式。可能的值如下:0 显示基于VAD-Root的整个VAD树。(这是默认情况。) 1 仅显示由VAD-Root指定的VAD。这种显示会包含更详细的分析。 使用!process命令可以找到任何进程的VAD的根地址kd> !vad 821b3260 VAD level .. 阅读全文

posted @ 2014-02-10 18:50 hgy413 阅读(616) 评论(0) 推荐(0) 编辑

2014年2月7日

驱动学习6----字符串系列函数

摘要: 6.1.2 ANSI_STRING字符串和UNICOCE_STRING用KdPrint表示分别%Z和%wZ表示如:extern "C" NTSTATUS DriverEntry ( IN PDRIVER_OBJECT pDriverObject, IN PUNICODE_STRING pRegistryPath ) { NTSTATUS status; KdPrint(("Enter DriverEntryp RegistryPath:%wZ\n",pRegistryPath) );要注意的是%wZ,w必须是小写,如果是%WZ,是不会打印的.6.1.3字 阅读全文

posted @ 2014-02-07 22:48 hgy413 阅读(467) 评论(0) 推荐(0) 编辑

2014年2月4日

驱动学习5

摘要: 5.1.2直接看PAGE_SIZE的大小就可以知道当前分页的大小//// Define the page size//#define PAGE_SIZE 0x20005.1.4驱动程序的不同函数运行在不同的进程中,DriverEntry和AddDevice函数是运行在系统进程中的(system)3: kd> !process sysmtemPROCESS 8a52a830 SessionId: none Cid: 0004 Peb: 00000000 ParentCid: 0000 DirBase: 0aac0020 ObjectTable: e1003e00 Handl... 阅读全文

posted @ 2014-02-04 20:43 hgy413 阅读(294) 评论(0) 推荐(0) 编辑

2014年1月20日

VS2008中调试dll

摘要: 1.运行dll实例时,会直接弹出一个小框:选择可拉起这个dll的exe运行就可以调试了2.以后每次都会直接运行了,要重新选择程序,弹出上面的框,需要在project-->debugging->command把exe路径清空有时没有可拉起这个dll的exe怎么办呢?那就使用windows的注册服务功能.:其中regsvr32.exe可以通过下拉框直接选择的,这时再在dllmain下断点,可以断下了! 阅读全文

posted @ 2014-01-20 14:51 hgy413 阅读(341) 评论(0) 推荐(0) 编辑

2014年1月8日

去掉DLL can move

摘要: 1.OptionalHeader.DllCharacteristics = wNewDllCharacteristics;用CFF打开,如果存在DLL can move这个选项,去掉即可2.Relocation Directory RVA/Size 置为0去掉了exe的重定位 阅读全文

posted @ 2014-01-08 16:59 hgy413 阅读(264) 评论(0) 推荐(0) 编辑

2014年1月6日

BSF、BSR: 位扫描指令

摘要: ;BSF(Bit Scan Forward): 位扫描找1, 低 -> 高;BSR(Bit Scan Reverse): 位扫描找1, 高 -> 低找到是 1 的位后, 把位置数给参数一并置 ZF=0找不到1时, 置 ZF=1__asm { pushad mov ebx, 000011100b bsf eax, ebx// eax=2 bsr eax, ebx// eax=4 popad }2表示从低到高找,0,1,2位找到14表示从高到低找,最高位1在第4位(0,1,2,3,4) 阅读全文

posted @ 2014-01-06 10:40 hgy413 阅读(1194) 评论(0) 推荐(0) 编辑

2014年1月1日

驱动学习4

摘要: 1.驱动对象.typedef struct _DRIVER_OBJECT { CSHORT Type; CSHORT Size; // // The following links all of the devices created by a single driver // together on a list, and the Flags word provides an extensible flag // location for driver objects. // PDEVICE_OBJECT DeviceObject; UL... 阅读全文

posted @ 2014-01-01 21:31 hgy413 阅读(361) 评论(0) 推荐(0) 编辑

2013年12月25日

DDK Build的DIRS和SOURCE文件

摘要: DDK Build编译的时候,使用3个文件来描述被编译的源码,其中SOURCES和Makefile是必须的,而DIRS则只在划分目录的时候有用。Makefile在这里作用并不大但是必须和SOURCES文件成对出现,关键还是SOURCES和DIRS文件。SOURCES文件用于描述其所在目录下,有哪些文件参与编译,编译的结果应该是什么(是一个lib还是一个sys?),输出目录在哪里,要传递给编译器的各种定义和选项分别是什么,等等。这里有一个概念需要特别的注意,就是由一个SOURCES文件描述的其实就是一个单独的小工程,Build最后会参照SOURCES文件的设置,产生一个指定的目标文件(dll ? 阅读全文

posted @ 2013-12-25 18:30 hgy413 阅读(788) 评论(0) 推荐(1) 编辑

上一页 1 2 3 4 5 6 ··· 39 下一页

导航