有着微软人性化的开发工具VISUAL STUDIO和MSDN详尽的帮助,.NET 的开发效率的确高. 但是由于.NET同JAVA一样都采用中间语言.虚拟机/SDK等诸多特质,而且高等语言的类库编码规范,MSIL微软中间语言可读性很高,所以代码很容易就能被反编译,或许这是一种“另类的开源”. 到目前为止.NET开发的桌面软件或者说共享软件真的很少,大多都是一些管理系统.ERP.等一些数据库软件,这些软件一般结构复杂,采用了架构或者平台等一些机制,而且一个功能都可以写N多个类,即使被反编译了别人也要…
动机 Python进行商业开发时, 需要有一定的安全意识, 为了不被轻易的逆向. 混淆和加密就有所必要了. 混淆 为了增加代码阅读的难度, 源代码的混淆非常必要, 一个在线的Python代码混淆网站. http://pyob.oxyry.com/ 同时需要注意的是, 这个混淆其实还是被很多人怀疑的, 因为即使混淆了, 也没有改变代码的结构. 这种方法只能”防君子,不防小人“ 所以, 必要的话, 在编程的时候, 可以故意做点提高逆向难度的事情: 结构稍微改变, 合并几个类到同一个文件. 面向对象的…
Python进行商业开发时, 需要有一定的安全意识, 为了不被轻易的逆向. 混淆和加密就有所必要了. 为了增加代码阅读的难度, 源代码的混淆非常必要, 一个在线的Python代码混淆网站. http://pyob.oxyry.com/PS:也有很多人在学习Python的过程中,往往因为遇问题解决不了或者没好的教程从而导致自己放弃,为此我整理啦从基础的python脚本到web开发.爬虫.django.数据挖掘等[PDF等]需要的可以进Python全栈开发交流.裙 :一久武其而而流一思(数字的谐音)…
第一步:代码混淆(注意引入的第三方jar) 在新版本的ADT创建项目时,混码的文件不再是proguard.cfg,而是project.properties和proguard-project.txt. 新建一个项目的时候,会自动生成project.properties和proguard-project.txt文件,无需自己新建,如果你的项目无法自动生成,那么你就要检查一下你的ADT版本了 如果需要对项目进行全局混码,只需要进行一步操作: 将project.properties的中 “#progua…
我的项目中某一部分信息比较敏感,但是.Net程序反编译之后连注释都看得到.需要把exe保护起来,如:代码混淆之后再加壳. Bing到一款.Net混淆工具  ILProtector   作为资深工具党,先"拿来主义"体验体验.本篇主要介绍工具使用 1.加密前的exe,反编译之后什么都有 2.用ILProtector加密,参考官网介绍 http://www.vgrsoft.net/Products/ILProtector 原理是把.Net的中间语言MSIL代码 转换成特殊的代码,只有他自己…
C#的代码辛苦写出来之后,一个反射工具,就可以完全显露出来. 当然,在做项目时,这个功能还不错.因为我就曾在一个项目上使用C#,没有进行任何混淆.结果在项目二年多之后,需要做一些调整,自己保存的源代码丢失了.当时也吓了一跳,可是想到反射工具,赶快拿出来用一下.虽然在反射出来会出现一些错误,但毕竟大部分代码也都弄出来了. 这是在项目上,还有好处的,可是,试想一个产品,被别人给反射了,会是怎么样的一个情况,不说他去照搬功能,就是注册.加密那部分都会被轻易拿到.这可不是什么一个好主意. 于是,必须要使…
混淆 为了增加代码阅读的难度, 源代码的混淆非常必要, 一个在线的Python代码混淆网站. 如果你觉得有用, 可以购买离线版本.同时需要注意的是, 这个混淆其实还是被很多人怀疑的, 因为即使混淆了, 也没有改变代码的结构. 所以, 必要的话, 在编程的时候, 可以故意做点提高逆向难度的事情: 结构稍微改变, 合并几个类到同一个文件. 面向对象的结构中, 偶尔穿插一些无伤大雅的范式编程风格. 加密 最基本的方法是发布pyc文件, 也就是将所有的.py源文件转换成pyc对外发布. 详情可以参考一个…
最近看到有些论坛在讨论js压缩.混淆和加密的问题,特意找了些资料看了下,现在总结一下: 1.关于三者的定义与区别 压缩:删除 Javascript 代码中所有注释.跳格符号.换行符号及无用的空格,从而压缩 JS 文件大小,优化页面加载速度. 混淆:经过编码将变量和函数原命名改为毫无意义的命名(如function(a,b,c,e,g)等),以防止他人窥视和窃取 Javascript 源代码,也有一定压缩效果. 加密:一般用eval方法加密,效果与混淆相似,也做到了压缩的效果. 从定义中可以看出,压…
VirboxProtector Standalone 加壳工具可对代码加密的技术有:代码混淆.代码虚拟化.代码加密. 代码混淆:利用花指令和代码非等价变形等技术,将程序的代码,转换成一种功能上等价,但是难于阅读和理解的代码,可充分干扰静态分析. 虚拟化:将指令编译为虚拟代码,放在指定虚拟机中运行,目前对指令有一定的格式要求,有的函数可能不能被保护. 代码加密:将代码块作为数据,用许可加密函数存储,程序执行到该函数时验证许可并解密,内存中不会暴露完整的代码块,目前有的函数不可添加到保护中.   V…
0x00  前言 静态反汇编之王,毫无疑问就是Ida pro,大大降低了反汇编工作的门槛,尤其是出色的“F5插件”Hex-Rays可以将汇编代码还原成类似于C语言的伪代码,大大提高了可读性.但个人觉得“F5插件”只能作为一项辅助手段,在结合动态调试和静态分析之后,了解了整个函数的流程再利用F5看“C语言”代码才是最佳的手段.而这篇文章就是学习如何手写”花指令“,来干扰ida的静态分析和”F5插件“. 0x01 反汇编引擎 反汇编引擎就是将二进制程序翻译成了汇编的工具.主流的反汇编算法主要是两种:…
参考: 博客园:js压缩.混淆和加密 知乎:前端如何给 JavaScript 加密(不是混淆)?  (阿里聚安全有回答问题) 站长工具  (在线JS压缩加密工具) Obfuscator (在家JS压缩加密工具,也有win下的客户端下载) uglifyjs   (压缩混淆工具 ) 压缩 删除 Javascript 代码中所有注释.跳格符号.换行符号及无用的空格,从而压缩 JS 文件大小,优化页面加载速度. 混淆 经过编码将变量和函数原命名改为毫无意义的命名(如function(a,b,c,e,g)…
.NET开发的工具,可以用ILSpy等很轻松的反编译查看源码,为了保护自己写的软件,一般会对软件进行加密,不仅内部关键数据通过加密,软件开发完毕后,对软件也进行加密,防止别人很轻松的反编译和查看到比较重要的数据,我试了下Reactor混淆和加密后的dll和exe,用它很简单的混淆和加密文件后,它们不会被很轻易的破解和查看源码了. 比如dll和exe加密和混淆配置如下: 保存后的dll和exe用ILSpy查看如下 dll文件的方法还可以看到,但方法内部已经看不到具体代码了,exe文件直接不能反编译…
最近在整理单位购买的源码时,发现源码里好多文件都混淆加密了.虽然不解密也不影响使用,但是心里总觉得有些别扭,便试着将加密的文件解密. 首先,百度了一下,看网上是否有现成的混淆类解密工具,搜到了一个http://www.zhaoyuanma.com/.尝试了一下,这个还真是好用,免费的,解密速度挺快.但是当解到一个比较大的文件时,发现文件上传不上去了,网站提示:文件无法上传.开始以为是不是解密次数多了,网站限制了.隔了一天试了一下,还是不行,后来打开了文件一下打算仔细的看看,觉得文件打开的比较迟钝…
仅做记录之用. java代码可以反编译,因此有时候要保护自己的知识产权还真得费点心思,一般来说有三个思路: 1.将class文件加密,这个是最安全的,但也费事儿,因为要重写classloader来解密class文件: 2.使用花指令,使得class文件不能反编译(利用反编译工具漏洞):安全性一般,还是有花指令破解器: 3.代码混淆,提高代码阅读成本:简单易操作,一般采用这种或者与其它方式结合: 我们项目中用到的即为代码混淆工具ProGuard,相关文章参考: http://blog.csdn.n…
.net代码混淆 .NET Reactor 研究 为什么要混淆? .net比较适合快速开发桌面型应用,但缺点是发布出来的文件是可以反编译的,有时候为了客户的安全,我们的代码或者我们的逻辑不想让别人知道,不想让别人绕过我们的流程,破坏或者非法得到一些数据,所以必须进行代码混淆,或者是代码加密,让别人看不出来代码是怎么写的. .net源码查看工具.NET Reflector ,界面如下图,大家发现是可以看到源码的. 怎么混淆? 之前使用过Dotfuscator进行混淆,但是后来突然发现,并不能被混淆…
6个常用Java 源代码 保护工具(混淆.加密.底层) ProGuard Java源代码保护工具ProGuard的3.6与4.1版  下载地址:http://download.csdn.net/source/386505 (20080318_6)Java源代码保护工具ProGuard的3.6与4.1版[ProGuard.rar] 大小:912 KB (934,458 字节)解压后是后缀为jar的可执行java压缩文件对3.6版本实现了部分汉化.4.1版本是未改动原版. 以下转载: 5个常用Jav…
这几天无事,除了看书,然后就倒腾原来的代码.想起.NET的代码混淆工具软件,所以今天就讲讲这个.NET代码混淆工具. .NET代码混淆工具软件,以前有了解和找过,但是当时需求不大,所以找了下就搁置了.昨天找度娘了下,想找开源的.NET代码混淆工具,然后自己改代码,然后看看是否能够用密码加密的方式对自己的工具软件进行处理.但是,找的这个ConfuserEx的开源工具代码不全,无法进行修改,所以就又找了下度娘,这次搜到一个更好的工具软件NET Reactor,不开源,但是有破解版,很好用,下面做下介…
整了一天,感觉坑挺多. 1. 选择如图中的选项Android Studio进行签名打包: 2. 填写APP对应的信息:(最好用个文本记下来放在项目中同步给Team) - Key store path: 如果是新APP则创建,如果已经有了选择就行: - Key store password: ******* - Key alias(别名): 自定义 - 如果是新创建的文件需要选择时间,整个25年足够用了,公司信息填上就OK - 下一步后选择release就开始打包 3. Android Studi…
前言     受<APP研发录>启发,里面讲到一名Android程序员,在工作一段时间后,会感觉到迷茫,想进阶的话接下去是看Android系统源码呢,还是每天继续做应用,毕竟每天都是画UI和利用MobileAPI处理Json还是蛮无聊的,做着重复的事情,没有技术的上提升空间的.所以,根据里面提到的Android应用开发人员所需要精通的20个技术点,写篇文章进行总结,一方面是梳理下基础知识和巩固知识,另一方面也是弥补自我不足之处.     那么,今天就来讲讲ProGuard代码混淆的相关技术知识…
之前给公司的App添加代码混淆,在代码的混淆过程也遇到了不少的问题,再加上最近学习了一下Android Studio插件的开发,所以就开发一个代码混淆插件方便项目的代码混淆. 截图 第三方库列表清单 目前插件的后台已集成了如下图的第三方开源库的代码混淆以及基本的代码混淆,还在努力地添加中,也欢迎大家通过new issue提交列表中没有的第三方开源库混淆代码.(你认为微不足道的事情,也许可以帮到别人的大忙~) 使用 下载AndroidProGuard插件并安装重启.download 在菜单栏的Ed…
转载:http://www.jianshu.com/p/7436a1a32891 简介 作为Android开发者,如果你不想开源你的应用,那么在应用发布前,就需要对代码进行混淆处理,从而让我们代码即使被反编译,也难以阅读.混淆概念虽然容易,但很多初学者也只是网上搜一些成型的混淆规则粘贴进自己项目,并没有对混淆有个深入的理解.本篇文章的目的就是让一个初学者在看完后,能在不进行任何帮助的情况下,独立写出适合自己代码的混淆规则. 说在前面 这里我们直接用Android Studio来说明如何进行混淆,…
首先查看一下 “project.properties” 这个文件: # This file is automatically generated by Android Tools.# Do not modify this file -- YOUR CHANGES WILL BE ERASED!## This file must be checked in Version Control Systems.## To customize properties used by the Ant buil…
首先在:project.properties 文件下,启动代码混淆 proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 将这行注释取消. 修改proguard-project.txt 代码混淆文件. //1)注意忽视警告 -ignorewarnings -dontwarn //2)注意的是,使用到反射的类,需要keep -keepattributes Signature-keepa…
为了防止代码被反编译,因此需要加入混淆.混淆也可以通过第三方进行apk混淆,也可以用android中的proguard进行混淆. 混淆步骤: 1.配置混淆文件,名字可以随意,在这里使用proguard-android,格式为txt. -optimizationpasses 5 # 指定代码的压缩级别 -dontusemixedcaseclassnames # 是否使用大小写混合 -dontskipnonpubliclibraryclasses # 是否混淆第三方jar -dontpreverif…
什么是代码混淆 Java 是一种跨平台的.解释型语言,Java 源代码编译成中间”字节码”存储于 class 文件中.由于跨平台的需要,Java 字节码中包括了很多源代码信息,如变量名.方法名,并且通过这些名称来访问变量和方法,这些符号带有许多语义信息,很容易被反编译成 Java 源代码.为了防止这种现象,我们可以使用 Java 混淆器对 Java 字节码进行混淆. 混淆就是对发布出去的程序进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能,而混淆后的代码很难被反编译,即使反编译成功…
ProGuard简介 ProGuard是一个SourceForge上非常知名的开源项目.官网网址是:http://proguard.sourceforge.net/. Java的字节码一般是非常容易反编译的.为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理.ProGuard的主要作用就是混淆.当然它还能对字节码进行缩减体积.优化等,但那些对于我们来说都算是次要的功能. 引用ProGuard官方的一段话来介绍就是: ProGuard is a free Java cla…
最近在需要对所开发的项目进行了代码混淆,在android studio中开启代码混淆其实还是挺方便的,不过因为代码混淆产生的问题非常多,特别是对于一些涉及到反射的第三方库经常因为名称的变化导致无法使用. 下面介绍android studio中对android项目进行代码混淆的详细步骤: (1)代码混淆开启 想要开启代码混淆功能,只需要在相应的项目中将 build.gradle 的相应设置开启即可. android{ buildTypes { release { minifyEnabled tru…
介绍 大家可能都会碰到一些代码比较敏感的项目场景,这个时候代码被反编译看到就不好了,这个时候就需要代码混淆插件来对代码进行混淆了. 基于Maven的项目一般会去考虑使用proguard-maven-plugin,但是这个插件仅支持打Jar包不支持打War包. 于是我用空闲时间在proguard-maven-plugin的基础上修改了里面的一部分逻辑,可以在项目构建过的时候把代码混淆,支持打成jar包和war包. 现在贴出来给大家看看. 项目地址 https://github.com/loveth…
http://coolshell.info/blog/2015/03/Android-studio-prefrence.html 什么是Gradle Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的领域特定(DSL)语言.Android Studio中新建项目成功后自动下载Gradle. Gradle有几个基本组件: 1.整个项目的gradle配置文件build.gradle // Top-level…
前面文章<Proguard进行源代码混淆>讲解过怎么使用Proguard工具对Android的源代码进行混淆的方法(感兴趣的朋友可以访问:http://blog.csdn.net/p106786860/article/details/11974863),但是在实际工作中发现,通过上述方法对导出的Jar并没有进行混淆. 下面我们就介绍,如果对导出的Jar包进行代码混淆. 一.准备工作 首先我们要准备好:1.你已经导出的jar包(srcjar.jar)文件,2.ProguardGui工具 (sdk…
BS