国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

apk文件解析,學習筆記

2019-11-17 01:26:07
字體:
來源:轉載
供稿:網友

apk文件解析,學習筆記

Android應用程序包文件(APK) 是一種Android操作系統上的應用程序安裝文件格式,其英文全稱為application package file”

如果懂得使用反編譯工具,可以下載apk解析工具,獲得反編譯代碼。

需要下載:SharpZipLib.ziphttp://www.icsharpcode.net/opensource/sharpziplib/download.aspx

主要方法如下

using ICSharpCode.SharpZipLib.Zip;

public static Dictionary<object, object> getPackageInfo(string path){

Dictionary<object, object> returnMap = new Dictionary<object, object>();returnMap.Add("版本編號(VersionCode)", "");returnMap.Add("版本名稱(VersionName)", "");returnMap.Add("包名(Package)", "");returnMap.Add("簽名(Sig)", "");returnMap.Add("啟動activity", "");returnMap["證書有效期"] = "";returnMap["證書過期時間"] = "";returnMap["證書Hash"] = "";returnMap["證書md5"] = "";returnMap["PublicKey"] = "";List<string> list = new List<string> { ".DSA", ".RSA" };if (string.IsNullOrWhiteSpace(path)){throw new Exception("文件路徑不正確:" + path);}string str = "";if (path.LastIndexOf(".") >= 0){str = path.Substring(path.LastIndexOf("."));}if (".apk".Equals(str, StringComparison.OrdinalIgnoreCase)){try{ZipInputStream zip = new ZipInputStream(File.OpenRead(path));ZipEntry zipEntry = null;while ((zipEntry = zip.GetNextEntry()) != null){string fileName = Path.GetFileName(zipEntry.Name);if ((fileName != null) && (fileName.LastIndexOf(".") >= 0)){string item = fileName.Substring(fileName.LastIndexOf("."));if ("AndroidManifest.xml".Equals(fileName, StringComparison.OrdinalIgnoreCase)){getPackageDetails(zip, zipEntry, returnMap);}else if (list.Contains(item)){getSig(zip, zipEntry, returnMap);}}}zip.Close();}catch (Exception exception){throw new Exception("解析apk包錯誤:" + exception.Message);}}return returnMap;}

PRivate static void getSig(ZipInputStream zip, ZipEntry zipEntry, Dictionary<object, object> returnMap){MemoryStream stream = new MemoryStream();byte[] rawCertData = new byte[0x400];int count = 0;while ((count = zip.Read(rawCertData, 0, 0x400)) > 0){stream.Write(rawCertData, 0, count);}stream.Seek(0L, SeekOrigin.Begin);string str = "";X509Certificate certificate = new X509Certificate(stream.GetBuffer());returnMap["證書有效期"] = certificate.GetEffectiveDateString();returnMap["證書過期時間"] = certificate.GetExpirationDateString();returnMap["證書Hash"] = certificate.GetCertHashString();returnMap["證書MD5"] = BitConverter.ToString(MD5.Create().ComputeHash(certificate.GetRawCertData())).Replace('-', ':');returnMap["PublicKey"] = certificate.GetPublicKeyString();rawCertData = certificate.GetRawCertData();byte[] buffer2 = SHA1.Create().ComputeHash(certificate.GetRawCertData());for (int i = 0; i < buffer2.Length; i++){str = str + ((sbyte) buffer2[i]);}stream.Close();returnMap["簽名(Sig)"] = str;}

apk文件上傳大小限制,web.config文件添加如下:

<system.web> <httpRuntime maxRequestLength="1073741824" executionTimeout="3600" /> </system.web>

<system.webServer> <security> <requestFiltering>

<requestLimits maxAllowedContentLength="1073741824"> </requestLimits> </requestFiltering> </security> </system.webServer>


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洪湖市| 襄樊市| 安岳县| 凤庆县| 蓬安县| 綦江县| 安阳市| 上林县| 宜章县| 武宣县| 田林县| 永州市| 太和县| 中阳县| 合川市| 西畴县| 拜泉县| 嘉鱼县| 大田县| 栖霞市| 泾阳县| 会泽县| 剑川县| 名山县| 罗定市| 南汇区| 金山区| 亚东县| 马关县| 盐山县| 钦州市| 洮南市| 漾濞| 永新县| 马边| 宝坻区| 云梦县| 丽江市| 泉州市| 玛纳斯县| 乌恰县|