Windows NT4堆栈和堆地址空间

Windows NT4堆栈和堆地址空间,windows,stack,heap,reverse-engineering,Windows,Stack,Heap,Reverse Engineering,我试图在WindowsNT4的堆栈和堆内存中搜索一个整数值。这个整数被另一个程序使用 问题是我不知道堆栈和堆的地址范围,有没有办法找到这个地址空间的范围 之前,我尝试使用PSAPI(一种windows api)的EnumProcessModules函数在代码空间中搜索这个整数值。从这个函数中,我得到包含程序模块的地址,然后我可以搜索这些地址来查找一些变量。这种技术适用于像“扫雷舰”这样的简单程序,但不知何故,它无法在更复杂的程序中找到任何有用的整数或变量 提前感谢任何可以帮助我的人。您计划如何定

我试图在WindowsNT4的堆栈和堆内存中搜索一个整数值。这个整数被另一个程序使用

问题是我不知道堆栈和堆的地址范围,有没有办法找到这个地址空间的范围

之前,我尝试使用PSAPI(一种windows api)的EnumProcessModules函数在代码空间中搜索这个整数值。从这个函数中,我得到包含程序模块的地址,然后我可以搜索这些地址来查找一些变量。这种技术适用于像“扫雷舰”这样的简单程序,但不知何故,它无法在更复杂的程序中找到任何有用的整数或变量


提前感谢任何可以帮助我的人。

您计划如何定位堆或堆栈?或者您只是简单地试图通过蛮力转储进程的整个内存,并搜索与任意4字节模式的匹配?这个问题把一个无法回答的问题堆积在无法回答的假设之上。为什么你认为某个特定的值必须存在于你认为它存在的表示形式中,在某个大型复杂运行程序的内存中(据你所知),该程序可能运行在Java或C++.net中,并且可能不容易被你反向工程?目前,我只能考虑通过地址0x00000000搜索该程序的基址,比如0x01000000。使用这种方法,将有很多匹配的4字节模式,可能不是我要寻找的整数。查看GUI,程序看起来像是用C或C++编写的,它是一个原始而复杂的程序,用来控制芯片制造机器。此外,我无法联系该机器的供应商,因为它已经是一个停产产品。如果我被困在你的位置上,我会调查可编写脚本的调试器,如
gdb
,以及反向工程和反编译工具。这是一个好主意。坦克斯沃伦