91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 5.30M
    文件類型: .zip
    金幣: 1
    下載: 0 次
    發布日期: 2025-05-09
  • 語言: 其他
  • 標簽: 其他??

資源簡介

Android中對Apk加固原理解析的最好例子,通過一個例子來講解Android中加固Apk的原理

資源截圖

代碼片段和文件信息

package?com.example.reforceapk;

import?java.io.ByteArrayOutputStream;
import?java.io.File;
import?java.io.FileInputStream;
import?java.io.FileOutputStream;
import?java.io.IOException;
import?java.security.MessageDigest;
import?java.security.NoSuchAlgorithmException;
import?java.util.zip.Adler32;


public?class?mymain?{
/**
?*?@param?args
?*/
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
try?{
File?payloadSrcFile?=?new?File(“force/ForceApkObj.apk“);???//需要加殼的程序
System.out.println(“apk?size:“+payloadSrcFile.length());
File?unShellDexFile?=?new?File(“force/ForceApkObj.dex“); //解客dex
byte[]?payloadArray?=?encrpt(readFileBytes(payloadSrcFile));//以二進制形式讀出apk,并進行加密處理//對源Apk進行加密操作
byte[]?unShellDexArray?=?readFileBytes(unShellDexFile);//以二進制形式讀出dex
int?payloadLen?=?payloadArray.length;
int?unShellDexLen?=?unShellDexArray.length;
int?totalLen?=?payloadLen?+?unShellDexLen?+4;//多出4字節是存放長度的。
byte[]?newdex?=?new?byte[totalLen];?//?申請了新的長度
//添加解殼代碼
System.arraycopy(unShellDexArray?0?newdex?0?unShellDexLen);//先拷貝dex內容
//添加加密后的解殼數據
System.arraycopy(payloadArray?0?newdex?unShellDexLen?payloadLen);//再在dex內容后面拷貝apk的內容
//添加解殼數據長度
System.arraycopy(intToByte(payloadLen)?0?newdex?totalLen-4?4);//最后4為長度
????????????//修改DEX?file?size文件頭
fixFileSizeHeader(newdex);
//修改DEX?SHA1?文件頭
fixSHA1Header(newdex);
//修改DEX?CheckSum文件頭
fixCheckSumHeader(newdex);

String?str?=?“force/classes.dex“;
File?file?=?new?File(str);
if?(!file.exists())?{
file.createNewFile();
}

FileOutputStream?localFileOutputStream?=?new?FileOutputStream(str);
localFileOutputStream.write(newdex);
localFileOutputStream.flush();
localFileOutputStream.close();


}?catch?(Exception?e)?{
e.printStackTrace();
}
}

//直接返回數據,讀者可以添加自己加密方法
private?static?byte[]?encrpt(byte[]?srcdata){
for(int?i?=?0;i srcdata[i]?=?(byte)(0xFF?^?srcdata[i]);
}
return?srcdata;
}

/**
?*?修改dex頭,CheckSum?校驗碼
?*?@param?dexBytes
?*/
private?static?void?fixCheckSumHeader(byte[]?dexBytes)?{
Adler32?adler?=?new?Adler32();
adler.update(dexBytes?12?dexBytes.length?-?12);//從12到文件末尾計算校驗碼
long?value?=?adler.getValue();
int?va?=?(int)?value;
byte[]?newcs?=?intToByte(va);
//高位在前,低位在前掉個個
byte[]?recs?=?new?byte[4];
for?(int?i?=?0;?i? recs[i]?=?newcs[newcs.length?-?1?-?i];
System.out.println(Integer.toHexString(newcs[i]));
}
System.arraycopy(recs?0?dexBytes?8?4);//效驗碼賦值(8-11)
System.out.println(Long.toHexString(value));
System.out.println();
}


/**
?*?int?轉byte[]
?*?@param?number
?*?@return
?*/
public?static?byte[]?intToByte(int?number)?{
byte[]?b?=?new?byte[4];
for?(int?i?=?3;?i?>=?0;?i--)?{
b[i]?=?(byte)?(number?%?256);
number?>>=?8;
}
return?b;
}

/**
?*?修改dex頭?sha1值
?*?@param?dexBytes
?*?@t

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-09-13?04:48??Apk加固Demo\
?????目錄???????????0??2015-09-13?04:48??Apk加固Demo\ReforceApk\
?????文件?????????563??2015-08-27?07:05??Apk加固Demo\ReforceApk\project.properties
?????文件?????????781??2015-08-12?12:45??Apk加固Demo\ReforceApk\proguard-project.txt
?????文件???????51394??2015-08-12?12:45??Apk加固Demo\ReforceApk\ic_launcher-web.png
?????文件????????1304??2015-08-28?05:32??Apk加固Demo\ReforceApk\AndroidManifest.xml
?????文件?????????846??2015-08-12?12:45??Apk加固Demo\ReforceApk\.project
?????文件?????????475??2015-08-12?12:47??Apk加固Demo\ReforceApk\.classpath
?????目錄???????????0??2015-09-13?04:48??Apk加固Demo\ForceApkObj\
?????文件?????????563??2015-08-28?01:58??Apk加固Demo\ForceApkObj\project.properties
?????文件?????????781??2015-08-27?07:07??Apk加固Demo\ForceApkObj\proguard-project.txt
?????文件???????51394??2015-08-27?07:07??Apk加固Demo\ForceApkObj\ic_launcher-web.png
?????文件?????????892??2015-08-28?01:59??Apk加固Demo\ForceApkObj\AndroidManifest.xml
?????文件?????????847??2015-08-27?07:07??Apk加固Demo\ForceApkObj\.project
?????文件?????????475??2015-08-27?07:08??Apk加固Demo\ForceApkObj\.classpath
?????目錄???????????0??2015-09-13?04:47??Apk加固Demo\DexShellTools\
?????文件?????????389??2015-08-27?09:15??Apk加固Demo\DexShellTools\.project
?????文件?????????301??2015-08-27?07:06??Apk加固Demo\DexShellTools\.classpath
?????目錄???????????0??2015-08-12?12:45??Apk加固Demo\ReforceApk\assets\
?????目錄???????????0??2015-09-13?04:48??Apk加固Demo\ReforceApk\src\
?????目錄???????????0??2015-09-13?04:48??Apk加固Demo\ReforceApk\res\
?????目錄???????????0??2015-09-13?04:48??Apk加固Demo\ReforceApk\libs\
?????文件??????758727??2015-08-12?12:45??Apk加固Demo\ReforceApk\libs\android-support-v4.jar
?????目錄???????????0??2015-09-13?04:48??Apk加固Demo\ReforceApk\gen\
?????目錄???????????0??2015-09-13?04:48??Apk加固Demo\ReforceApk\bin\
?????文件???????16370??2015-09-08?01:49??Apk加固Demo\ReforceApk\bin\resources.ap_
?????文件??????298062??2015-09-08?01:49??Apk加固Demo\ReforceApk\bin\ReforceApk.apk
?????文件?????????120??2015-09-10?02:49??Apk加固Demo\ReforceApk\bin\jarlist.cache
?????文件??????828816??2015-09-08?01:49??Apk加固Demo\ReforceApk\bin\classes.dex
?????文件????????1304??2015-09-09?02:47??Apk加固Demo\ReforceApk\bin\AndroidManifest.xml
?????目錄???????????0??2015-09-13?04:48??Apk加固Demo\ReforceApk\.svn\
............此處省略263個文件信息

評論

共有 條評論