问题摘要
我们公司与已停产的计划合作
我们显然有.exe
和.pdb
(可能它不包含结构)。
exe
是已编译的VC++
当软件崩溃时,它将内存转储到.dmp
,我可以通过Visual Studio打开,但由于我们不拥有源代码 - 我可以提取的信息非常少。 />
我们可以看到堆栈和异常是什么(内存违规)但我们需要找出传递给函数的参数是什么,以便了解导致崩溃的原因。
参数是指向保存有价值信息的结构的指针。
图片
以下是我可以通过Visual Studio 2017(企业版)查看的内容 - 注意:没有可用的托管内存调试。
反编译
所有都是通过ida pro
并按堆栈排序:
(0)StructItem::deletePendingItem(void)
(1)StructItem::PendFreeItem_(struct StructItem *a1, const char *a2, int a3)
(2)onTakeItem(struct StructPlayer *a1, struct TS_CS_TAKE_ITEM *a2)
深入了解
A rar with the exe
and pdb
,我担心我无法在此处发布内存转储,但请随时直接与我联系。
我正在寻找什么
有两种我感兴趣的结构:
StructPlayer
和StructItem
都可以为我提供一个指向数据库索引的整数
StructItem
的字符串可能存储在数据库中,只有对其索引的引用。
我的知识和技能
老实说,我几乎不知道集会 - 我对如何以及如何有一个大致的了解
如果答案可以指向逆向工程初学者 - 那将是非常棒的。
问题
exe
和pdb
- 我如何提取
来自被调用函数的结构数据(显示在堆栈中)
直接来自转储。pdb
和exe