首页
社区
课程
招聘
[求助]菜鸟问题,函数名都可以被反编译出来吗?
发表于: 2014-1-24 17:38 8823

[求助]菜鸟问题,函数名都可以被反编译出来吗?

2014-1-24 17:38
8823
以前是用VC6开发,最近换为VC2008开发了一个DLL,神奇地发现,函数名和一些全局变量名都可以被OD反编译出来。这不是太危险了吗?别人一看就知道软件原理了。 是不是因为我是用VC2008开发所以才会有这个问题呢?如果用VC6开发也可以被反编译出函数名吗?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 233
活跃值: (10)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
2
函数名是调试符号。这个是可以设置的。一般Debug模式会有调试符号,Release就没有了。
不过我也拿不准了,最好自己查一下书或者看看其他朋友的回答
2014-1-24 17:43
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我是在Release下生成的。
用OD打开这个DLL后,里面有些这样的代码:
mov     edx, offset g_chProgramName
call    GetMyExeName
我的DLL里面的确有全局变量g_chProgramName和全局函数GetMyExeName
2014-1-24 17:55
0
雪    币: 28
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
那应该是有符号的原因
2014-1-24 18:21
0
雪    币: 233
活跃值: (10)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
5
你生成的DLL同目录下会有个pdb,od从这里面获得的符号。你需要确保的是符号没有嵌入到DLL里即可
2014-1-24 18:36
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我是将软件打包并安装好后再加载到OD中的,这个时候安装目录下并没有了你说的pdb文件。为什么还是可以看到函数名和变量名呢?该如何才可以确保这些名称不会被嵌入到DLL中?
2014-1-24 19:44
0
雪    币: 29253
活跃值: (7784)
能力值: ( LV15,RANK:3306 )
在线值:
发帖
回帖
粉丝
7
要么是od的UDD没删, 要么就是pdb还在原来的路径, 放到其他环境就不会显示了
2014-1-24 20:43
0
雪    币: 19
活跃值: (1086)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
UDD文件没有删除u
要么就是VS的release配置 设置了生成调试信息
2014-1-24 20:49
0
雪    币: 65
活跃值: (112)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
不考虑第三方文件比如pdb记录了符号的情况(因为这个情况实际没有实用意义),楼主问题的答案是:不可以,因为除了导入导出函数外,任何函数调用,都是不依赖文字的,那些文字都仅仅是给人看的,机器不需要
2014-1-24 21:52
0
雪    币: 42
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
删除pdb文件额 那里有你的符号。。。    release版本  除非是调用的API可以显示出名字来 其他你自己的函数是看不到函数名的哦
2014-1-26 21:57
0
雪    币: 148
活跃值: (59)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
1.有pdb
2.是导出函数/变量
2014-1-27 01:21
0
游客
登录 | 注册 方可回帖
返回
//