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

  • 大小: 5.75MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2023-10-21
  • 語言: 其他
  • 標簽: apk加殼??

資源簡介

折騰一天,終于搞定了(收1分,折騰一天不容易哈),之前一直對包含資源文件的apk加殼運行不通過,這個demo實現了對包含資源文件的apk進行加殼,demo里面包含了所有的工程和最后完整加殼的apk,參考博客:http://blog.csdn.net/jiangwei0910410003/article/details/48415225

資源截圖

代碼片段和文件信息

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??2016-03-22?16:39??AndroidJG\
?????目錄???????????0??2015-09-13?12:47??AndroidJG\DexShellTools\
?????文件?????????301??2015-08-27?15:06??AndroidJG\DexShellTools\.classpath
?????文件?????????389??2015-08-27?17:15??AndroidJG\DexShellTools\.project
?????目錄???????????0??2015-09-13?12:47??AndroidJG\DexShellTools\.settings\
?????文件?????????598??2015-08-27?15:06??AndroidJG\DexShellTools\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2016-03-22?15:46??AndroidJG\DexShellTools\bin\
?????目錄???????????0??2016-03-22?15:46??AndroidJG\DexShellTools\bin\com\
?????目錄???????????0??2016-03-22?15:46??AndroidJG\DexShellTools\bin\com\example\
?????目錄???????????0??2016-03-22?15:46??AndroidJG\DexShellTools\bin\com\example\reforceapk\
?????文件????????4396??2016-03-22?15:46??AndroidJG\DexShellTools\bin\com\example\reforceapk\mymain.class
?????目錄???????????0??2016-03-22?16:36??AndroidJG\DexShellTools\force\
?????文件?????1150562??2016-03-22?16:36??AndroidJG\DexShellTools\force\classes.dex
?????文件??????321798??2016-03-22?16:35??AndroidJG\DexShellTools\force\ForceApkObj.apk
?????文件??????828760??2016-03-22?16:35??AndroidJG\DexShellTools\force\ForceApkObj.dex
?????目錄???????????0??2015-09-13?12:47??AndroidJG\DexShellTools\src\
?????目錄???????????0??2015-09-13?12:47??AndroidJG\DexShellTools\src\com\
?????目錄???????????0??2015-09-13?12:47??AndroidJG\DexShellTools\src\com\example\
?????目錄???????????0??2015-09-13?12:47??AndroidJG\DexShellTools\src\com\example\reforceapk\
?????文件????????4823??2015-09-08?09:48??AndroidJG\DexShellTools\src\com\example\reforceapk\mymain.java
?????目錄???????????0??2016-03-22?15:46??AndroidJG\ForceApkObj\
?????文件?????????475??2016-03-22?15:46??AndroidJG\ForceApkObj\.classpath
?????文件?????????847??2015-08-27?15:07??AndroidJG\ForceApkObj\.project
?????目錄???????????0??2016-03-22?15:46??AndroidJG\ForceApkObj\.settings\
?????文件?????????177??2016-03-22?15:46??AndroidJG\ForceApkObj\.settings\org.eclipse.jdt.core.prefs
?????文件?????????892??2015-08-28?09:59??AndroidJG\ForceApkObj\AndroidManifest.xml
?????目錄???????????0??2015-08-27?15:07??AndroidJG\ForceApkObj\assets\
?????目錄???????????0??2016-03-22?16:35??AndroidJG\ForceApkObj\bin\
?????文件?????????892??2016-03-22?16:35??AndroidJG\ForceApkObj\bin\AndroidManifest.xml
?????目錄???????????0??2016-03-22?16:35??AndroidJG\ForceApkObj\bin\classes\
?????文件??????817684??2016-03-22?16:35??AndroidJG\ForceApkObj\bin\classes.dex
............此處省略270個文件信息

評論

共有 條評論

相關資源