當前位置:首頁 » 編程軟體 » app逆向反編譯如何解加密

app逆向反編譯如何解加密

發布時間: 2023-03-19 19:01:01

① APK反編譯不了,resources.arsc被加密了怎麼破

resources是APK中的資源文件,例如圖片布局等等,android 反編譯的方法,需要用到幾個工具,網路一下都能找到下載地址
dex2jar JD-GUI apktool

反編譯步驟:
1.反編譯Apk得到java源代碼
首先要下載兩個工具:dex2jar和JD-GUI
前者是將apk中的classes.dex轉化成Jar文件,而JD-GUI是一個反編譯工具,可以直接查看Jar包的源代碼。

具體步驟:
1.首先將apk文件,將後綴改為zip,解壓,得到其中的classes.dex,它就是java文件編譯再通過dx工具打包而成的;
2.解壓下載的dex2jar,將classes.dex復制到dex2jar.bat所在目錄。在命令行下定位到dex2jar.bat所在目錄
運行 dex2jar.bat classes.dex
生成 classes.dex.dex2jar.jar

2.反編譯apk生成程序的源代碼和圖片、XML配置、語言資源等文件
還是下載工具,這次用到的是apktool

具體步驟:
將下載的兩個包解壓到同一個文件夾下,應該會有三個文件:aapt.exe,apktool.bat,apktool.jar
1.解壓縮下載的兩個文件包,apktool-install-windows-r04-brut1.tar解壓縮後得到的包里有aapt.exe 和apktool.bat.(注意要把apktool1.4.1.tar解壓後的一個.jar 文件到解壓後的\apktool-install-windows-r04-brut1文件夾里)
2.特別注意:你要反編譯的文件一定要放在C盤的根目錄里

② 如何在反編譯的apk中找到加密演算法

所謂APK指的是Android操作系統的應用程序安裝文件。所謂Crack,簡單地理解為「破解」。我具體指的是反編譯APK文件進行匯編級的代碼分析,並修改或插入自己的代碼,重新簽名打包為APK文件,以達到改變程序原有行為的目的。

由以上的說明可知,我們要Crack一個APK文件,主要流程有三步:反編譯、代碼分析、重新打包簽名。

基本准備

我們需要一些基本的工具進行一些主要的工作。如果你是一個會做Android APK漢化的朋友,那麼你應該對這些工具非常熟悉:

第一個工具是android-apktool,A tool for reengineering Android apk files 。這個工具是我們完成APK Crack的核心,利用它實現APK文件的反編譯和重新打包。它是Google Code上一個非常著名的開源項目,大家可以在Google Code的網頁上獲取它和它的Wiki、源碼及其他相關信息。

第二個工具是Auto-sign。這個工具實現的是APK打包後的簽名工作,屬於一個小工具。

除了這些基本工具外,為了更好的分析代碼,你可能還需要用到一些其他工具,例如:dex2jar和jd-gui等,這里不做詳述。

反編譯

如果你是一個經常漢化APK程序的朋友,那麼反編譯這一步你肯定不會陌生。不過,既然這篇文章側重於基本流程講解,那麼這一步想來是不能省掉的。所以,覺得羅嗦的朋友,請跳過。首先我們需要有一個待反編譯的APK。這里我自己寫了一個HelloWorld的APK,代碼如下:
package com.zh_weir.helloworld;import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

}
復制代碼
我們通過android-apktool對這個APK進行反編譯。對於android-apktool的使用,我就不做太多翻譯的工作,直接給出說明文檔吧。簡單一句話,就是命令行執行。
Apktool v1.3.2 - a tool for reengineering Android apk files
Copyright 2010 Ryszard Wi?niewski <[email protected]>
Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)

Usage: apktool [-v|--verbose] COMMAND [...]

COMMANDs are:
d[ecode] [OPTS] <file.apk> [<dir>]
Decode <file.apk> to <dir>.
OPTS:
-s, --no-src
Do not decode sources.

-r, --no-res
Do not decode resources.

-d, --debug
Decode in debug mode. Check project page for more info.
-f, --force
Force delete destination directory.
-t <tag>, --frame-tag <tag>
Try to use framework files tagged by <tag>.

--keep-broken-res
Use if there was an error and some resources were dropped, e.g.:

"Invalid config flags detected. Dropping resources", but you

want to decode them anyway, even with errors. You will have to

fix them manually before building.

b[uild] [OPTS] [<app_path>] [<out_file>]

Build an apk from already decoded application located in <app_path>.

It will automatically detect, whether files was changed and perform

needed steps only.

If you omit <app_path> then current directory will be used.

If you omit <out_file> then <app_path>/dist/<name_of_original.apk>

will be used.

OPTS:

-f, --force-all

Skip changes detection and build all files.

-d, --debug

Build in debug mode. Check project page for more info.

if|install-framework <framework.apk>

Install framework file to your system.

For additional info, see: http://code.google.com/p/android-apktool/
復制代碼
通過apktool d HelloWorld.apk的命令,我們就完成了一個簡單的APK的反編譯工作。得到了一個叫做「HelloWorld」的文件夾。你可以看見文件夾下有Manifest文件,有反編譯出的res資源文件。這些東西都是平時漢化特別關心的,而不是我們要注意的重點。我們需要注意的是一個叫做「smali」的文件夾。

仔細觀察,你會發現這個文件夾下的文件組織結構和我們的Android工程中java源碼的組織結構幾乎一致。只不過Java文件被.smali的文件取而代之了。我們用文本編輯器打開這些.smali文件,你會發現它們都是可識別的、並且非常「整齊」的文本文件。

③ 如何反編譯經過XenoCode加密後的軟體

解密XenoCode加密的字元串
很多 .net 程序發行時會使用混淆器進行保護,其中 XenoCode 2005 應該說是使用比較多的一個。
XenoCode會使用一個插入的類對程序集中的字元串進行保護。
本文將結合 Reflector 和反射技術解密程序集中被加密的字元串。

首先,我們使用 Reflector 對原程序進行 Disassembler,找到我們要解密的字元串代碼。

如:
this.x80bb7e5ddf294933.SerialNumber = string.Intern(x1110bdd110cdcea4._d574bb1a8f3e9cbc("\udbac\ue2b7\ue9bb\uf0af\uf7b8\ufeb3\u05a8\u0c61", 0x555ddb55));

找到要解密的字元串以後,開始編寫反射調用代碼。

class Program
{
public static void Main()
{
// 載入程序集,test.exe 為被混淆的程序集文件名。
Assembly asm = Assembly.LoadFrom(@"test.exe");

// 獲取XenoCode插入的解密類型(包含其namespace),對應上面字元串前面的類名,每次混淆結果可能都不同。
Type type = asm.GetType("x293b01486f981425.x1110bdd110cdcea4");

// 字元串參數和解密參數
object[] parameters = {"\udbac\ue2b7\ue9bb\uf0af\uf7b8\ufeb3\u05a8\u0c61", 0x555ddb55};
Type[] paramTypes = new Type[parameters.Length];
for (int i = 0; i < parameters.Length; i++)
paramTypes = parameters.GetType();

// 調用解密方法
BindingFlags flags = BindingFlags.Public | BindingFlags.Static;
MethodInfo method = type.GetMethod("_d574bb1a8f3e9cbc", flags, null, paramTypes, null);
object result = method.Invoke(null, parameters);

// 顯示解密結果
Console.WriteLine(result);

Console.WriteLine("Press Enter key to exit...");
Console.ReadLine();
}
}

④ 防止自己的APP被反編譯或破解,通常有哪些方法

混淆代碼:
Android APP的源碼進行混淆後混淆器將代碼中的所有變數、函數、類的名稱加密為簡短的英文字母代號,在APP被破解後增加破解者對代碼的閱讀難度。 但是混淆的功效只能運作在APP已經被破解後,而且只是增加破解者的難度時間,對其防止破解的作用意義不是很大。
防二次打包:
二次打包是指將APK拆包後重新打包,二次打包必將丟失原有的簽名。大多數的Android開發者都是將簽名信息作為認證標准,所以只要原有的簽名信息改變,APK就無法正常運行。但是如果將這個認證信息功能屏蔽掉,防二次打包就失效了!
我們先通過APK安全保護平台,對這款Android APK進行安全保護。
步驟如下:
登錄/注冊→上傳APK→等待系統加密→完成後下載APK→給APK簽名→完成!

注意:
在APK源代碼安全保護平台,個人信息要填寫完整,否則無法正常使用。APK加密完成後,系統會發出郵件通知加密完成。最後下載APK包再次完成簽名,就可以正常使用了!

⑤ 作者開發的app進入需要密碼,怎麼破解

密碼存儲在本地,一般存儲在文件,注冊表,資料庫,也有直接寫到軟體里。
明文存儲,用調試工具跟蹤執行到密碼判斷的代碼,一般是一個比較語句:如果(輸入)=(密碼),在計算機內存中就能看到密碼。密碼可逆加密存儲,一種情況程序中把加密密碼解密後,還是明文比較,我們同樣能在內存中看到密碼。一種情況是非明文比較,一般需要閱讀匯編代碼或偽代碼或腳本。弄明白加密演算法,自己寫解密演算法。把存儲的加密密碼解密。密碼加密不可逆,一般很難破解到密碼。

⑥ 愛加密app加密原理是什麼apk反逆向保護如何做到的

愛加密app加密原理是對apk進行加殼,隱藏源代碼,已達到防止反編譯的目的,大牛測試過,確實很強大。對apk反逆向保護很有效。盜版現在確實太嚴重了,不加密不行呀,你可以去體驗下愛加密,只需注冊,完善信息就可以免費app加密.

⑦ 如何給自己的app加密,怎樣防止反編譯資源文件和防二次打包要怎麼做

app加密,防反編譯的辦法有很多。代碼混淆(proguard)也可以使用偽加密(apk本身是zip,對zip末尾加位元組的方式防止apktool逆向,但是該方法在電腦上有些手機助手無法識別apk文件,手機上可以識別)。還有就是可以交給第三方的加密平台,不需要什麼技術要求。同時也可以在XML文件查看有沒有添加東西。有家叫做愛加密的免費平台還不錯。

⑧ 軟體加密如何解除

vivo手機取消軟體加密的方法:

OriginOS/iQOOUI/FuntouchOS3.0以上系統機型:
(1)i管家--實用工具--隱私保護--應用加密--輸入隱私密碼--應用加密--關閉軟體後的開關。


(譽兄2)進入設置--指紋、面部與密碼/指紋與密碼/面部與密碼--隱私與應用加密--輸入隱私密碼--應用加密--關閉軟體後面的開關。
FuntouchOS3.0以下系統機型:進入「i管家」--軟體管理--軟體鎖--輸入加密密碼--點擊「陵虛禪已加鎖」,尺塵即可取消。

更多使用疑惑可點擊此鏈接咨詢在線客服反饋

⑨ Android APP加密方法都有哪些

安卓APP加密的方法主要分成三類:源碼加密、數據安全和應用保護,而每一類又分成好幾個小項。
源碼加密包括:Dex文件保護、防二次打包、so文件保護、資源文件保護。以Dex文件保護為例,Dex文件保護又包括:高級混淆、DEX文件加殼、DEX文件加花、動態類載入、內存防mp。
高級混淆:代碼混淆,可以降低代碼可讀性、縮小包大小。
DEX文件加殼:相當於把源碼打包至其他文件夾下,逆向工具對加密後的dex文件解析,只能看到殼文件,可以防止解包後看到真正的源碼。愛加密利用挖空技術實現函數級加密,安全強度高,啟動效率快。
dex加花:由於大部分逆向工具都是線性讀取位元組碼並解析,當遇到無效位元組碼時就會引起反編譯工具位元組碼解析失敗。愛加密插入無效位元組碼到dex文件之中,同時保證該位元組碼永遠不會被執行,否則程序運行也會崩潰。這樣,就能起到反編譯的作用了。
dex動態類載入:愛加密加固後的dex文件源碼可以動態分離,在運行時,將源碼分段載入到內存當中。
內存防mp:程序運行時會釋放代碼,內存防mp可以防止程序運行時被劫持。
應用安全包括:log日誌輸入屏蔽、應用清場。清場技術依賴於雲端黑名單、白名單DB,應用每次啟動後便自動進行本地的黑名單、白名單DB數據更新,若檢測到有異常情況,則可對用戶進行提示。
數據安全包括:頁面防劫持、本地數據保護、截屏保護、內存數據防查詢、協議加密、虛擬鍵盤。

熱點內容
建行手機app忘記密碼如何修改 發布:2024-04-27 08:58:59 瀏覽:392
蟻群演算法的數學模型 發布:2024-04-27 08:58:39 瀏覽:993
androidactivity生命 發布:2024-04-27 07:33:48 瀏覽:84
win2008伺服器搭建網站 發布:2024-04-27 07:26:51 瀏覽:640
java的vector 發布:2024-04-27 07:05:00 瀏覽:204
舊電腦共享伺服器 發布:2024-04-27 06:32:21 瀏覽:339
java程序練習 發布:2024-04-27 06:24:00 瀏覽:438
sql30 發布:2024-04-27 06:22:10 瀏覽:55
怎樣防止sql注入 發布:2024-04-27 06:11:25 瀏覽:236
安卓為什麼不能登蘋果系統的游戲 發布:2024-04-27 06:11:23 瀏覽:601