注册 登录
编程论坛 ASP.NET技术论坛

.net中.dll文件能不能还原成.cs文件

qlx_123 发布于 2008-09-22 12:21, 4335 次点击
.net中.dll文件能不能还原成.cs文件
22 回复
#2
雪雨星风2008-09-22 12:44
可以查看里面的代码
#3
初学Delphi2008-09-22 13:24
不知道怎么搞,我一直也很想知道
#4
qlx_1232008-09-22 14:00
怎么查看代码?
#5
kevintang2008-09-22 16:32
反编译啊
#6
kevintang2008-09-22 16:36
不能发!要的话 留 油箱吧! 妈妈的!
#7
qlx_1232008-09-22 16:44
hbyxdwcyj0502@
#8
仰望星空2008-09-22 17:21
blooming1111@
#9
jalonlovesja2008-09-22 20:46
做为一个程序员连个代码都不会看啊!!!汗.......
#10
小瘪三的烦恼2008-09-22 21:08
人家刚接触编程。。。。。。跟我一样!
#11
青格儿2008-09-22 21:16
Reflector用它就可以查看了,反编译dll

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

[[it] 本帖最后由 青格儿 于 2008-9-22 21:17 编辑 [/it]]
#12
ruanjian21102008-09-22 23:28
Reflector 5.0(.net反编译工具),很好用的。。。网上有免费的,自己找一下吧。。
#13
qlx_1232008-09-23 08:53
刚接触这个,谢谢大家!
#14
kevintang2008-09-24 09:03
我用的也是Reflector !不过过期了!哈哈 我汗啊!
#15
青格儿2008-09-24 09:08
哦,过期了。那算了,我有这个了,是破解过的。呵呵
不过,还是谢谢你,kevintang
#16
徐强2008-09-24 10:38
反编译出来的代码能看懂么?事原始的么?
#17
铲铲2008-10-09 13:03
如果你要原始代码,那对不起,dll无法返回最最原始的代码。因为信息不足。

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

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

不知道你留意过没有,Reflector反编为高级语言以后,有些代码形式和你最初用高级语言书写的形式有所不同,比如,原来你所书写的for循环语句形式,可能被编译器编译后优化成了while do的循环语句。因为对于MSIL来说。两种在高级语言中表达的循环语句形式,在低级语言中其实是等价的。
现在明白了吧?
你可以自己结合自己的经验反编译工程,基本上可以得到运行、外观、理论正确的代码,但不能证明你所得到的和源代码相同。
#18
kevintang2008-10-09 13:24
铲铲 我太爱你了!
   你小子很牛比的啊!
    猜猜 我是谁?
#19
寂寞仙人掌2008-10-09 13:29
只要程序作者把那些变量名和自定义函数名都批量改成 b1,b2,b3,f1,f2,f3之类的,就算不编译也够看懂的了

以前我就用过一个ASP程序,自定义函数和变量全是A1,B2之类的,有读懂他的代码的时间不如自己去写了
#20
铲铲2008-10-09 15:26
b1,b2,b3,f1,f2,f3这一类变量命名一般来说并非程序员本人所命名的。

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

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

“混淆”这个概念主要还是针对人来说的,人的大脑思维活动和计算机不相同,人们无法记住大量无意义的字符,特别是在源代码交错复杂的情况下,因此混淆增加了人们读懂程序的难度,但对于计算机而言没有多少用处,他们仍然能够正确运行。
#21
寂寞仙人掌2008-10-09 15:42
是啊,混淆的目的就是不让别人剽窃他的代码
#22
linsion8812262008-10-09 18:20
zhiyun_1226@
#23
smoon2008-10-09 21:15
gzf0306@
1