混淆源码
‘壹’ 我这里有一个C#的代码混淆器的源码,但是看不懂是怎么实现的,程序的算法是什么也不知道怎么找,求帮助
能力有限,只能说说我看到的东西。
代码混淆的触发是在函数btnGenerate_Click里面
//这里声明了一个混淆器
Obfuscatorobfuscator=newObfuscator(txtBuildPath.Text,
chkObfuscateTypes.Checked,
chkObfuscateMethods.Checked,
chkObfuscateNamespaces.Checked,
宏蚂chkObfuscateProperties.Checked,
chkObfuscateFields.Checked);
//这里把窗口的数据写入混淆器
foreach(TreeNodenodeintvAssemblies.Nodes[0].Nodes)
{
obfuscator.AddAssembly(node.Text,node.Checked);
//Exclusions
foreach困绝贺(TreeNodetypeNodeinnode.Nodes)
if(!typeNode.Checked)
obfuscator.ExcludeType(((Type)typeNode.Tag).FullName);
}
//这一句开始汪派执行混淆算法,并保存
obfuscator.StartObfuscation();
而具体的混淆算法在文件Obfuscation2Obfuscator.cs中。
详细在函数AsyncStartObfuscation中。
publicvoidStartObfuscation()
{
Threadthread=newThread(newThreadStart(AsyncStartObfuscation));
thread.Start();
}
(){...}
在这个函数里面,执行ObfuscateType、ObfuscateNamespace、ObfuscateResource等方法。而在ObfuscateType里面又分别执行ObfuscateMethod、ObfuscateProperty、ObfuscateField等方法。
具体算法怎么实现的,详细看看上面这些方法里面的代码吧。
‘贰’ Android源码进行了混淆,怎么通过反编译查看
android代码混淆是指安卓开发者或者组织为了防止自己的产品敏感信息或者技术机密被人破解,而在生成apk文件的时候,通过设置一些替换规则,使java文件中指定的代码类的名字或者成员名字变为没有任何意义的字母,然后编译成class文件的过程。 已经混淆过的android代码反编译出来的都是一些没有任何意义的名字,是很难读懂的。没有好的办法。
‘叁’ android源码被混淆了怎么还原
android源码被混淆了还原方法为:
1、得到 classes.dex文件;直接用机器上的解压软件 打开 .apk 文件,解压出 classes.dex 文件。
2、还原.jar文件;这一步需要用到一个工具 dex2jar (谷歌的代码库里有http://code.google.com/p/dex2jar/)下载完了,解压,然后把第一步的 产物(即那个classes.dex文件)放到 dex2jar的解压目录(解压目录里 有 dex2jar.bat 文件,检查一下,没有的话说明目录不对)。
3、查看.jar文件;这一步就是传统的 反编译 了,需要工具辅助,这里用到的工具是jd-gui(http://java.decompiler.free.fr/?q=jdgui)下载系统对应的版本,解压,(xp系统)会看到一个 .exe文件,没错就是 单文件绿色版,双击,选择 第二步 生成的 .jar,即可。
‘肆’ 谁给推荐个c++代码混淆工具
1、Stunnix CXX-Obfus
Stunnix CXX-Obfus 是 C 和 C++ 源码的混淆器,可变成非常难于读懂、重用以及编辑的代码。提供多个选项用于控制代码混淆处理,完全支持所有的语法构造,支持 C 和 C++ 源码混合的项目。
2、JsCompressor
JsCompressor,主要用来压缩、混淆JS(Javascript)与CSS,基于YUI Compressor,目的是方便不熟悉Java或者不喜欢命令行方式进行压缩的Web开发者使用。