能力值:
( LV2,RANK:10 )
26 楼
虽然有点迟 但是已经购买 希望你们以后写出更好的书籍
支持一下 哈哈
能力值:
( LV2,RANK:10 )
27 楼
随书资料缺少17.3.4一节需要用到的ppt_parse.bt解析脚本
能力值:
( LV2,RANK:10 )
28 楼
P168图5.3.5 最下面一个flink没有箭头指向开头。
能力值:
( LV2,RANK:10 )
29 楼
勘误:
P171。L3“0x7ffdf020处存放着指向RtlEnterCriticalSection()”
结果又在L7说“我们不妨以0x7FFDF024的RtlEnterCriticalSection()"
后面的程序都是以0x7ffdf020为实验。
能力值:
( LV12,RANK:345 )
30 楼
第七章7.2.3arm指令部分
p217的SBC,SUB指令在后面的示例中误写为RSC R0,R1,R2指令
P219的MSR指令在示例中误写为MRS CPSR_cxsf,R3
能力值:
( LV6,RANK:85 )
31 楼
0day第二版的330页关于2003 sp2绕过DEP的注释有问题吧。应该和绕过xp sp3的差不多,多几个pop eax retn啥的,咋会有pop pop pop retn额。和前面说的不符合。。。再说,简单的用eax变相的执行push esp pop esi retn的话,关闭dep必须的eax=1条件也不一定成立了呀。
能力值:
( LV2,RANK:15 )
32 楼
问下这个勘误整理后会不会出第三版的书啊,各大商城都缺货了
能力值:
( LV2,RANK:10 )
33 楼
请教一下,为什么将ollyfindaddr.dll拷贝到plugin文件下时,再打开OD会报错?
能力值:
( LV13,RANK:1760 )
34 楼
你OD神马版本?
能力值:
( LV2,RANK:10 )
35 楼
1.0.10.0
能力值:
( LV2,RANK:10 )
36 楼
1.0.10.0
能力值:
( LV2,RANK:10 )
37 楼
P195
L1中的地址0x77EC044C与图6.1.16中的地址不相符?
能力值:
( LV2,RANK:10 )
38 楼
楼主,ftp的链接打不开了。
能力值:
( LV2,RANK:10 )
39 楼
第28章的畸形文件logo.gif没有
能力值:
(RANK:860 )
40 楼
lujuzhi
第28章的畸形文件logo.gif没有
什么漏洞?看我这里有没有?
另外可以在搜索引擎中找一下。
能力值:
( LV2,RANK:10 )
41 楼
请教一下,最近在学堆管理机制的时候才发现,p.162里面感觉0x00360688处才是Lookaside[0]呀,为什么书上的图Lookaside[0]是0x003606B8啊 我在网上搜的时候有人说0x00360688开始的0x30是快表头结构。但是调试过程中实际算了一下从0x00360688到Lookaside刚好也是128项,并没有多申请一个所谓的头结构 而且看源码也只给快表申请了128项,FrontEndHeap就是指向的Lookaside[0] 我去看了一下windows2003的源码,看的RtlFreeHeap的代码,发现了如下代码: if ((Lookaside != NULL) && RtlpIsFrontHeapUnlocked(Heap) && (!(BusyBlock->Flags & HEAP_ENTRY_VIRTUAL_ALLOC)) && ((FreeSize = BusyBlock->Size) < HEAP_MAXIMUM_FREELISTS)) { if (RtlpFreeToHeapLookaside( &Lookaside[FreeSize], BaseAddress)) { 发现Lookaside查找的索引是根据堆块里堆块的大小(以8字节为粒度)来决定的,也就是说当释放一个8字节大小的数据,它所在的堆块大小为16个字节(块头+数据),也就是两个单位 也就是释放到Lookaside[2]的位置,这样看就能说得通了 逆向分析了一下,windows2000的RtlFreeHeap函数里面也是这个逻辑: if ( (BusyBlock_Flags & 0xE0) == 0 ) { if ( *(_BYTE *)(HeapHandle + 1414) != 1 ) JUMPOUT(0x77FCC9BF); Lookaside = *(_DWORD *)(HeapHandle + 1408); if ( Lookaside ) { if ( !*(_WORD *)(HeapHandle + 1412) && (BusyBlock_Flags & 8) == 0 ) { BusyBlock_Size = *BusyBlock; FreeSize = BusyBlock_Size; if ( BusyBlock_Size < 0x80 ) { if ( (unsigned __int8)sub_77F829B4(Lookaside + 48 * BusyBlock_Size, BaseAddress) ) return 1; } } } }
能力值:
( LV2,RANK:10 )
42 楼
之前网上有很多说Lookaside表从Lookaside[1]开始,Lookaside[1]就链接的16个字节的堆块。后面发现网上传的很多图都是《Windows高级调试》里的。 最近读了《Practical Windows XP/2003 Heap Exploitation》,这上面也说的是Lookaside表从Lookaside[2]开始,Lookaside[0]和Lookaside[1]都不用。实际调试的情况也是这样
能力值:
( LV1,RANK:0 )
43 楼
修竹kirakira
之前网上有很多说Lookaside表从Lookaside[1]开始,Lookaside[1]就链接的16个字节的堆块。后面发现网上传的很多图都是《Windows高级调试》里的。
最近读了《Pract ...
lookaside一般都是从索引为2的地方开始吧,也就是一共16个字节(加上块头);比如你请求一个字节 加上块首,实际也就是9个字节 ,需要两个堆单位 也就是16字节;自然链到Lookaside[2]里,这部分 我觉得书中应该没什么问题把
能力值:
( LV2,RANK:10 )
44 楼
菜鸡雪
lookaside一般都是从索引为2的地方开始吧,也就是一共16个字节(加上块头);比如你请求一个字节 加上块首,实际也就是9个字节 ,需要两个堆单位 也就是16字节;自然链到Lookaside[2] ...
实际情况是:Lookaside[1]-8个字节(不用),Lookaside[2]-16个字节(从这里开始),但是《Windows高级调试》那本书上的图画的是Lookaside[1]是16个字节,所以我感觉书上这块有点问题 图在《Windows高级调试》中文版p.168,英文版p.262
网上好多博客是直接用的这个图,所以查的时候感觉有问题
能力值:
( LV2,RANK:10 )
45 楼
菜鸡雪
lookaside一般都是从索引为2的地方开始吧,也就是一共16个字节(加上块头);比如你请求一个字节 加上块首,实际也就是9个字节 ,需要两个堆单位 也就是16字节;自然链到Lookaside[2] ...
《0day安全:软件漏洞分析技术(第2版)》中p.162这一页描述了:“根据三个堆块的大小我们可以知道 8 字节的会被插入到Lookaside[1]中、16 字节的会被插入到 Lookaside[2]中、24 字节的会被插入到 Lokkaside[3]
中”
事实上,8 字节的会被插入到Lookaside[2]中、16 字节的会被插入到 Lookaside[3]中、24 字节的会被插入到 Lokkaside[4],因为书中这里的8字节指的是堆块的用户数据区域,相应的,图 5.2.17中的标注也有问题
能力值:
( LV1,RANK:0 )
46 楼
修竹kirakira
《0day安全:软件漏洞分析技术(第2版)》中p.162这一页描述了:“根据三个堆块的大小我们可以知道 8 字节的会被插入到Lookaside[1]中、16 字节的会被插入到 Lookaside[2] ...
请问 你这里说的“8 字节的会被插入到Lookaside[2]中、16 字节的会被插入到 Lookaside[3]中”,带没带块首
能力值:
( LV1,RANK:0 )
47 楼
假如你这里要是没有算堆块,应该是对的;但是得有堆块啊,你所说的8字节 加上堆块就是16字节了,放到lookaside[2]里没问题;所以是书中的16 字节的会被插入到 Lookaside[2]中,我觉得没啥问题吧
能力值:
( LV1,RANK:0 )
48 楼
修竹kirakira
实际情况是:Lookaside[1]-8个字节(不用),Lookaside[2]-16个字节(从这里开始),但是《Windows高级调试》那本书上的图画的是Lookaside[1]是16个字节,所以我 ...
本来就是啊 我之前回复的例子 不就是从您所说的“Lookaside[2]-16个字节(从这里开始)”开始的吗;
原回复内容:
lookaside一般都是从索引为2的地方开始吧,也就是一共16个字节(加上块头);比如你请求一个字节 加上块首,实际也就是9个字节 ,需要两个堆单位 也就是16字节;自然链到Lookaside[2]里,这部分 我觉得书中应该没什么问题把
能力值:
( LV2,RANK:10 )
49 楼
菜鸡雪
假如你这里要是没有算堆块,应该是对的;但是得有堆块啊,你所说的8字节 加上堆块就是16字节了,放到lookaside[2]里没问题;所以是书中的16 字节的会被插入到 Lookaside[2]中,我觉 ...
书上这一块写的是不带块首的8字节放到lokkaside[1]里面
,所以我说这里是错的
能力值:
( LV2,RANK:10 )
50 楼
菜鸡雪
本来就是啊 我之前回复的例子 不就是从您所说的“Lookaside[2]-16个字节(从这里开始)”开始的吗;
原回复内容:
lookaside一般都是从索引为2的地方开始吧,也就是一共16个 ...
您说的是对的,我是说的感觉书上这里这部分的图有问题,书上是直接画的Lookaside[1]链接16个字节的堆块(包括堆首),但实际上是Lookaside[1]不用,从Lookaside[2]开始链接16个字节的堆块(包括堆首)