首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASM:如何找到这个asm函数(通过offset)?

ASM:如何找到这个asm函数(通过offset)?
EN

Stack Overflow用户
提问于 2011-07-26 06:19:58
回答 1查看 621关注 0票数 1

在C++函数中,我有以下代码:

代码语言:javascript
复制
    #if defined(WIN64)
        const int offset   = 0xd1;
    #else
        const int offset   = 0x77;
    #endif

    unsigned char* p = &(((unsigned char*)pNetChannel)[offset+3]);

这样,我就可以通过调用pNetChannel的非公共函数从结构(pNetChannel(在其他dll中初始化))中检索一个值(这里:IpAddress)。偏移量是从反汇编的DLL收集的(不是我收集的)。我的问题是,如何找到地址为"offset+3“的函数(反汇编动态链接库中的asm函数)。我想在asm代码中找到返回Ip的函数!我可以在哪个地址找到它?

EN

回答 1

Stack Overflow用户

发布于 2011-07-26 13:45:59

首先,我在代码中看不到任何实际的函数,所以我假设它是一个来自一个函数的例外。要在汇编中跟踪它的地址,您需要一个反汇编程序和调试器,如ollydbg或windbg。然后,您要么需要跟踪对它的调用(直接或间接,取决于您的进程模型),要么查找使函数唯一的东西,在本例中是(offset + 3) * sizeof(unsigned char)的值,它将用于查找ip。当你找到这个函数时,你需要从调试器告诉你的地址中减去它所在的dll的基加载地址,以获得你的RVA (相对虚拟地址),然后RVA +基加载地址就会给你虚拟化的地址,这将为dll的重新定位正确地调整它

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6823072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档