反混淆后的.net文件编译

因为工作的需要,研究一下别人的软件。这篇文章主要是分享一下过程,其中没有什么技术性的东西,只是想告诉那些和我一样深深被反编译出来的代码,在编译过程中显示出来的错误数量惊呆的小伙伴们,这些错误或许没有你想象的那么厉害,当然,你必须要要有足够的基础去修改那些错误。

首先,打开reflector,发现代码被混淆过,看到那些乱七八糟的方法名称,你懂得。下载de4dot-3.0.3,反混淆后,将文件反编译成c#工程,本来想弄成mc++,但这种托管的c++和我最熟悉的vc6差距大着,悲剧,还是c#看着舒服。

用vs2010打开工程编译一下,好家伙600多个错误,文件差不多有2000多个。花了一天时间一一校订。首先将跟目标代码无关的部分注释掉,目标是自己关心的那部分。现在把遇到的几个主要错误总结一下。

一提示类与方法没有定义,主要是未添加命名空间,小部分在上下文直接没找到定义的类,这部分直接注释掉,不管它

二很多类的属性获取,如class.get_Type_Num();尽管类里面有定义,但是总是提示方法出错,有一些并非直接返回一个属性值,而是做了一些运算,我只能用笨的办法写一个函数代替它或者直接pass。

三部分结构体转换失败,运算符号重载

四一些using()引起的问题,去掉using就好了。

五还有一些出来的是0++,1++,这样的问题,直接把++去掉

六vs2010类型转换的要求挺高的,不知道工程里面哪里可以设置,很多都是int和uint之类不能转换的错误

七百度求助,能删就删

经过一番折腾,编译成功,但很快你会发现有一种然并卵的感觉。一运行遇到 “类型初始值设定项引发异常”的错误,好了,经过调试,定位到出错地点,问题得到解决,是静态成员初始化引起的问题。两个静态成员顺序反了,前者引用了还未初始化的后者。好了,打开,运行基本正确。

只想说,在进步的路上,最大的障碍或许就是自己

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-05 18:46:17

反混淆后的.net文件编译的相关文章

查看编译后的calss文件编译jdk版本

使用UtralEdit或者sublime text打开编译后的.class文件, 其中cafe babe为magic number(魔数),标识这个文件是java的class文件. 0033转换成10进制是51(3*16^1+3*16^0).而51则是jdk 1.7.(50是jdk1.6.49为jdk1.5) 而51就是jdk1.7的minor.major version. 延伸:: 下表既是minor.major version表

反混淆、反编译unity3d动画插件DFTweenLite得到源码

我为什么要得到这个源码,因为有洁癖! 对于Itween性能差,LeanTween 和 HOTween的 免费, 个人还是比较喜欢 Daikon Forge 出品的东西, 因为有我个人很欣赏的 DFGUI 产品.确实很好用!!! DFTweenLite 是免费的, DFTweenPro是收费的. 功能上基本上不差啥.  免费没有源代码, Dll 还进行了混淆. 没有办法,上网找解决办法. 还真有: de4dot主要用来反混淆 用法:dll文件直接拖到de4dot.exe会生成另外一个  文件名+c

RESTClient调试POST方法&Reflector+de4dot反混淆破解dll

RESTClient调试POST方法 RESTClient是火狐的一款WebAPI测试工具. 1.先看下我们要调试的接口 2.添加自定义请求头 Name:Content-type Value:application/x-www-form-urlencoded 3.设置请求体 对请求报文进行Base64解码,使用工具Notepad++ 解码后: 反编译工具Reflector+反混淆工具de4dot破解dll 1.下载de4dot,然后解压目录结构如下: 2.打开“CMD命令提示符”,再定位到 De

js混淆代码还原-js反混淆:利用js进行赋值实现

先贴一个混淆后的测试代码: eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(

反混淆、反编译unity3d动画插件DFTweenLite得到源代码

出处:http://blog.csdn.net/u010019717 author:孙广东      时间:2015.3.17   23:00 我为什么要得到这个源代码.由于有洁癖! 对于Itween性能差,LeanTween 和 HOTween的 免费. 个人还是比較喜欢 Daikon Forge 出品的东西. 由于有我个人非常赞赏的 DFGUI 产品.确实非常好用! ! . DFTweenLite 是免费的. DFTweenPro是收费的. 功能上基本上不差啥. 免费没有源代码, Dll 还

weblogic对JSP预编译、weblogic读取JSP编译后的class文件、ant中jspc预编译JSP

我们都知道在weblogic中JSP是每次第一次访问的时候才会编译,这就造成第一次访问某个JSP的时候性能下降,有时候我们也希望JSP被编译成class然后打包在jar中实现隐藏JSP的功能,下面介绍自己几天来的研究成果.在这里weblogic采用的是weblogic12c. 前提知道JSP编译之后存放的位置在:%base%\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_user\Struts\km2umq\jsp_s

linux 编译C语言代码后产生OBJ文件的方法

如果你不指定编译成什么文件,gcc默认一步到位,直接生成可执行文件你可以试试以下几个参数 -c 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件 例子用法: gcc -c hello.c 他将生成.o的obj文件 -S 只激活预处理和编译,就是指把文件编译成为汇编代码. 例子用法 gcc -S hello.c 他将生成.s的汇编代码,你可以用文本编辑器察看 -E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面. 例子用法: gcc -E hello.c > piano

unity代码反混淆

Unity3D研究院之在把代码混淆过的游戏返混淆回来(七十七) 雨松MOMO [Unity3D研究院之游戏开发] 围观8625次 31条评论 编辑日期:2014-08-01 字体:大 中 小 最近一直在找如何在MAC上混淆Android的DLL,至今没能找到合适的,有大神知道记得告诉我喔.今天群里有人说了一个混淆代码和返混淆代码的工具de4dot ,不查不知道一查吓一跳.这玩意可以把别人混淆过的代码反混淆回来. 这个工程是开源的 https://github.com/0xd4d/de4dot找一

Android 混淆后的代码调试

ProGuard的输出文件及用处 混淆之后,会给我们输出一些文件,在gradle方式下是在<project_dir>/build/proguard/目录下,ant是在<project_dir>/bin/proguard目录,eclipse构建在<project_dir>/proguard目录像.分别有以下文件:+ dump.txt 描述apk文件中所有类文件间的内部结构.+ mapping.txt 列出了原始的类,方法,和字段名与混淆后代码之间的映射.+ seeds.t