| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4328 人关注过本帖
标题:.net中.dll文件能不能还原成.cs文件
只看楼主 加入收藏
青格儿
Rank: 4
等 级:贵宾
威 望:11
帖 子:698
专家分:20
注 册:2007-7-31
收藏
得分:0 
Reflector用它就可以查看了,反编译dll

6楼的朋友用的什么?呵呵,也发我份,邮箱:185548111@

[[it] 本帖最后由 青格儿 于 2008-9-22 21:17 编辑 [/it]]
2008-09-22 21:16
ruanjian2110
Rank: 3Rank: 3
来 自:武汉
等 级:论坛游民
威 望:7
帖 子:486
专家分:50
注 册:2008-5-25
收藏
得分:0 
Reflector 5.0(.net反编译工具),很好用的。。。网上有免费的,自己找一下吧。。

武汉信控科技有限公司:http://www. 超越技术,本身就是一个美好技术。。。。。。
2008-09-22 23:28
qlx_123
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-11-2
收藏
得分:0 
刚接触这个,谢谢大家!

2008-09-23 08:53
kevintang
Rank: 4
等 级:业余侠客
威 望:9
帖 子:799
专家分:236
注 册:2008-2-14
收藏
得分:0 
我用的也是Reflector !不过过期了!哈哈 我汗啊!

编程少年基地——少年编程者的练兵场
http://bcsn.    招聘版主中

2008-09-24 09:03
青格儿
Rank: 4
等 级:贵宾
威 望:11
帖 子:698
专家分:20
注 册:2007-7-31
收藏
得分:0 
哦,过期了。那算了,我有这个了,是破解过的。呵呵
不过,还是谢谢你,kevintang
2008-09-24 09:08
徐强
Rank: 2
等 级:新手上路
威 望:3
帖 子:72
专家分:0
注 册:2007-3-30
收藏
得分:0 
反编译出来的代码能看懂么?事原始的么?
2008-09-24 10:38
铲铲
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:506
专家分:0
注 册:2006-5-2
收藏
得分:0 
如果你要原始代码,那对不起,dll无法返回最最原始的代码。因为信息不足。

所谓编译,从信息观点来看,就是提出冗余信息,提高执行效率。
所以编译的时候,注释部分就去掉了,你永远也不可能找回代码原作者对代码添加的注释。

但Reflector可以支持C# B 和MSIL形式的查看。既然可以查看,当然也就可以复制,你大可以自己复制这些代码来重建工程,只不过工作量会很大,也可以借助自动化的反向工程软件,不过我没有找到。

不知道你留意过没有,Reflector反编为高级语言以后,有些代码形式和你最初用高级语言书写的形式有所不同,比如,原来你所书写的for循环语句形式,可能被编译器编译后优化成了while do的循环语句。因为对于MSIL来说。两种在高级语言中表达的循环语句形式,在低级语言中其实是等价的。
现在明白了吧?
你可以自己结合自己的经验反编译工程,基本上可以得到运行、外观、理论正确的代码,但不能证明你所得到的和源代码相同。

铲铲是也
2008-10-09 13:03
kevintang
Rank: 4
等 级:业余侠客
威 望:9
帖 子:799
专家分:236
注 册:2008-2-14
收藏
得分:0 
铲铲 我太爱你了!
   你小子很牛比的啊!
    猜猜 我是谁?

编程少年基地——少年编程者的练兵场
http://bcsn.    招聘版主中

2008-10-09 13:24
寂寞仙人掌
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2008-10-9
收藏
得分:0 
只要程序作者把那些变量名和自定义函数名都批量改成 b1,b2,b3,f1,f2,f3之类的,就算不编译也够看懂的了

以前我就用过一个ASP程序,自定义函数和变量全是A1,B2之类的,有读懂他的代码的时间不如自己去写了
2008-10-09 13:29
铲铲
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:506
专家分:0
注 册:2006-5-2
收藏
得分:0 
b1,b2,b3,f1,f2,f3这一类变量命名一般来说并非程序员本人所命名的。

如果是程序员,采用这种类型命名,倒头来恐怕连他自己都不知道这些变量的含义了。

这类命名通常是在成品完成以后,用“混淆软件”把它们进行了混淆导致的。
现在.net的程序集也有DotFuscator这个工具可以用来做混淆。安装VS会自动安装该工具的试用版本。

“混淆”这个概念主要还是针对人来说的,人的大脑思维活动和计算机不相同,人们无法记住大量无意义的字符,特别是在源代码交错复杂的情况下,因此混淆增加了人们读懂程序的难度,但对于计算机而言没有多少用处,他们仍然能够正确运行。

铲铲是也
2008-10-09 15:26
快速回复:.net中.dll文件能不能还原成.cs文件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040628 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved