首页
社区
课程
招聘
[求助]在这篇火影大侠的文章中,小弟有写代码难以想明白!请各位帮忙!!!
发表于: 2008-11-16 20:16 3512

[求助]在这篇火影大侠的文章中,小弟有写代码难以想明白!请各位帮忙!!!

2008-11-16 20:16
3512
http://bbs.pediy.com/showthread.php?t=63179&highlight=start+a+process
在这篇火影大侠的文章中,小弟有写代码难以想明白!请各位帮忙!!!
pListHead=pSystemProcess+0x88;
    //得到下一个EPROCESS结构的ActiveProcessLinks偏移地址
    pNextEntry=*(ULONG*)pListHead;//?????就是这里,为什么=*(ULONG*)pListHead是下一个EPROCESS结构的ActiveProcessLinks偏移地址呢??????请讲讲!!!谢谢!!
问题2:在eprocess的结构中有个叫peb的结构,在peb中有个叫_RTL_USER_PROCESS_PARAMETERS的结构,请问:

我先用Psgetcurrentprocess获取eprocess,然后加上peboffest,得到peb,这里又用到相似的代码,
ULONG dwaddress=(ULONG)psgetcurrentprocess();

dwaddress+=peboffest;
现在我已经得到peb了,那我如何获得_RTL_USER_PROCESS_PARAMETERS呢??
有一种解决方案是dwaddress=*(ULONG*)dwaddress;

dwaddress+=processparamoffset;

dwaddress=*(ULONG*)dwaddress;//?????这里和上面的很相似,但是能不能为我讲讲他们的作用??和区别????

可是我想问可不可以在
ULONG dwaddress=(ULONG)psgetcurrentprocess();

dwaddress+=peboffest;以后,强制将dwaddress转化成_PEB结构呢???即
PEB peb=(PEB)dwaddress;

谢谢看雪的大侠们帮忙解决!!!!!!!

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
2
1. 链表 .Flink
2. 取+0x000处的内容,才是你要的结构体.
2008-11-16 20:26
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
ULONG dwaddress=(ULONG)psgetcurrentprocess();
dwaddress+=peboffest;
这时dwaddress是指向peb地址的指针
dwaddress=*(ULONG*)dwaddress后
dwaddress才是peb地址
2008-11-16 21:24
0
游客
登录 | 注册 方可回帖
返回
//