防止 apk反编译 jocky-- java混淆代码 (转至:http://my.oschina.net/f839903061/blog/72554)

摘要:
可以通过修改jocky_build.xml中的javac段,为其添加encoding="UTF-8"就可以解决这个问题了。

1、下载jocky,解压后把整个文件夹复制到Eclipse的plugin目录。
2、重启Eclipse,在项目上点右键,如果出现jocky菜单,则安装成功。

3、在项目上点右键,选菜单jocky->jocky setting,弹出菜单后设置如图

防止 apk反编译 jocky-- java混淆代码 (转至:http://my.oschina.net/f839903061/blog/72554)第1张

4、点ok后,将在项目的根目录下生成一个jocky_build.xml文件,事实上是一个ant build文件。打开这个文件,作适当修改
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- WARNING: Jocky autogenerated file.
Any modifications will be overwritten.
-->
<project basedir="." default="build" name="iSzmap.Android.public.jocky">
<property name="jocky.jar" value="D:eclipse-jee-galileo-SR1-win32-2eclipsepluginsorg.apusic.jocky_1.0.3jocky.jar"/>
<property name="jocky.output.dir" value="iszmap"/>
<property name="jocky.scramble.level" value="package"/>
<property name="target" value="1.5"/>
<path id="project.classpath">
<pathelement location="bin"/>
<pathelement location="D:/android-sdk-windows-1.5_r3/platforms/android-1.5/android.jar"/>
</path>
<target name="init">
<jocky jar="${jocky.jar}" level="${jocky.scramble.level}"/>
<mkdir dir="${jocky.output.dir}"/>
<mkdir dir="${jocky.output.dir}/bin"/>
</target>
<target name="clean">
<delete dir="${jocky.output.dir}/bin"/>
<delete dir="${jocky.output.dir}"/>
</target>
<target depends="init" name="build">
<echo message="${ant.project.name}: ${ant.file}"/>
<jocky enable="true"/>
<javac destdir="${jocky.output.dir}/bin" target="${target}"encoding="UTF-8">
<src path="src/com/iszmap/android/map"/>
<classpath refid="project.classpath"/>
</javac>
</target>
</project>
注意红色的部分,第一部分是添加编译时需要的额外的类包;第二部分是设定java源文件的编码,如果您的文件中有中文的话,必须设定编码;第三部分是设定源文件的目录,因为有时候我们只想输出src目录下的部分包而不是全部。
5、保存后选jocky-jocky Now就可以进行混码了。
混码后的class文件可以通过命令进行打包,或用winrar进行压缩,注意必须压成.zip文件而不是.rar文件。
二、
使用jocky的时候,如果你的java文件使用了utf-8编码,而windows默认是gbk编码,可能会出现"unmappable character for encoding GBK"错误而导致jocky不能使用的情况。可以通过修改jocky_build.xml中的javac段,为其添加encoding="UTF-8"就可以解决这个问题了。
这个问题的实质原因是因为ant的javac使用了默认编码(如果你使用windows xp中文版,默认编码就是GBK),从而导致编码不一致。
<javac destdir="${jocky.output.dir}/WebRoot/WEB-INF/classes" target="${target}" encoding="UTF-8">
<src path="src"/>
<classpath refid="project.classpath"/>
</javac>
jocky下载:
http://www.pudn.com/downloads133/sourcecode/others/detail567839.html

当你将这些都搞到了之后,运行你的android项目,然后从bin文件夹中拷贝出你的apk文件,用我上一章说的apk反编译一下,查看是不是有一大堆的不搭边的.java文件,这表示被混淆了,祝你好运,如果成功的话如图所示:

防止 apk反编译 jocky-- java混淆代码 (转至:http://my.oschina.net/f839903061/blog/72554)第2张

免责声明:文章转载自《防止 apk反编译 jocky-- java混淆代码 (转至:http://my.oschina.net/f839903061/blog/72554)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ASP.NET Core笔记(4)admin 的使用及参数配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Xcode 编辑器之Workspace,Project,Scheme,Target

一,前言 最近老是突然对Workspace,Project,Scheme,Target四者的关系有些疑惑,所以查阅资料总结一下。 二,Workspace,Project,Scheme,Target四者的定义1. Xcode Workspace(可类比为“办公大楼”)定义:Workspace是组织projects和其他协同工作的一份文档。作用:1. 它将一些...

Centos7.3安装nexus-3.14.0-04

nexus-3.14.0-04的安装       nexus-3.14.0-04-unix.tar.gz             1、下载nexus             2、上传到服务器/root/             3.解压                 tar -zxvf nexus-3.14.0-04-unix.tar.gz...

【转载】s3c2440裸机开发调试环境(MDK4.6,Jlink v8,mini2440)

    用于arm裸机程序开发的IDE基本有 以下3个:MDK,IAR,还有ADS。具体它们的具体情况在这里我就不多说了,百度一下就明白了。由于之前开发c51,stm32时候都使用了MDK开发环境,而且MDK的界面确实看起来舒服多了,所以我选择了MDK作为我的s3c2440裸机开发的IDE。以下主要介绍一下如何使用MDK配合J-link来调试基于s3c24...

各种VBA excel 命令、属性、方法

本示例为设置密码窗口 (1)If Application.InputBox("请输入密码:") = 1234 Then        [A1] = 1 '密码正确时执行Else      MsgBox "密码错误,即将退出!" '此行与第2行共同设置密码End If'本示例为设置密码窗口 (1)X = MsgBox("是否真的要结帐?", vbYesNo)...

Android中R.java各种错误修复

1.Android R.java文件丢失的问题 R.java这个文件是会自动生成的。但是有时候你写错xml文件的时候,R.java是不会自动生成对应的值。这个时候我们会很习惯去clean一下这个项目,这个时候会突然发现,R.java竟然不见了。        这个时候的你肯定非常的气愤,你可能会拼命在网上找答案,网上会有很多答案告诉你 右键项目-...

Mac安装JMeter时Unable to access jarfile ./ApacheJMeter.jar 解决方法

在https://jmeter.apache.org/download_jmeter.cgi下载jmeter时应选择bin类型的 出现这个报错的原因是因为在Source类型的bin目录下没有ApacheJMeter.jar。在Binaries类型的bin目录下会有ApacheJMeter.jar。 然后进行安装: cd ~/Downloads/apach...