摘要: 背景描述: 今天要测试一份注入代码,拿以前写的创建窗口的DLL来做测试。 第一次注入时一切正常,窗口被成功创建并显示,但在第二次加载时窗口没有显示出来。 经过研究发现在第二次加载DLL时RegisterClass会调用失败,进而导致CreateWindow失败,自然就不会显示窗口了。 原因如下: M 阅读全文
posted @ 2016-03-04 17:25 ZChameleon 阅读(836) 评论(0) 推荐(0) 编辑
摘要: [前言] 在张银奎老师的《软件调试》一书中,详细地讲解了使用内存的分支记录机制——BTS机制(5.3),并且给出了示例工具CpuWhere及其源代码。但实际运行(VMware XP_SP3 单核)并没有体现应有的效果,无法读取到分支记录。查看了源代码并没有发现任何问题,与书中所讲一致。既然软件本身没 阅读全文
posted @ 2016-01-16 17:16 ZChameleon 阅读(1769) 评论(1) 推荐(1) 编辑
摘要: 书中作者使用 dt _PEB xxxxxx 命令来查看当前进程的PEB结构。实际操作后PEB结构显示的成员值:作为进程链表的LDR结构居然没有值,这显然是不正常的,地址也没有输错,问题到底出在哪里呢?书中提到PEB位于用户态空间,可能有多个进程共享同一个PEB,所以在查看之前须使用 .process... 阅读全文
posted @ 2016-01-14 07:43 ZChameleon 阅读(400) 评论(0) 推荐(0) 编辑
摘要: 依书上的例子,ReadFile()函数会调用ntdll!NtReadFile(),后者将服务号放到eax之中,然后调用SharedUserData!SystemCallStub(),由此函数执行sysenter指令来切入内核。但是实际操作查看反汇编却是这个样子:指令完全是错乱的,猜测此处应该是不是指... 阅读全文
posted @ 2016-01-14 07:15 ZChameleon 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2015-06-01 20:01 ZChameleon 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 开始学习【Win32汇编】,编译过程较为繁琐,做个记录。使用 MASM32 提供的 ml.exe 和 link.exe,以及 VS2013 中的 nmake.exe 和资源编辑器。ml.exe:ml [选项] 文件列表 [/link]link.exe:link [选项] 文件列表nmake.exe:... 阅读全文
posted @ 2015-05-31 02:44 ZChameleon 阅读(683) 评论(0) 推荐(0) 编辑
摘要: 使用 “辗转相除法” 计算2个数的最大公因数: 1 int GCD_2(int nNum1, int nNum2) 2 { 3 if (nNum1 > nNum2) 4 { 5 nNum1 = nNum1 ^ nNum2; 6 nNum2 = nNum... 阅读全文
posted @ 2015-02-24 13:14 ZChameleon 阅读(278) 评论(0) 推荐(0) 编辑