用DexClassLoader實現加殼
try {
InputStream input=this.getAssets().open("proxy.dex");
dex.createNewFile();
FileOutputStream fo=new FileOutputStream(dex);
int a=0;
byte bf[]=new byte[1024];
while ((a=input.read(bf))!=-1) {
fo.write(bf,0,a);
fo.flush();
}
fo.close();
input.close();
} catch (IOException e) {
e.printStackTrace();
}
File libs = this.getDir("payload_lib", MODE_PRIVATE);
String libPath = libs.getAbsolutePath();
File dex_in=new File(Environment.getExternalStorageDirectory().toString()+File.separator+"proxy.dex");
File optimizedDexOutputPath = getDir("temp", Context.MODE_PRIVATE);
ClassLoader apk_loader=getClassLoader();
loader=new DexClassLoader(dex_in.getAbsolutePath(),
optimizedDexOutputPath.getAbsolutePath(), null, apk_loader);
Object currentActivityThread = RefInvoke.invokeStaticMethod(
"android.app.ActivityThread", "currentActivityThread",
new Class[] {}, new Object[] {});
String packageName = this.getPackageName();
ArrayMap mPackages = (ArrayMap) RefInvoke.getFieldOjbect(
"android.app.ActivityThread", currentActivityThread,
"mPackages");
WeakReference wr = (WeakReference) mPackages.get(packageName);
/* DexClassLoader dLoader = new DexClassLoader(dex_in.getAbsolutePath(), optimizedDexOutputPath.getAbsolutePath(),
libPath, (ClassLoader) RefInvoke.getFieldOjbect(
"android.app.LoadedApk", wr.get(), "mClassLoader")); */
RefInvoke.setFieldOjbect("android.app.LoadedApk", "mClassLoader", wr.get(), loader);
相關推薦
用DexClassLoader實現加殼
File dex=new File(Environment.getExternalStorageDirectory().toString()+File.separator+"proxy.dex");try {InputStream input=this.getAssets().open("proxy.dex"
用C++實現的殼(基礎版)
最近一直在15PB學習,現階段學的主要是關於殼的知識,正好現在也在做殼這個階段專案,用了2天的時間實現了一個基礎版的C++寫的殼,拿出來跟大家分享一下,程式碼量不多,但知識點不少,適合新手學習提高~ 殼的流程看上去並不複雜,但需要的是你對PE
用WebService實現對數據庫進行操作(添加+刪除+修改)(轉)
add exe dispose eth 連接 字段 article log conn 轉自:http://blog.csdn.net/beyondqd/article/details/6703169 表為User,字段有 編號: int id,用戶名:string User
用shell寫一個簡易計算器,可以實現加、減、乘、除運算,假如腳本名字為1.sh,執行示例:./1.
a-z 依次 腳本 als 示例 內置 數位 特殊字符 使用 用shell寫一個簡易計算器,可以實現加、減、乘、除運算,假如腳本名字為1.sh,執行示例:./1.sh 1 + 2#!/bin/bash if [ $# -ne 3 ] then echo "參
用JavaScript實現CheckBox的全選取消反選,及遮罩層中添加內容
document 當前 CI itl HA posit size classlist ML 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta cha
軟件加殼的原理及實現
win cat ESS cte ORC dword bst typeof 解密 加殼的實現 我是個初學者,所知有限,難免會有錯誤,如果有人發現了錯誤,還請指正。 先大致說一下加殼的原理,即在原PE文件(後面稱之為宿主文件)上加一個新的區段(也就是殼),然後從這個新
Android中的Apk的加固 加殼 原理解析和實現
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
用JAVA實現某個日期加一天
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
類方法實現:用python實現一個簡單的單詞本,添加/查找/刪除單詞。
end code div keys style 成功 move print utf 1.實現一個簡單的單詞本,功能: ①添加單詞,當所添加的單詞已存在時,讓用戶知道 ②查找單詞,當查找的單詞不存在時,讓用戶知道 ③刪除單詞,當刪除的單詞不存在時,讓用戶知道 以上
用Flutter實現一個塗鴉和加水印功能
本文涉及的知識點:截圖、圖片儲存、根據使用者手勢實時繪製canvas。 GitHub地址:github.com/yumi0629/Fl… 先上效果圖: 需求分析 這次的想法是移植自專案中的一個小功能:截屏當前頁面,添加塗鴉功能後,分享給第三方APP。分享功能我們
java入門:(建構函式的妙用)實現複數的加減乘除
在複數類中,加減乘除各用兩種方法實現。舉個例子,就比如a = b + c和a += b; 在該複數類中,用到了static修飾符,如此,被修飾的方法可以用類名通過圓點運算子直接呼叫。可以解決沒有物件呼叫的問題。用類名直接呼叫,傳入兩個引數。 減法利用加法實現,除法利用乘法
用django實現購物車的商品加減功能
首先寫出html程式碼 <button goodsid="{{ good.id }}" class="subShopping">-</button> <span>0</span>
用string容器實現大整數比較、加、減、乘和除(用減法實現)(函式版)
這些函式支援2~36進位制,採用的是STL中的string容器。 //big_number_f.h #ifndef BIG_NUMBER_F #define BIG_NUMBER_F #include<iostream> #include<string> #include
用純CSS實現加載中動畫效果
cit one form overflow relative tor -o ica tom HTML <div class="pswp__preloader__icn"> <div class="
用js實現按鈕加減,減到0停止
html程式碼如下: <span class="btngroup"> <button id="btn1" class="
用java實現分數各種運算(加減乘除,求餘,求冪,求兩個數中的較大值,較小值)
package Rational; import java.util.StringTokenizer; /** * @author SunKun * 分數四則運算 */ public class Calculator { int numerator; // 分子 int denominator
用python實現從1加到100的三種方法: for迴圈,while迴圈,匯入模組法
第一種是for迴圈 def sumStartToEnd(start,end): sum = 0 for n in range(start,end+1,1): sum
用C++實現時間的加減運算
#include <iostream> using namespace std; struct Time { int hour; int minute; int second; }; bool AddTime(Time&desTime, const T
Android加殼native實現
本例僅在Android2.3模擬器跑通過,如果要適配其他機型,請自行研究,這裡只是拋磚引玉。 0x00 在Android中的Apk的加固(加殼)原理解析和實現,一文中脫殼程式碼都寫在了java層很容易被識別出來,很多需求需要把脫殼的程式轉移到native層
軟體加殼的原理及實現
加殼的實現 我是個初學者,所知有限,難免會有錯誤,如果有人發現了錯誤,還請指正。 先大致說一下加殼的原理,即在原PE檔案(後面稱之為宿主檔案)上加一個新的區段(也就是殼),然後從這個新的區段上開始執行;也就算是成功的加上了殼;下面我們就說一下具體的實現。