首页
社区
课程
招聘
[求助]动态库输出函数名是编号该如何让其恢复成有意义的名称?
发表于: 2008-5-30 19:00 7331

[求助]动态库输出函数名是编号该如何让其恢复成有意义的名称?

2008-5-30 19:00
7331
问三个问题:
1. 一个动态库,非mfc公共的,我用vc6带的depends工具查看,其输出的函数全部是编号,这种技术是如何实现的?是否有办法把其恢复成有意义的函数名?
2. 跟踪程序时遇到一个值, 是我所要的关键值,但每次调试它在内存中出现的位置都不一样,我每次只要靠搜索才能搜到它,这样导致跟踪时无法下内存断点监测它的改变,请问大家遇到这种情况是如何处理的?
3. 如何使在快速数据窗口查看指定地址的值?如果这个地址是在某个寄存器或者堆栈中,右键->数据窗口中跟踪可以很快定位到其位置,但如果不在寄存器或者堆栈时,是否有好的方法呢?

问题比较多,多谢大侠指点

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 76
活跃值: (45)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
2
你的动态库的名字? 可以帮你看看
2008-5-30 20:05
0
雪    币: 205
活跃值: (166)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
文件有点大,附件上载不了,请问该怎么传给你?
2008-5-31 08:55
0
雪    币: 76
活跃值: (45)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
4
是微软的 dll 吗?把文件名告诉我,
2008-5-31 12:19
0
雪    币: 277
活跃值: (106)
能力值: ( LV9,RANK:230 )
在线值:
发帖
回帖
粉丝
5
[QUOTE=;]...[/QUOTE]
第一个问题。。DLL的导出函数可以有两种方式,一种是函数名,一种是序号,如果只是序号的话需要在def文件中加关键词,我记得好像是NONAME,如果这样做了设置,貌似没啥办法帮他加个函数名哈,或者是我不知道的方法。。。
第二个问题。。你是在堆区还是栈区的?栈区的话对那个值的改变代码肯定在那函数里面,结合上下代码看看了,堆区偶也没啥方法,new出来的谁知道跑哪个地方去了。。。
第三个问题。。用Ctrl+G,输入地址,就可以到你想去的地址了
2008-5-31 12:35
0
雪    币: 205
活跃值: (166)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
回SyserDebug兄:
dll不是微软的,是一个共享软件的,另外,我也同时看了angelqkm大侠的解释,我感觉是不是他说的那样?在编译时对def文件做了手脚?但如果这样的话,动态库的调用方岂不是要自己建立个对应库?否则他自己都要面对那些无意义的数字了

angelqkm兄:
谢谢你,谢谢你,你的回答对我很有帮助。感觉od很强大,但我对它的了解太少了,还不怎么会用,很惭愧。
2008-5-31 12:52
0
雪    币: 215
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
1.为了防止逆向,作者什么手段想不出来?我就曾经干过dll导出函数全部是无意义的序数的事情,自己.h文件留一份调用说明就可以了.以前没有Delphi的sig,不是自己一个一个笨乎乎的逆向了一个月的库函数?
2.
    a.貌似VS2003以后的编译器都有个开关,随机加载基址什么的好像.看图片.
    b.这个变量就像楼上有人说的,是程序临时构建的变量还是一个重定位的全局变量,前者看是堆上分配的(new)还是在函数的栈上创建的?后者看基址和重定位表.

3.不多说了.
上传的附件:
2008-5-31 16:29
0
雪    币: 1946
活跃值: (243)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
8
UnDecorateSymbolName又不是什么好东西
2008-5-31 16:38
0
雪    币: 215
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
兄弟,你的软件被人keygen啦,今天是不是在升级啊?
你是搞内核的,这次来点有难度的~~
2008-5-31 17:00
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
10
[QUOTE=;]...[/QUOTE]
syser要猥琐早猥琐了,不会等到今天
2008-5-31 18:13
0
雪    币: 215
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
记得3721刚开始也不是那么猥琐的.........打个不恰当的比方啊,我跟syser没同事过,只是见过他的工牌号而已.

另外,syser应该努力使这个调试器易用化,或者"平民化",在OD2.0迟迟没有推出的现在,syserdebug应该有很大的空间,如果操作和易用性迈进一大步,我想会有很多人支持你的劳动的,我首先买一个授权.

写外壳可以卖钱,为什么调试器不能卖钱?毕竟调试器是我们的工具啊.
内核调试毕竟太专业了点,如果作者能借此开发出一套平民化的内外兼修的工具,那真是逆向届的一大幸事.
2008-5-31 18:43
0
雪    币: 76
活跃值: (45)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
12
一个只用 序号导出 的 dll 的例子
关键是  def 文件

LIBRARY  
; For Win32 DLLs, only EXPORTs really required.

EXPORTS
??0Ctestdll@@QAE@XZ @ 2 NONAME
?fntestdll@@YAHXZ @ 3 NONAME
?ntestdll@@3HA @ 4 NONAME DATA
??4Ctestdll@@QAEAAV0@ABV0@@Z @ 1 NONAME
上传的附件:
2008-6-1 21:46
0
雪    币: 76
活跃值: (45)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
13
第3方的就没法搞了,没有PDB也没有 def 这个就没法搞了。只能自己分析代码了
2008-6-1 21:57
0
雪    币: 205
活跃值: (166)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
原来还可以这样!长见识了,看上边的几位讨论,您好像在开发调试器,能否给个demo版体验一下啊?多谢了
2008-6-2 08:31
0
游客
登录 | 注册 方可回帖
返回
//