04 2014 档案
摘要:创建一个线程可以使用CreateThread函数,函数的用法是: invoke CreateThread,lpThreadAttributes,dwStackSize,lpStartAddress,\ dwParameter,dwCreationFlags,lpThreadId .if eax mov hThread,eax .endif函数使用的参数定义如下:● lpThreadAttributes——指向一个SECURITY_ATTRIBUTES结构,用来定义线程的安全属性,这个结构在CreateFile函数的介绍中...
阅读全文
摘要:钩子可以用来截获系统中的消息流 通过SetWindowsHookEx函数定义了监视函数的位置和监视消息的类型,这样,每当发生我们感兴趣的消息时,Windows就会将消息发送给监视函数,监视函数是一个处理消息的回调函数,也称为“钩子函数”。(会影响系统的性能)局部钩子仅钩挂属于自身进程的事件;(SetWindowsHook)远程钩子分两种:基于线程的和系统范围的(包括自身)。 1 基于线程的远程钩子用来捕获其他进程中某一特定线程的事件; 2 系统范围的远程钩子将捕捉系统中所有进程中发生的事件消息。钩 子 名 称监视消息的类型和时机WH_CALLWNDPROC每...
阅读全文
摘要:DLL函数头 DllEntry proc hInstDLL,dwReason,dwReserved mov eax,dwReason .if eax == DLL_PROCESS_ATTACH ;保存hInstDll ;初始化库需要的各种资源 .if 初始化成功 mov eax,TRUE ...
阅读全文
摘要:当设计一个可能需要申请大量内存的程序时,如何预先得知系统的配置情况呢?对此可以使用GlobalMemoryStatus函数: invoke GlobalMemoryStatus,lpBufferlpBuffer指向一个MEMORYSTATUS结构,结构的定义如下:MEMORYSTATUS STRUCT dwLength DWORD ? ;本结构的长度 dwMemoryLoad DWORD ? ;已用内存的百分比 dwTotalPhys DWORD ? ;物理内存总量 dwAvailPhys DWORD ? ;可用物理内存 dwTotalPageFile DWORD ? ;交换文件总的大小 d.
阅读全文
摘要:GDI函数全部包括在GDI32.DLL中 include gdi32.inc includelib gdi32.lib1 When——指的是进行图形操作的时机,2 Where——指的是图形该往哪里画,3 How——了解了上面两个问题后,最后还要知道“如何画”,1\计算及刷新整个客户区的代码全部安排在WM_PAINT消息中完成一些函数会引发WM_PAINT消息,如UpdateWindow,InvalidateRect以及InvalidateRgn函数等。和WM_TIMER消息类似,WM_PAINT消息也是一个低级别的消息,虽然它不会像WM_TIMER消息一样被丢弃但Windows总是在...
阅读全文
摘要:.code;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>; 定时器过程;>>>&g
阅读全文
摘要:创建窗口 .386 .model flat,stdcall option casemap:none;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>&g
阅读全文
摘要:条件语句.if 条件表达式1 表达式1为“真”时执行的指令[.elseif 条件表达式2] 表达式2为“真”时执行的指令[.elseif 条件表达式3] 表达式3为“真”时执行的指令[.else] 所有表达式为“否”时执行的指令.endif循环语句.while 条件测试表达式 指令 [.break [.if 退出条件]] [.continue].endw或.repeat 指令 [.break [.if 退出条件]] [.continue] .until 条件测试表达式(或.untilcxz [条件测试表达式])
阅读全文
摘要:基础结构.386.model flat,stdcalloption casemap:none .stack [堆栈段的大小].data .data? .const .code end 开始标号;这里是注释 分行的办法是在一行的最后用反斜杠(\)做换行符变量定义初始值放.data 未初始值.data? ;定义在 .data?段中不会增大 .exe文件的大小表3.2 变量的类型名 称 表示方式 缩 写 长度(字节)字节bytedb1字worddw2双字(doubleword)dworddd4三字(farword)fworddf6四字(quadword)qworddq8十字节...
阅读全文
摘要:获取当前进程名winDbg查看结构分页与非分页分配内核内存
阅读全文
摘要:入口函数/************************************************************************* 函数名称:DriverEntry* 功能描述:初始化驱动程序,定位和申请硬件资源,创建内核对象* 参数列表: pDriverObject:从I/O管理器中传进来的驱动对象 pRegistryPath:驱动程序在注册表的中的路径* 返回 值:返回初始化驱动状态*************************************************************************/#pragma ...
阅读全文
摘要:DIRVER_OBJETtypedef struct{PDEVICE_OBJECT DeviceObject;//驱动程序创建的设备对象。调用IoCreateDevice的时候会自动赋予正确的设备对象指针。PUNICODE_STRING HardwareDatabase;//设备的硬件数据库名(Unicode字符串)。一般为HKEY_LOCAL_MACHINE\Hardware\DESCRIPTION\System,是一个注册表路径PFAST_IO_DISPATCH FastIoDispatch;//文件驱动中用到的派遣函数。指向这个驱动程序的FastIO入口点定义的一个结构。这个成员只能通过
阅读全文
摘要:手动加载代码加载(win32)/*安装驱动程序流程: 1、调用OpenSCManager()打开服务控制管理器 2、调用CreateService()创建一个服务,服务类型为内核驱动 3、调用OpenService()取得服务句柄 启动服务 4、调用StartService()启动服务 停止服务 4、调用ControlService()停止服务 删除服务 4、调用DeleteService()删除服务 5、调用CloseServiceHandle()关闭服务句柄操作驱动程序流程: 1、调用CreateFile()取得设备句柄 2、调用DeviceIoControl()传递I/O控...
阅读全文

浙公网安备 33010602011771号