摘要: 校验和(Checksum)PE的可选映像头(IMAGE_OPTION_HEADER)里面,有一个Checksum字段,是该文件的校验和,一般EXE文件可以使0,但一些重要的和系统DLL及驱动文件必须有一个校验和.Windows 提供了一个API函数MapFileAndCheckSum 测试文件的Checksum,它位于IMAGEHLP.DLL链接库里,其原型:ULONG MapFileAndCheckSum{ LPSTR FileName, // 文件名 LPDWORD HeaderSum, // 指向PE文件头的CheckSum LPDWORD new_checksum // 指向新计算出的 阅读全文
posted @ 2012-12-07 09:32 小金马 阅读(13830) 评论(0) 推荐(0) 编辑
摘要: MFC 对话框工程中添加菜单(VC++ 6.0编译器)第一步:创建对话框资源和菜单资源.第二步:添加菜单到对话框中方法一:在创建的对话框中右键,在Menu选项选择自己的菜单ID如下图此时就可以了.方法二:不用方法一,直接添加代码完成上述功能.添加代码到DialogDlg ::OnInitDialog中CMenu *menu = new CMenu;menu ->LoadMenu(MAKEINTRESOURCE(IDR_MENU)); //IDR_MENU 菜单IDthis ->SetMenu(menu);或者Cmenu m_menu;m_menu.LoadMenu(IDR_MENU 阅读全文
posted @ 2012-12-07 09:30 小金马 阅读(12658) 评论(0) 推荐(0) 编辑
摘要: 本阶段目标:1 加深阅读调试器中的汇编代码的能力2 加深对Windows底层理解3 解决下层bug的能力.1 第一个实例: int main(int argc, char* argv[]){ return 0;}反汇编后:00401010 >|> 55 PUSH EBP00401011 |. 8BEC MOV EBP,ESP00401013 |. 83EC 40 SUB ESP,4000401016 |. 53 PUSH EBX00401017 |. 56 PUSH ESI00401018 |. 57 PUSH EDI00401019 |. 8D7D C0 LEA EDI,DWOR 阅读全文
posted @ 2012-12-07 09:26 小金马 阅读(1175) 评论(0) 推荐(0) 编辑
摘要: 用NtTerminateProcess真正终止进程.首先,要使用Native API,要对它进行声名:typedef DWORD (CALLBACK* NTTERMINATEPROCESS)(HANDLE,UINT);NTTERMINATEPROCESS NtTerminateProcess;HMODULE hNtdll = NULL; hNtdll = LoadLibrary( "ntdll.dll" ); //从ntdll.dll里获取函数 if ( !hNtdll ) { printf( "LoadLibrary( NTDLL.DLL ) Error:%d\ 阅读全文
posted @ 2012-12-07 09:23 小金马 阅读(3010) 评论(0) 推荐(0) 编辑
摘要: 如何判断操作系统是64位还是32位 64位Wnidows 里面有个叫Wow64的模拟器技术,可以使32位的程序在64位Windows上运行。当你想在程序里面针对32b位/ 64位系统执行不同代码的时候, 需要判断操作系统是32位还是64位。 使用 Windows API函数 GetNativeSystemInfo 可以获得这个信息。代码示例:SYSTEM_INFO si;GetNativeSystemInfo(&si);if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64 || si.wProcessorArchit 阅读全文
posted @ 2012-12-07 09:21 小金马 阅读(792) 评论(0) 推荐(0) 编辑
摘要: 批处理制作教程 批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。在无盘运用及Hack入侵过程中,经常都会用到。一.简单批处理内部命令简介 1.Echo 命令 打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。 语法 echo [{on off}] [message] Sample:@echo off / echo hello world 在实际应用中我们会把这条命令和重定向符号(也 阅读全文
posted @ 2012-12-07 09:20 小金马 阅读(882) 评论(0) 推荐(0) 编辑
摘要: 通过PsGetCurrentProcess函数来获取当前调用驱动的进程的EPROCESS结构的地址.EPROCESS结构的0x174偏移处存放着进程名.思路如下:驱动程序的加载函数DriverEntry是运行在System进程中的.(1) 通过PsGetCurrentProcess可以获取System进程的内核EPROCESS结构的地址,(2) 从该地址开始寻找"System"字符串.(3) 找到了便是EPROCESS的进程名存放的偏移处,得到进程名在EPROCESS结构的偏移后,(4) 进程调用驱动的时候,就可以直接在该偏移处获取当前进程名.代码如下:DWORD GetP 阅读全文
posted @ 2012-12-07 09:18 小金马 阅读(5518) 评论(0) 推荐(0) 编辑
摘要: 目录1 基础知识:. 21.1结构框图... 21.2 快照函数... 22 Heap Walking解析... 32.1 Heap Walking定义... 32.2 Heap Walking常用函数... 42.3 实例... 43 Process Walking 解析... 53.1 PROCESSENTRY32定义... 53.2 Process Walking 常用函数... 63.3 Process Walking 实例... 64 Thread Walking 解析... 74.1 THREADENTRY32定义... 74.2 Thread Walking常用的函数... 84 阅读全文
posted @ 2012-12-06 18:18 小金马 阅读(859) 评论(0) 推荐(0) 编辑
摘要: 动态加载DLL的方法与注意的问题动态加载DLL的方法:1. 生成dll过程:把生成的.DLL文件复制到测试工程DLLTest目录下。这里假设该.DLL文件为add.dll,主要代码是:// .h中声明Extern “C” _declspec(dllexport)int add(int x, int y)// .cpp 中实现extern "C" int add(int x, int y){ return x + y;}2.使用1生成的dll:在DLLTest工程中添加DllTest.cpp文件.首先使用LoadLibrary("add.dll")加载ad 阅读全文
posted @ 2012-12-06 18:12 小金马 阅读(2125) 评论(0) 推荐(0) 编辑
摘要: “偷取者”(Trojan/Win32.BHO.anbp)威胁级别:★★该病毒为木马类,病毒运行后衍生病毒文件到系统目录下,并删除自身。修改注册表,添加启动项,以达到随机启动的目的。病毒的dll文件随IEXPLORER.EXE进程的启动而启动,进行劫持浏览器,键盘记录等相关病毒行为。主动连接网络,开启本地端口,下载相关病毒文件信息。该病毒通过恶意网站、其它病毒/木马下载传播,可以进行劫持浏览器,键盘记录,盗取用户敏感信息。“修改者木马”(Trojan/Win32.StartPage.aggp[Dropper]) 威胁级别:★★该病毒为木马类,病毒运行后遍历进程,查找杀软相关进程并关闭;删除桌面上 阅读全文
posted @ 2012-12-06 18:09 小金马 阅读(1752) 评论(0) 推荐(0) 编辑