精华内容
下载资源
问答
  • 代码混淆反编译apk需要下面3个工具 1、apktool(资源文件获取) 作用:资源文件获取,可以提取图片文件和布局文件进行使用查看 2、dex2jar(源文件获取) 作用:将APK反编译成java源码(classes.dex转化成jar文件) ...
  • 01-反编译需要使用的工具 要反编译apk需要下面3个工具: apktool (资源文件获取) 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看 dex2jar(源码文件获取) 作用:将apk反编译成java...

    01-反编译需要使用的工具

    要反编译apk需要下面3个工具:

    1. apktool (资源文件获取) 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看

    2. dex2jar(源码文件获取) 作用:将apk反编译成java源码(classes.dex转化成jar文件)

    3. jd-gui 作用:查看APK中classes.dex转化成出的jar文件,即源码文件

    02-反编译资源文件

    图片资源
    布局资源
    动画,样式等其它资源
    

    反编译得到资源文件

    1. 解压apktool.rar, 其中包含3个文件:aapt.exe,apktool.bat,apktool.jar 将需要反编译的APK文件放到该目录下

    2. 在命令行中定位到apktool文件夹,输入以下命令:apktool.bat d -f test.apk test

    说明: 命令中test.apk指的是要反编译的APK文件全名,test为反编译后资源文件存放的目录名称, 即为:apktool.bat d -f [apk文件 ] [输出文件夹]

    3.可以查看资源目录是否反编译有效

    03-反编译类文件

    方式一:反编译得到Java类

    1. 解压dex2jar-0.0.9.15.zip得到dex2jar-0.0.9.15文件夹, 其中包含dex2jar.bat及其相关文件
    2. 将apk文件改为xx.zip文件, 解压zip文件得到其中的classes.dex文件, 将其复制到dex2jar-0.0.9.15文件夹中
    3. 在命令行中定位到dex2jar-0.0.9.15文件夹, 输入以下命令: dex2jar.bat classes.dex, 会生成一个文件: classes_dex2jar.jar
    4. 解压jd-gui-0.3.5.windows.zip得到jd-gui.exe, 运行jd-gui.exe, 并用它打开生成的jar文件

    方式二:可以直接使用smali2java工具

    什么是smali?smali是将Android字节码用可阅读的字符串形式表现出来的一种语言,可以称之为Android字节码的反汇编语言。

    smali2java工具基于apktool v1.5.0(baksmali v1.3.4)生成的smali文件,依赖于smali文件中的代码行数(.line关键字)和变量别名(.local关键字)等信息,可以最大程度还原原始的java代码。还原出的java代码将具有原始的变量命名,代码的顺序也与原始的java代码保持一致。因此,本工具也具有局限性,仅适用于带有行数和变量别名信息的smali文件(java编译器的编译选项可以在生成的字节码中剔除这些信息)。

    04-应用的混淆

    只混淆java类, 不混淆资源文件
    系统定义的组件不能混淆
        应用组件
        视图组件
    必须是导出的apk
    

    05-如何实现

    混淆你的类文件

    1. 修改module下的build.gradle buildTypes { release { // 是否进行混淆 minifyEnabled true // 混淆文件的位置 // proguard是一个压缩、优化和混淆Java字节码文件的免费的工具 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }
    2. 在proguard-rules.pro中添加:

      #指定代码的压缩级别
      -optimizationpasses 5
      
      #包明不混合大小写
      -dontusemixedcaseclassnames
      
      #不去忽略非公共的库类
      -dontskipnonpubliclibraryclasses
      
      #优化  不优化输入的类文件
      -dontoptimize
      
      #预校验
      -dontpreverify
      
      #混淆时是否记录日志
      -verbose
      
      # 混淆时所采用的算法
      -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
      
      #保护注解
      -keepattributes *Annotation*
      
      # 保持哪些类不被混淆
      -keep public class * extends android.app.Fragment
      -keep public class * extends android.app.Activity
      -keep public class * extends android.app.Application
      -keep public class * extends android.app.Service
      -keep public class * extends android.content.BroadcastReceiver
      -keep public class * extends android.content.ContentProvider
      -keep public class * extends android.app.backup.BackupAgentHelper
      -keep public class * extends android.preference.Preference
      -keep public class com.android.vending.licensing.ILicensingService
      #如果有引用v4包可以添加下面这行
      -keep public class * extends android.support.v4.app.Fragment
      
      #忽略警告
      -ignorewarning
      
      
      ##记录生成的日志数据,gradle build时在本项目根目录输出##
      #apk 包内所有 class 的内部结构
      -dump class_files.txt
      #未混淆的类和成员
      -printseeds seeds.txt
      #列出从 apk 中删除的代码
      -printusage unused.txt
      #混淆前后的映射
      -printmapping mapping.txt
      ########记录生成的日志数据,gradle build时 在本项目根目录输出-end######
      #####混淆保护自己项目的部分代码以及引用的第三方jar包library#######
      #-libraryjars libs/umeng-analytics-v5.2.4.jar
      #三星应用市场需要添加:sdk-v1.0.0.jar,look-v1.0.1.jar
      #-libraryjars libs/sdk-v1.0.0.jar
      #-libraryjars libs/look-v1.0.1.jar
      #如果不想混淆 keep 掉
      -keep class com.lippi.recorder.iirfilterdesigner.** {*; }
      #友盟
      -keep class com.umeng.**{*;}
      #项目特殊处理代码
      #忽略警告
      -dontwarn com.lippi.recorder.utils**
      #保留一个完整的包
      -keep class com.lippi.recorder.utils.** {
       *;
       }
      -keep class  com.lippi.recorder.utils.AudioRecorder{*;}
      
      #如果引用了v4或者v7包
      -dontwarn android.support.**
      ####混淆保护自己项目的部分代码以及引用的第三方jar包library-end#### 
      -keep public class * extends android.view.View {
          public <init>(android.content.Context);
          public <init>(android.content.Context, android.util.AttributeSet);
          public <init>(android.content.Context, android.util.AttributeSet, int);
          public void set*(...);
      }
      
      
      
      
       #保持 native 方法不被混淆
       -keepclasseswithmembernames class * {
           native <methods>;
       }
      
      
      
      
       #保持自定义控件类不被混淆
       -keepclasseswithmembers class * {
           public <init>(android.content.Context, android.util.AttributeSet);
       }
      
      
      
       #保持自定义控件类不被混淆
       -keepclassmembers class * extends android.app.Activity {
          public void *(android.view.View);
       }
      
      
      
       #保持 Parcelable 不被混淆
       -keep class * implements android.os.Parcelable {
         public static final android.os.Parcelable$Creator *;
       }
      
      
       #保持 Serializable 不被混淆
       -keepnames class * implements java.io.Serializable
      
      
      
       #保持 Serializable 不被混淆并且enum 类也不被混淆
       -keepclassmembers class * implements java.io.Serializable {
           static final long serialVersionUID;
           private static final java.io.ObjectStreamField[] serialPersistentFields;
           !static !transient <fields>;
           !private <fields>;
           !private <methods>;
           private void writeObject(java.io.ObjectOutputStream);
           private void readObject(java.io.ObjectInputStream);
           java.lang.Object writeReplace();
           java.lang.Object readResolve();
       }
      
      
      
       #保持枚举 enum 类不被混淆 如果混淆报错,建议直接使用上面的 -keepclassmembers class * implements  java.io.Serializable即可
       #-keepclassmembers enum * {
       #  public static **[] values();
       #  public static ** valueOf(java.lang.String);
       #}
      
      
       -keepclassmembers class * {
       public void *ButtonClicked(android.view.View);
       }
      
      #不混淆资源类
      -keepclassmembers class **.R$* {
       public static <fields>;
      }
      
      #避免混淆泛型 如果混淆报错建议关掉
      #–keepattributes Signature
      
      
      #移除log 测试了下没有用还是建议自己定义一个开关控制是否输出日志
      #-assumenosideeffects class android.util.Log {
      #    public static boolean isLoggable(java.lang.String, int);
      #    public static int v(...);
      #    public static int i(...);
      #    public static int w(...);
      #    public static int d(...);
      #    public static int e(...);
      #}
      
      #如果用用到Gson解析包的,直接添加下面这几行就能成功混淆,不然会报错。
      #gson
      #-libraryjars libs/gson-2.2.2.jar
      -keepattributes Signature
      # Gson specific classes
      -keep class sun.misc.Unsafe { *; }
      # Application classes that will be serialized/deserialized over Gson
      -keep class com.google.gson.examples.android.model.** { *; }
      

     


    展开全文
  • 反编译查看代码,需要用到两个工具:dex2jar 和 jdgui dex2jar(google code) jdgui(google code),最新版本请见官方 操作很简单,步骤如下: 1.将APK(如GuessStock.apk)拷到dex2jar目录下,cmd下执行...

    反编译、查看源代码,需要用到两个工具:dex2jar 和 jdgui

    dex2jar(google code)

    jdgui(google code),最新版本请见 官方

     

    操作很简单,步骤如下:

    1.将APK(如GuessStock.apk)拷到dex2jar目录下,cmd下执行:

    C:\Users\raozf\Desktop\dex2jar-0.0.9.15>d2j-dex2jar.bat GuessStock.apk
    dex2jar GuessStock.apk -> GuessStock-dex2jar.jar

     

    将得到GuessStock-dex2jar.jar


    2. jdgui打开该文件即可查看源码。

     

    更多可参看:http://blog.csdn.net/ithomer/article/details/6727581

     

     

    我通过该方法反编译了一些流行的APP,除了搜狗输入法反编译失败外,百度地图、QQ浏览器、手机QQ、优酷、酷我等都成功了。

    看了一下他们的代码,有些代码做了混淆处理(百度地图、手机QQ),有些似乎处理的不怎么干净(优酷、酷我)--类名、方法名、变量名甚至token都可以看到,当然也许是不太重要的代码。总之比较奇怪。

     

     

     

     

     

     

     

     

    转载于:https://www.cnblogs.com/chutianyao/p/3386314.html

    展开全文
  • 一、代码反编译工具.NET Reflector 直接查看exe源代码,类似Java的jad。为了防止别人破解代码,自然用到代码混淆工具。用法很简单,直接打开exe即可,默认显示反编译的变量,如果要查看类里的方法,点击下方的...

    最近在开发C#程序,为了保证代码不被破解,经过对比,发现有几款工具很不错。接下来逐个进行介绍。

    一、代码反编译工具.NET Reflector  

    直接查看exe源代码,类似Java的jad。为了防止别人破解代码,自然用到代码混淆工具。用法很简单,直接打开exe即可,默认显示反编译的变量,如果要查看类里的方法,点击下方的extend method即可。


    二、dotfuscator 代码混淆。

    混淆工具,vs2010自带的版本已经到了Dotfuscator5.0版了.官方解释是:“PreEmptive Solutions 的生成后检测服务提供模糊处理、篡改防御、存储期限和运行时智能等功能。”具体用法自行百度即可。


    经过混淆的exe,也可以被反编译,但是基本已经看不到源代码的本来面目了。


    展开全文
  • 你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用的APK进行反编译查看。下面是我参考...

    一,反编译


    在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用的APK进行反编译查看。下面是我参考了一些文章后简单的教程详解。

    (注:反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,借鉴好的代码,提升自我开发水平。)



    测试环境:

            win 7 


    使用工具:

         CSDN上下载地址:

           apktool (资源文件获取  下载  

           dex2jar(源码文件获取) 下载

           jd-gui  (源码查看) 下载

     

     


    工具介绍:

    apktool  

         作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看

    dex2jar

         作用:将apk反编译成Java源码(classes.dex转化成jar文件)

    jd-gui

         作用:查看APK中classes.dex转化成出的jar文件,即源码文件


    反编译流程:

    一、apk反编译得到程序的源代码、图片、XML配置、语言资源等文件

    下载上述工具中的apktool,解压得到3个文件:aapt.exeapktool.batapktool.jar ,将需要反编译的APK文件放到该目录下,

    打开命令行界面(运行-CMD) ,定位到apktool文件夹,输入以下命令:apktool.bat d -f  test.apk  test    


    (命令中test.apk指的是要反编译的APK文件全名,test为反编译后资源文件存放的目录名称,即为:apktool.bat   d  -f    [apk文件 ]   [输出文件夹]

    说明获取成功,之后发现在文件夹下多了个test文件,点击便可以查看该应用的所有资源文件了。

    如果你想将反编译完的文件重新打包成apk,那你可以:输入apktool.bat   b    test(你编译出来文件夹)便可,效果如下:


    之后在之前的test文件下便可以发现多了2个文件夹:

    build

    dist(里面存放着打包出来的APK文件)


    二、Apk反编译得到Java源代码

    下载上述工具中的dex2jarjd-gui ,解压

    将要反编译的APK后缀名改为.rar或则 .zip,并解压,得到其中的额classes.dex文件(它就是java文件编译再通过dx工具打包而成的),将获取到的classes.dex放到之前解压出来的工具dex2jar-0.0.9.15 文件夹内,

    在命令行下定位到dex2jar.bat所在目录,输入dex2jar.bat   classes.dex效果如下:

    在改目录下会生成一个classes_dex2jar.jar的文件,然后打开工具jd-gui文件夹里的jd-gui.exe,之后用该工具打开之前生成的classes_dex2jar.jar文件,便可以看到源码了,效果如下:

    被混淆过的效果图(类文件名称以及里面的方法名称都会以a,b,c....之类的样式命名):


    二,代码混淆


    先看下代码没有混淆过被反编译的代码:(代码都可以看的见)



    关于代码混淆,大致如下:


    在app下的build.gradle文件中添加如下代码(minifyEnabled表示是否混淆,默认是false,这里要记得设置成true): 


    其中proguard-andorid.txt文件是本地sdk/tool/proguard 文件夹下的默认文件;接下来prguard-rules.pro文件就是用来编写混淆带代码的(下图是我从我们项目复制出来的):



    #指定代码的压缩级别
     -optimizationpasses 5
     #包明不混合大小写
     -dontusemixedcaseclassnames
     #不去忽略非公共的库类
     -dontskipnonpubliclibraryclasses
      #优化  不优化输入的类文件
     -dontoptimize
      #不做预校验
     -dontpreverify
      #混淆时是否记录日志
     -verbose
      # 混淆时所采用的算法
     -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
      #忽略警告
     -ignorewarning
     #保护注解
     -keepattributes *Annotation*
    
    #####################记录生成的日志数据,gradle build时在本项目根目录输出################
      #apk 包内所有 class 的内部结构
      -dump class_files.txt
      #未混淆的类和成员
      -printseeds seeds.txt
      #列出从 apk 中删除的代码
      -printusage unused.txt
      #混淆前后的映射
      -printmapping mapping.txt
    
        #我是以libaray的形式引用了一些框架,如果不想混淆 keep 掉
        -keep class com.android.support.** { *; }
        -keep class com.github.bumptech.glide.** { *; }
    #    -keep class com.jakewharton:butterknife.** { *; }
        -keep class com.readystatesoftware.systembartint.** { *; }
    #    -keep class com.yqritc:recyclerview-flexibledivider.** { *; }
    #    -keep class com.jakewharton:butterknife.** { *; }
    #    -keep class com.squareup.okhttp3:okhttp.** { *; }
        -keep class com.bartoszlipinski.** { *; }
    #    -keep org.simple:androideventbus.** { *; }
    #    -keep com.google.code.gson:gson.** { *; }
    
    
        #保持哪些类不被混淆 google默认 不混淆 Activity 、Service ... 类的子类
        #混淆了可能编译不通过
    #    -keep public class * extends android.app.Fragment
    #    -keep public class * extends android.app.Activity
        -keep public class * extends android.app.Application
        -keep public class * extends android.app.Service
        -keep public class * extends android.content.BroadcastReceiver
        -keep public class * extends android.content.ContentProvider
        -keep public class * extends android.app.backup.BackupAgentHelper
        -keep public class * extends android.preference.Preference
        -keep public class com.android.vending.licensing.ILicensingService
        #如果有引用v4包可以添加下面这行
        -keep public class * extends android.support.v4.app.Fragment
        #如果引用了v4或者v7包
         -dontwarn android.support.**
         -keep public class * extends android.view.View {
             public <init>(android.content.Context);
             public <init>(android.content.Context, android.util.AttributeSet);
             public <init>(android.content.Context, android.util.AttributeSet, int);
             public void set*(...);
         }
    
         #保持 native 方法不被混淆
        -keepclasseswithmembernames class * {
           native <methods>;
        }
        # Keep names - Native method names. Keep all native class/method names.
         -keepclasseswithmembers,allowshrinking class * {
             native <methods>;
         }
    
        #保持自定义控件类不被混淆
       -keepclasseswithmembers class * {
             public <init>(android.content.Context, android.util.AttributeSet);
         }
    
        #保持自定义控件类不被混淆
        -keepclasseswithmembers class * {
            public <init>(android.content.Context, android.util.AttributeSet, int);
        }
    
         #保持自定义控件类不被混淆
        -keepclassmembers class * extends android.app.Activity {
            public void *(android.view.View);
         }
    
         #保持 Parcelable 不被混淆
       -keep class * implements android.os.Parcelable {
           public static final android.os.Parcelable$Creator *;
         }
    
         #保持 Serializable 不被混淆
         -keepnames class * implements java.io.Serializable
    
         #保持 Serializable 不被混淆并且enum 类也不被混淆
       -keepclassmembers class * implements java.io.Serializable {
             static final long serialVersionUID;
             private static final java.io.ObjectStreamField[] serialPersistentFields;
             !static !transient <fields>;
             !private <fields>;
             !private <methods>;
             private void writeObject(java.io.ObjectOutputStream);
             private void readObject(java.io.ObjectInputStream);
             java.lang.Object writeReplace();
             java.lang.Object readResolve();
         }
    
         #保持枚举 enum 类不被混淆 如果混淆报错,建议直接使用上面的 -keepclassmembers class * implements java.io.Serializable即可
    #   -keepclassmembers enum * {
    #         public static **[] values();
    #         public static ** valueOf(java.lang.String);
    #     }
    
        -keepclassmembers class * {
            public void *ButtonClicked(android.view.View);
        }
         #不混淆资源类
       -keepclassmembers class **.R$* {
             public static <fields>;
         }
    
          #不混淆H5交互
       -keepattributes *JavascriptInterface*
         #ClassName是类名,H5_Object是与javascript相交互的object,建议以内部类形式书写
       -keepclassmembers   class **.ClassName$H5_Object{
                         *;
          }
    
       #gson
       #-libraryjars libs/gson-2.2.2.jar
       -keepattributes Signature
       # Gson specific classes
       -keep class sun.misc.Unsafe { *; }
       # Application classes that will be serialized/deserialized over Gson
       -keep class com.google.gson.examples.android.model.** { *; }
    
    
        # webview + js
        -keepattributes *JavascriptInterface*
        # keep 使用 webview 的类
        -keepclassmembers class  com.veidy.activity.WebViewActivity {
           public *;
        }
        # keep 使用 webview 的类的所有的内部类
        -keepclassmembers  class  com.veidy.activity.WebViewActivity$*{
            *;
        }
       #keep model
       -keep class com.uyac.elegantlife.entity.**{*;}
       #keep 适配器
       -keep class com.uyac.elegantlife.adapter.**{*;}
    

    混淆过的额代码截图:




    这里要注意的是很多网上资料都注明主要子类不被混淆(那混淆还有什么意义),图为吧Fragment,Activity 子类都混淆,才有上图效果,不然代码还可以看的 



    展开全文
  • 1.获取工具: 既然是反编译,肯定要用到一些相关的工具,工具可以到这里下载,里面包含三个文件夹,用于反编译查看反编译之后的代码; 其实这两工具都是google官方出的,也可在google code上下载 dex2jar,...
  • 反编译apk需要下面3个工具: 1. apktool (资源文件获取) 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看 2. dex2jar(源码文件获取) 作用:将apk反编译成java源码(classes.dex转化成...
  • 往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用的APK进行反编译查看和学习。...
  • 最近用Android Studio 做了代码混淆,并打包签名,生成release版本安装包,然后当我用反编译工具解压出来的源码查看时,瞬间傻眼了,不仅类名、方法名没有任何变化,就连增加的废代码也是粗制烂造,直接在末尾添加了...
  • 现在有的公司对自己的爱屁屁(APP)安全上有重视,所以本篇讲一下代码混淆,即使别人反编译出来,也看不出来头文件的信息. 上菜: 1.首先安装class-dump,下载地址:http://stevenygard.com/projects/class-dump ...
  • 反编译: apktool (如不需要资源文件,可不用)  作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看 dex2jar  作用:将apk反编译成java源码(classes.dex转化成jar文件) jd-gui  作用:...
  • .NET C# 反编译混淆 处理流程

    千次阅读 2018-07-26 22:31:10
    ScanId_1_5.zip 先扫一遍...最后使用ILSPY或者Reflector反编译查看代码。 以上工具在 https://down.52pojie.cn/Tools/NET/ 都有下载 名字 大小 更新时间 CLRInjection.zip 7M 2015-Nov-23 03:30 ...
  • 1.为什么要进行代码混淆? iOS的任何APP都可以使用classdump对原程序进行dump,可以dump出所有源程序的函数所有信息:源程序所有函数类型,变量全部泄露。这样的话,让攻击者,也就是黑客们了解了程序结构方便逆向。...
  • 1.对android apk进行反编译查看代码 准备一个apk,并对其进行解压缩 解压后得到以下目录 在这里可以查看程序中用到的所有图片资源,但看不到所有的代码,都是乱码。这里需要用到dex2jar,这个工具进行...
  • 反编译混淆

    2016-02-15 09:12:19
    2.1首先利用apktools反编译apk文件(这就能查看xml文件了)此时源码文件还不能看还需两部 2.2 开始运行中输入cmd,进入dos命令窗口 2.3 在dos窗口中输入dex2jar.bat所在盘符  2.4 执行cd命令将当前文件夹改成...
  • 安卓反编译,反混淆,抓包

    千次阅读 2019-06-25 17:50:07
    反编译代码 d2j-dex2jar 解压apk文件得到dex,解析dex为jar文件 d2j-dex2jar classes.dex jd-gui 查看反编译后的jar包 jad 解压jar文件得到class文件,使用jad将class文件转为java文件 //将test目录下的所有class...
  • 首先我们要搞清楚这两个概念,反编译,顾名思义就是将已经编译好的apk还原成代码的过程,apk是一种压缩文件,但我们不能将反编译简单的理解为单纯的解压过程。 混淆的目的有两个: (1)优化代码 (2)在一定...
  • 亲测可用的Android反编译查看代码

    千次阅读 2016-11-30 23:33:17
    反编译的作用和目的就不用详细描述了,不仅可以查看人家优秀界面的布局文件,还能反编译出源代码查看人家的逻辑结构和项目架构,促进开发者学习,提升自我开发水平。但有个前提就是人家的代码没有进行过混淆,如果...
  • 反编译: 1:apktool获取资源(res)和清单文件(AndroidManifest)文件 2:dex2jar 把class.dex文件转换成 java的.class文件  3:jd-gui.exe 查看java的源代码 混淆: (以前版本:proguard.config...
  • 如何你不会,可以参看此文章:可以到以下连接下载可视化反编译工具:二,反编译后的源代码,是乱的,看不太懂。这是因为开发者在发布APK时,一般都会用代码混淆器将原始的源代码打乱,这也是防盗的一种方法。但是再...
  • dotNet程序反编译混淆

    千次阅读 2012-12-23 10:34:02
    用.net的都应该知道,.net程序可以通过各种工具轻易查看到源码,程序不再安全。...于是,我选择可代码混淆器dotNet Protector,混淆后,再次查看这个.net程序 这次,可以看到代码经过了处理,看起来似乎
  • 安全攻防第一战--代码混淆和防二次打包技术; 本文章为CSDN作者原创,转载请保留出处:http://blog.csdn.net/lrs0304/article/details/38349741 查看项目源代码请前往:迷你播放器-综述 请注意,...
  • 这些资料里读给出了具体的步骤,包括一些非常详细的配置代码,可能是对那些内容的理解不太到位,所以就直接将那些配置复制粘贴,但那个非常简单的helloworld程序一直混淆失败——反编译后java代码为空。 下面我将...
  • 1.查看项目中有没有proguard.cfg。 2.如果没有那就看看这个文件中写的什么吧,看完后将他复制到你的项目中。 -optimizationpasses5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -...
  • Android逆向——反编译APK改代码

    千次阅读 2019-07-21 16:53:22
    如果你想反编译一个简单的APK文件,修改里面的代码,那么你不妨尝试看一下,还是不难的。 为什么说是简单的APK文件呢?因为复杂一点的,比如大企业的app,是不可能让你如你所愿的,他们一般会通过复杂的分包和混淆,...
  • 使用androidstuio将android项目打包成apk后,可以使用解压软件直接打开...因此需要使用反编译工具apktool。 apktool的使用 1、到官网上下载两个文件apktool.bat和apktool.jar(下载后去掉版本号),然后拷贝到C:\Wi...
  • 如果直接ZIP打开混淆打包过的APK的话,会出现dex(或odex,ART模式)文件,资源文件全为乱码,这时候就需要反编译主要工具 apktool dex2jar jd-gui apktool:将APK反编译能看到xml资源文件与smile代码,如果使用...
  • 安卓apk反编译、修改、重新打包、签名全过程

    万次阅读 多人点赞 2016-10-16 01:52:37
    首先明确,反编译别人apk是一件不厚道的事情。...工具简介apktool,编译和反编译apk,从apk中提取图片和布局资源dex2jar,将可运行文件classes.dex反编译为jar源码文件jd-gui,查看jar源码文件反编译apk

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 262
精华内容 104
关键字:

反编译混淆代码查看