- 博客(7)
- 收藏
- 关注
转载 在DLL中创建窗口时一个值得注意的地方 — UnregisterClass
背景描述: 今天要测试一份注入代码,拿以前写的创建窗口的DLL来做测试。 第一次注入时一切正常,窗口被成功创建并显示,但在第二次加载时窗口没有显示出来。 经过研究发现在第二次加载DLL时RegisterClass会调用失败,进而导致CreateWindow失败,自然就不会显示窗口了。 原因如下: MSDN中对RegisterClass的描述有这样两句话: All win...
2016-03-04 17:25:00
559
转载 基于BranchTraceStore机制的CPU执行分支追踪工具 —— CpuWhere [修正版 仅驱动]
[前言] 在张银奎老师的《软件调试》一书中,详细地讲解了使用内存的分支记录机制——BTS机制(5.3),并且给出了示例工具CpuWhere及其源代码。但实际运行(VMware XP_SP3 单核)并没有体现应有的效果,无法读取到分支记录。查看了源代码并没有发现任何问题,与书中所讲一致。既然软件本身没有问题,那会不会是在虚拟机中运行的问题呢? 翻出了闲置多年的老机器,奔腾Dual+XP...
2016-01-16 17:16:00
399
转载 8.2.6 PEB —— PEB结构值不正确的问题
书中作者使用 dt _PEB xxxxxx 命令来查看当前进程的PEB结构。 实际操作后PEB结构显示的成员值: 作为进程链表的LDR结构居然没有值,这显然是不正常的,地址也没有输错,问题到底出在哪里呢? 书中提到PEB位于用户态空间,可能有多个进程共享同一个PEB,所以在查看之前须使用 .process 命令来设置当前隐含进程。 尝试后问题依然没有解决,查看WinDBG的帮...
2016-01-14 07:43:00
182
转载 8.3.3 快速系统调用 —— XP SP3上SystemCallStub的奇怪问题
依书上的例子,ReadFile()函数会调用ntdll!NtReadFile(),后者将服务号放到eax之中,然后调用SharedUserData!SystemCallStub(),由此函数执行sysenter指令来切入内核。 但是实际操作查看反汇编却是这个样子: 指令完全是错乱的,猜测此处应该是不是指令,回看一下ntdll!NtReadFile()处的调用代码: 发现是将...
2016-01-14 07:15:00
161
转载 【Win32汇编】编译环境配置
开始学习【Win32汇编】,编译过程较为繁琐,做个记录。 使用 MASM32 提供的 ml.exe 和 link.exe,以及 VS2013 中的 nmake.exe 和资源编辑器。 ml.exe: ml [选项] 文件列表 [/link] link.exe: link [选项] 文件列表 nmake.exe: nmake [选项] ...
2015-05-31 02:44:00
180
转载 求N个数的最大公约数
使用 “辗转相除法” 计算2个数的最大公因数: 1 int GCD_2(int nNum1, int nNum2) 2 { 3 if (nNum1 > nNum2) 4 { 5 nNum1 = nNum1 ^ nNum2; 6 nNum2 = nNum1 ^ nNum2; 7 nNum1...
2015-02-24 13:14:00
210
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人