能力值:
( LV3,RANK:30 )
|
-
-
2 楼
堆栈溢出了
|
能力值:
( LV3,RANK:30 )
|
-
-
3 楼
char tbyte[100*1024]={0}; 设置成全局变量 或者申请内存就行了
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
代码是 win32/64 最近几天改ddk
代码多了 不好改 上面只是问题例子 并不是闲得无聊 麻烦各位老大增加伐的方法 或者其他方法 谢谢
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
其实说直白点 我的库 至少需要80kb左右 不够 这问题我纠结2天了 测了好几种方法 没效果 哭
|
能力值:
( LV4,RANK:50 )
|
-
-
7 楼
这是因为内核栈空间只有12k,所以你直接用栈上的空间100 x 1028 / 8 = 12.5K,已经超过限制了. 要用这么大的空间,你的向系统申请,用
ExAllocatePool 以及其他相关的函数在堆上申请空间.用完了释放。和用户层new用法差不多。
最后于 2019-8-16 23:34
被haovcf编辑
,原因: 没说清楚,会有疑问
|
能力值:
( LV3,RANK:30 )
|
-
-
8 楼
char tbyte[100*1024]={0}; 设置成全局变量 或者申请内存就行了
|
能力值:
( LV3,RANK:30 )
|
-
-
9 楼
mjxke
求不溢出方法 怎么改 谢谢
char tbyte[100*1024]={0}; 设置成全局变量 或者申请内存就行了
|
能力值:
( LV5,RANK:73 )
|
-
-
10 楼
1、使用api动态申请堆内存。 2、不使用递归,除非在迫不得已的情况下。
最后于 2019-8-17 04:15
被Sprite雪碧编辑
,原因:
|
能力值:
( LV9,RANK:280 )
|
-
-
11 楼
递归可以用循环模拟,std::vector或者std::stack都行
|
能力值:
( LV4,RANK:50 )
|
-
-
12 楼
等下我生成个dump文件帮你看下
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
青丝梦
等下我生成个dump文件帮你看下
谢谢 上午我测了 main PsCreateSystemThread th1 char[128*1024] // 还是奔溃了 上面说的模拟伐 可是要改很多 很累的 大佬 求救
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
青丝梦
等下我生成个dump文件帮你看下
没别的要求 怎么弄出>=128kb伐 即可 这点要求WDK都不给我
|
能力值:
( LV9,RANK:280 )
|
-
-
15 楼
PMMSESSION_WIN10 Session = (PMMSESSION_WIN10)dynData.MmSession;
if (Session->ViewRoot)
{
PMMVIEW_WIN10 root = (PMMVIEW_WIN10)Session->ViewRoot;
std::stack<PMMVIEW_WIN10> stack;
while (root || stack.size())
{
while (root)
{
stack.push(root);
root = (PMMVIEW_WIN10)root->SectionNode.Left;
}
PMMVIEW_WIN10 temp = stack.top();
stack.pop();
PVOID BaseAddress = (PVOID)((ULONG_PTR)temp->SessionViewVa & (~3));
root = (PMMVIEW_WIN10)temp->SectionNode.Right;
}
}
循环版本和递归版本
PMMSESSION_WIN10 Session = (PMMSESSION_WIN10)dynData.MmSession;
if (Session->ViewRoot)
{
PMMVIEW_WIN10 root = (PMMVIEW_WIN10)Session->ViewRoot;
fuckView(root)
}
void fuckView(PMMVIEW_WIN10 node)
{
auto left = (PMMVIEW_WIN10)root->SectionNode.Left;
if(left)
fuckView(left);
PMMVIEW_WIN10 temp = stack.top();
stack.pop();
PVOID BaseAddress = (PVOID)((ULONG_PTR)node->SessionViewVa & (~3));
auto right = (PMMVIEW_WIN10)temp->SectionNode.Right;
if(right)
fuckView(right);
}
}
最后于 2019-8-18 15:51
被hzqst编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
hzqst
PMMSESSION_WIN10 Session = (PMMSESSION_WIN10)dynData.MmSession;
if&n ...
谢了
|
能力值:
( LV4,RANK:50 )
|
-
-
18 楼
mjxke
没别的要求 怎么弄出>=128kb伐 即可 这点要求WDK都不给我
为什么你非要把这么大东西放在栈空间里呢?
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
用户线程有两个栈:用户栈和内核栈 内核线程一定使用其内核栈 用户栈可以指定其大小,默认为1MB 内核栈大小固定,x86系统上为12KB,x64系统上为24KB, GUI线程可以使用大内核栈
|
|
|