- 博客(9)
- 资源 (14)
- 收藏
- 关注
原创 关于附加调试办法,成功利用取到进程启动参数
在需要调试的进程中把入口改成CC指令,然后就启动,这时候就会出现平时最常见的错误。。 点取消,此时进程就自动附加到我们的即时调试器了,这样就可以跟到GetCommandLine(),取得其返回值 就是启动参数。。
2009-02-18 01:23:00 515
原创 Hook IAT的时候解决缺点办法
笔记下,有空就验证下。 Hook IAT的时候有局限性局限性:1当程序运用一种叫late-demand binding技术,函数被调用时才定位地址,这样以来就不能在IAT中定位目标函数地址了.2当目标程序用动态加载(LoadLibrary)时,这种方法也将失效. 我想我可以一开始就HOOk一个程序一启动就绝对会调用的函数,然后在我的函数中调用我真正要Hook的函数不就可以解决局
2009-02-09 12:40:00 1133
原创 调试了下,挺有意思的2级指针(备忘)
void main(){ int **p; int a=5; *p=&a; printf("%d",**p); } 这是编译不过的,后来用VC调试了下,发现是这样的因为*p其实是p所指向的一个内存单元,而p却未指向任何地方,所以*p=&a这句是通不过的之前没深想,认为 初始好p后,p和*p的指针值一样,其实不然,
2009-02-07 00:22:00 470
原创 容易搞乱的sizeof和strlen
char str[]="123" char *p=str char *p2="123" sizeof(str)结果是4//算上/0sizeof(p) 结果是4,因为指针都是占4个字节 strlen(str)结果是3strlen(p2)和strlen(str)一样是3, 其实就是strlen算字符数个数,sizeof算字节数+1。另外s
2009-02-03 14:14:00 434
原创 今天运行个多线程测试时候,奇怪现象
以下是CSDN朋友解释=============这应该是标准输出缓存没有正确处理的缘故吧。要知道标准输出是共享资源,你使用他时必须进行并发控制。 假定第一个线程输出1 new thread....后,cout尝试把其缓存清空,但是在清空前的一霎那,如果恰好 线程2获得控制权,你说的现象就必然出现。也就是说,是否出现你说的现象,要看线程上下文何时切换,而这就是为什么你试多次才出现一次的原
2009-02-03 13:48:00 580
转载 学习SSDT笔记
内核中有两个系统服务描述符表一个是KeServiceDescriptorTable(由ntoskrnl.exe导出),一个是KeServieDescriptorTableShadow(没有导出)。 两者的区别是:KeServiceDescriptorTable仅有ntoskrnel一项,KeServieDescriptorTableShadow包含了ntos
2009-02-03 00:59:00 1052
原创 获取指定进程模块handle 然后FreeLibrary掉
转网上李马大哥的,GetExitCodeThread原来可以这么用,哈 1. // 使目标进程调用GetModuleHandle,获得DLL在目标进程中的句柄 2. DWORD dwHandle, dwID; 3. LPVOID pFunc = GetModuleHandleA; 4. HANDLE hThread = CreateRemo
2009-02-02 22:39:00 3118
转载 页目录和页表重合与分页地址转换
写得不错,转下,来自JIURL大牛的 页目录的地址为什么是C0300000,1个页目录加上1024个页表为什么只使用了1024*4K的地址空间 对于要映射整个4G地址空间,是需要1024个页表和1个页目录的,每个都是4KB大小,也就是1024*4KB+1*4KB=4MB+4KB。而实际中Win2k把每个进程的页目录和页表映射到了从 0xC0000000到0xC03
2009-02-01 01:29:00 2976 1
NTFS文件格式解析
2010-01-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人