成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Android逆向之路---脫殼360加固

pkhope / 3991人閱讀

摘要:前言眾所周知,現(xiàn)在軟件在防止逆向采取了混淆,加殼等措施。這兩天在逆向一款的時(shí)候找到了一個(gè)不錯(cuò)的插件推薦給大家,下載地址點(diǎn)我下載前提環(huán)境過的手機(jī)文件下載地址在上方自動(dòng)脫殼安裝完成之后,在里面軟重啟,激活。

前言

眾所周知,現(xiàn)在軟件在防止逆向采取了混淆,加殼等措施。比如360加固,騰訊加固,梆梆加固等等。
這兩天在逆向一款app的時(shí)候找到了一個(gè)不錯(cuò)的xposed插件推薦給大家,

下載地址:點(diǎn)我下載

前提環(huán)境

xposed

root過的android手機(jī)

dumpdex.apk文件(下載地址在上方)

自動(dòng)脫殼

安裝完成dumpdex.apk之后,在xposed里面軟重啟,激活。就好了。

現(xiàn)在就可以脫殼了,我們可以找一個(gè)已經(jīng)被加固的app,
在此就不列舉app的名字了。

我們點(diǎn)擊app打開,這個(gè)時(shí)候WrBug會(huì)自動(dòng)的幫我們脫殼完成。
此時(shí)此刻我們只需要去對(duì)應(yīng)目錄找dex文件就好了。

路徑如圖:

接下來就可以用adb pull命令將對(duì)應(yīng)的dex文件取出,脫殼完畢。

xposed hook 360加殼后app注意事項(xiàng)

由于360加殼之后,更改了classloader,因此我們用原本的classloader是會(huì)報(bào)類無法被找到的異常的。

不過我們?nèi)シ治鲈创a便知道,我們要先hook到360的classloader,再從360的classloader里面獲取到app運(yùn)行時(shí)的類。

360加固源碼分析

類com.stub.StubApp

public class StubApp
  extends Application
{
  private static boolean loadDexToC = false;
  private static boolean loadFromLib;
  private static boolean needX86Bridge;
  public static String strEntryApplication;
  private static Application ??A = null;
  private static Application ??;
  private static String ??;
  private static Context ??;

  static
  {
    strEntryApplication = "com.qihoo360.crypt.entryRunApplication";
    ?? = null;
    ?? = "libjiagu";
    loadFromLib = false;
    needX86Bridge = false;
    throw new VerifyError("bad dex opcode");
  }
  //--------略--------
   private static Application ?ˋ(Context context) {
        try {
            if (?? == null) {
                ClassLoader classLoader = context.getClassLoader();
                if (classLoader != null) {
                    Class loadClass = classLoader.loadClass(strEntryApplication);
                    if (loadClass != null) {
                        ?? = (Application) loadClass.newInstance();
                    }
                }
            }
        } catch (Exception e) {
        }
        return ??;
    }

  //--------略--------
}

上面代碼中有一個(gè)方法,這個(gè)方法的名稱是亂碼,你沒看錯(cuò),這個(gè)方法名稱本身就是一串奇怪的字符,我們需要Hook到這個(gè)方法,然后拿出classloader才可以

Hook代碼如下

XposedHelpers.findAndHookMethod("com.stub.StubApp", lpparam.classLoader, "?ˋ", Context.class, new XC_MethodHook() {
                @Override
                protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                    super.afterHookedMethod(param);
                    //獲取到360的Context對(duì)象,通過這個(gè)對(duì)象來獲取classloader
                    Context context = (Context) param.args[0];
                    //獲取360的classloader,之后hook加固后的代碼就使用這個(gè)classloader
                    ClassLoader classLoader = context.getClassLoader();
                    //替換classloader,hook加固后的真正代碼

                    XposedHelpers.findAndHookMethod("com.alibaba.fastjson.JSON", classLoader, "toJSONString", Object.class, new XC_MethodHook() {

                        @Override
                        protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                            super.afterHookedMethod(param);
                            XposedBridge.log(TAG + "JSONObject");
                            XposedBridge.log(TAG + param.args[0].toString());
                            XposedBridge.log(TAG + param.getResult());
                        }
                    });
                }
            });

這樣就可以了

注意!!!

由于360加固版本也會(huì)更新?lián)Q代,升級(jí),變形,也希望讀者讀到了這里可以自己思考。
今天是2018/12/13,如果你看到這篇文章的時(shí)間,360加固已經(jīng)更新了N個(gè)版本,歡迎call我,一起來找到最新的破解辦法。

網(wǎng)上目前流傳很多其他辦法,例如:

  XposedHelpers.findAndHookMethod("com.qihoo.util.StubApp579459766", loadPackageParam.classLoader,
                    "getNewAppInstance", Context.class, new XC_MethodHook() {
                        @Override
                        protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                            super.afterHookedMethod(param);
                            //獲取到360的Context對(duì)象,通過這個(gè)對(duì)象來獲取classloader
                            Context context = (Context) param.args[0];
                            //獲取360的classloader,之后hook加固后的就使用這個(gè)classloader
                            ClassLoader classLoader =context.getClassLoader();
                            //下面就是強(qiáng)classloader修改成360的classloader就可以成功的hook了
                            XposedHelpers.findAndHookMethod("xxx.xxx.xxx.xxx", classLoader, "xxx", String.class, String.class, new XC_MethodHook() {
                                @Override
                                protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                                    super.beforeHookedMethod(param);
                                    Log.i(TAG, "密鑰: " + (String) param.args[0]);
                                    Log.i(TAG, "內(nèi)容: " + (String) param.args[1]);
                                   param.setResult((String) param.args[1]);
                                }
                            });

上方的方法其實(shí)已經(jīng)是360加固16年的破解版本了,
現(xiàn)在是8102年了,還請(qǐng)讀者自行辨析。

目前16年的版本已經(jīng)無效了,請(qǐng)使用最新的方法

寫在最后

技術(shù)瞬息萬變,30年河?xùn)|30年河西,希望大家都可以抓住那些不變的東西,努力進(jìn)取。

爭取在每次浪潮來臨之際,能夠趕上每一波更新,加油!

注:感謝作者WrBug。

項(xiàng)目github地址如下:

點(diǎn)我點(diǎn)我

關(guān)于我

個(gè)人博客:MartinHan的小站

博客網(wǎng)站:hanhan12312的專欄

知乎:MartinHan01

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/72693.html

相關(guān)文章

  • Android逆向之路---脫殼360加固原理解析

    摘要:如何使用呢,可以見我的的上一篇文章點(diǎn)我逆向之路脫殼加固與注意事項(xiàng)寫在最后偶爾聊聊技術(shù),偶爾聊聊逆向,偶爾聊聊生活不能總聊技術(shù)呀,下次一起聊點(diǎn)輕松的。 前言 眾所周知,上次說到了如何脫殼360加固,大致意思就是安裝一個(gè)xposed插件,然后自動(dòng)就會(huì)脫殼了,那么這個(gè)插件是如何工作的呢,本次重點(diǎn)說說這個(gè)。 上次說道了dumpDex脫殼360加固,其實(shí)先說個(gè)大概,就是從ndk層和java層,適...

    ysl_unh 評(píng)論0 收藏0
  • Android防護(hù)掃盲篇

    摘要:為了防止這種現(xiàn)象,我們可以對(duì)字節(jié)碼進(jìn)行混淆。動(dòng)態(tài)鏈接庫是目標(biāo)文件的集合,目標(biāo)文件在動(dòng)態(tài)鏈接庫中的組織方式是按照特殊方式形成的。 一、已知防護(hù)策略 1.不可或缺的混淆 Java 是一種跨平臺(tái)、解釋型語言,Java 源代碼編譯成的class文件中有大量包含語義的變量名、方法名的信息,很容易被反編譯為Java 源代碼。為了防止這種現(xiàn)象,我們可以對(duì)Java字節(jié)碼進(jìn)行混淆?;煜粌H能將代碼中的類...

    CastlePeaK 評(píng)論0 收藏0
  • APP 漏洞自動(dòng)化掃描專業(yè)評(píng)測(cè)報(bào)告(中篇)

    摘要:前言上一篇中通過對(duì)阿里聚安全漏洞掃描騰訊金剛審計(jì)系統(tǒng)百度移動(dòng)云測(cè)試中心以及在收費(fèi)情況樣本測(cè)試后的掃描時(shí)間對(duì)比和漏洞項(xiàng)專業(yè)對(duì)比后,本篇將以各個(gè)廠商的掃描能力作為分析維度展開。表示掃描結(jié)果正確,表示掃描結(jié)果錯(cuò)誤。 前言 上一篇中通過對(duì)阿里聚安全[1]、360App 漏洞掃描[2]、騰訊金剛審計(jì)系統(tǒng)[3]、百度移動(dòng)云測(cè)試中心[4]以及AppRisk Scanner[5] 在收費(fèi)情況、樣本測(cè)試...

    justjavac 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<