能力值:
( LV2,RANK:10 )
|
-
-
2 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
如果知道该函数所在DLL的加载基地址。
那么可以看看以下一种通用但是未必高效的办法
那么汇编代码方式实现如下描述:
把该加载基地址看做PE文件的基地址,经过一系列PE文件结构指针的运算,找到输出表。
用该DLL所有函数名字的指针依次做参数,加上该DLL的加载基地址,通过调用GetProcAddress函数得到 所有函数依次的地址。
用这个地址与我们已知的那一个函数地址比较,相等的话,把参数二(这是个指针)取出。
通过指针可以找到该函数名字的字符串,就达到了目的。
楼主如果能比较熟练写出汇编代码并有一定的PE结构知识,那么可以自己写。如果感觉能力不足,可以搜索下相关代码,论坛里这样的汇编代码我记得是有几个的。
PS:楼上贴的很快啊。
|
能力值:
( LV9,RANK:850 )
|
-
-
4 楼
symgetsymfromaddr
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
反编译后的程序,比如在IDA中,一般函数名称都用sub_004012A4之类的名称来表示,后面的004012A4就是函数在内存中的虚拟地址。
无法知道之前比如用C语言写的程序时的函数名称
函数名称只是提供一种地址映射机制,从而找到一段代码的地址来执行它,和具体起什么名字没有关系
当然也可以通过分析函数的作用,自己把sub_00401234换成有实际意义的名称,便于分析。
如果是系统ring0级的函数,相应的DLL动态链接库中有函数名称和地址的映射关系。
只是个人理解。
|
|
|