導航:首頁 > 源碼編譯 > 手機軟體反編譯後無法打開

手機軟體反編譯後無法打開

發布時間:2022-07-04 20:42:58

『壹』 android APK中的classes.dex反編譯成jar怎麼無法運行。

Android 是 .apk 文件
網上有反編譯的軟體 可以反編譯成源代碼,你可以去網上找找,我用的是 jd-gui-0.3.3
但是,一般來說 程序員在 開發完成後都會混淆打包,即使是反編譯出來,也會有很多 abcdefg,,,, 表示的亂碼
有的軟體 沒混淆 就可以得到源碼,但是這樣的軟體 一般都能在網上找到開源的相關的代碼
祝你成功 !

『貳』 反編譯手機軟體

手機的安裝包後綴是.apk,電腦應用後綴是.exe。因為手機和電腦運行方式編譯不同,所以電腦自然運行不了手機軟體。
對於反編譯來講,mt管理器,找到安裝包第一個文件夾,打開慢慢找到一個代碼叫:
Android: Width (dp)
修改就可以修改界面寬度。

『叄』 為什麼我用show java手機版反編譯出來的工程用AIDE打開會有很多錯誤

本文詳細介紹了如何反編譯一個未被混淆過的Android APK,修改smali位元組碼後,再回編譯成APK並更新簽名,使之可正常安裝。破譯後的apk無論輸入什麼樣的用戶名和密碼都可以成功進入到第二個Activity。
有時難免要反編譯一個APK,修改其中的若干關鍵判斷點,然後再回編譯成一個全新的可用的apk,這完全是可實現的。若要完成上述工作,需要以下工具,雜家後面會把下載鏈接也附上。這些軟體截止本文發布時,經過雜家確認都是最新的版本。
1.APK-Multi-Toolv1.0.11.zip 用它來反編譯apk,得到smali類型的源碼和資源文件。一般來講,直接解壓縮一個apk也可以看到其資源文件,但部分xml是不可閱讀的,需用此工具反編譯。網上流傳較廣的是一個經過高人漢化過的版本1.0.3,第一次使用這個工具可以用這個漢化的版本,熟悉其命令。但經過雜家測試,這個漢化的版本再回編譯apk簽名時已經出問題了,簽不了,最終用的最新版才ok。
2.dex2jar-0.0.9.15.zip 用於將一個apk文件轉換成jar類型的文件,轉換之後再利用下面的jd-gui工具才能看到其java代碼。上面的apk-tool固然強大,但是反編譯出來是smali文件,即dalvik位元組碼,類似匯編語言的一種代碼,直接閱讀如天書一樣,為此我們需要使用dex2jar + jd-gui來得到其java代碼,進行閱讀找到要修改的關鍵點。
3.jd-gui-0.3.6.windows.zip 可以打開一個jar類型的文件,看到java代碼。並能將代碼保存,保存後再弄到sourceinsight里就方便看了。最好使用本文所說的最新版本,使用老版本會發現一個BActivity,如果裡面有內部類,則又多出一個BActivity$1.java,類似這種文件。新版本沒這個問題。
4.Smali2Java.1.0.0.558.zip 用於將smali文件轉成java文件,這個工具僅僅是備用。因為用上面三個工具已經能夠勝任本文的要求了。
如果第一次接觸反編譯,不了解smali語法,可以閱讀鏈接1 鏈接2
下面雜家先上一個Android APK,用來簡單模擬用戶登錄的情況,注意只能是模擬哈。因為正式的apk很少有在本地進行判斷的。此apk要求用戶輸入用戶名和密碼,如果用戶名為yanzi,密碼為123,則認為合法,自動跳轉到第二個Activity。否則提示用戶名或密碼不正確。

<span style="font-family:Comic Sans MS;font-size:18px;">package org.yanzi.decomdemo.activity;

import org.yanzi.decompiledemo.R;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class LoginActivity extends Activity {

EditText loginName = null;
EditText loginPswd = null;
Button loginBtn = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
initUI();
loginBtn.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(isAllowLogin()){
Intent intent = new Intent(LoginActivity.this, SecondActivity.class);
startActivity(intent);
LoginActivity.this.finish();
}
}
});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.login, menu);
return true;
}
private void initUI(){
loginName = (EditText)findViewById(R.id.edit_login_name);
loginPswd = (EditText)findViewById(R.id.edit_login_pswd);
loginBtn = (Button)findViewById(R.id.btn_login);
}
private boolean isAllowLogin(){
String name = loginName.getText().toString().trim();
String pswd = loginPswd.getText().toString().trim();
if(name != null && pswd != null){
if(name.equals("") || pswd.equals("")){
Toast.makeText(this, "密碼或用戶名不能為空", Toast.LENGTH_SHORT).show();
return false;
}
}
if(name.equals("yanzi") && pswd.equals("123")){
return true;
}else{
Toast.makeText(getApplicationContext(), "用戶名或密碼不符", Toast.LENGTH_SHORT).show();
}
return false;
}

}
</span>

附上出處鏈接:http://blog.csdn.net/yanzi1225627/article/details/38425453

『肆』 apktool 反編譯apk後怎麼打開

1.下載反編譯工具
需要下載四個工具:dex2jar、JD-GUI、apktool、apktool-install-windows-r05-ibot
dex2jar:將apk中的classes.dex轉化成Jar文件。
JD-GUI:反編譯工具,可以直接查看Jar包的源代碼。
apktool:反編譯工具,通過反編譯APK中XML文件,直接可以查看。
apktool-install-windows-r05-ibot:輔助windows批處理工具。

2.解壓縮APK包
apk文件也是一種常見的zip,常用的壓縮軟體就可輕松地解壓apk文件。用壓縮軟體將apk文件中的文件解壓到一個文件夾中,得到APK中的資源包括XML文件和classes.dex文件,classes.dex就是java文件編譯再通過dx工具打包而成的。

3.反編譯dex文件
解壓apk文件後,你會發現res目錄的圖片沒有加密,但java源碼編譯成了一個classes.dex文件,無法用普通的反編譯class文件的方法來處理,dex2jar可以將dex文件轉換成普通的jar包。
解壓下載的dex2jar,把解壓後的文件夾放到系統盤跟目錄中並把這個目錄加到系統path變數中,就可以直接用:dex2jar.bat或dex2jar.sh轉換dex文件了。
DOS行命令如下:dex2jar.bat xx\classes.dex(xx是classes.dex文件所在的路徑)。
將在同目錄得到普通jar包:classes_dex2jar.jar,就可以用處理普通jar包的方法來反編譯這個jar包得到原文件。

4.反編譯jar包
得到jar包後,下載自已喜歡的反編譯工具,推薦使用JD-GUI,有比較簡單的圖形界面,可以反編譯單個class文件,也可以反編譯jar包,比較方便。
打開壓縮文件JD-GUI,運行jd-gui.exe,打開上面生成的jar包,即可看到源代碼了。

5.反編譯xml文件
打開解壓的res\layout目錄,有很多xml文件,如果你想看下作者是如何設計界面的,你會很失望,因為你看到的是一大堆亂碼!這個時候我們需要用到的是apktool。
具體操作方法:將下載的apktool和apktool-install-windows-r05-ibot兩個包解壓到同一個文件夾下,這個文件夾有三個文件:aapt.exe,apktool.bat,apktool.jar。把這個文件夾也放到系統盤的根目錄中並把這個目錄加到path變數中。以HelloWord.apk為例:
在DOS命令行中輸入:apktool d xx\HelloWord.apk HelloWord得到HelloWord文件夾,此文件夾中的xml文件就是編譯好的可以正常查看的文件。
這樣就得到了可以得到編譯的源碼和XML資源。
注意:文件的路徑中最好不要出現中文!

『伍』 在手機反編譯軟體完成安裝之後軟體無法打開,求解,

這樣的情況只能是軟體和系統不兼容導致,可能如那就不本身的問題,可以在正規應用軟體里下載這款軟體,如應用寶,這個兼容性要好不少。

『陸』 od反編譯打開程序失敗

被反編譯了。
如果提示錯誤,那就是被反編譯了,由於反編譯出來的是位元組碼,所以需要修改軟體邏輯,修改完代碼邏輯後,就要重新打包成APK文件了。
到此就成功打包了一個新的apk文件了,但還不要高興得太早,該文件是一個沒有簽名的apk,有了解過android的應該都知道,沒有簽名是無法安裝的。那就要重新為該文件簽一下名了。把你的簽名文件和apk拷到同一個目錄下,然後執行以後語句即可。

『柒』 有些軟體反編譯後再編譯回來不能用,是什麼回事呢

原因可能有很多。。不過你要是只替換圖片的話,直接用winrar 打開,替換,不用簽名應該就可以

『捌』 利用apktool 反編譯後簽名為什麼不能運行

apktool反編譯之後重新編譯的文件可能無法常運行。如果你只是修改了語言文件,可以在重新編譯以後,用壓縮軟體提取出resources.arsc文件,替換掉原軟體中的同名文件。注意這個文件不要壓縮(用WinRAR替換該文件的話,壓縮方式選「存儲」),否則可能有問題。也可以試試用原來的apk裡面的classes.dex文件將新軟體包裡面的那個替換掉。這樣一般可以運行。

『玖』 我用show java反編譯的apk,裡面的jpg和png打不開,如果是加密的有辦法嗎

可以嘗試使用其它反編譯軟體反編譯一下APK,看看能不能正常。比如apktool
至於jpg或png是否為加密,得看了文件數據才能知道。

『拾』 請教Camera 360 1.8利用apktool 反編譯後再編譯簽名為什麼不能運行

apktool
反編譯之後重新編譯的文件可能無法常運行。如果你只是修改了語言文件,可以在重新編譯以後,用壓縮軟體提取出
resources.arsc
文件,替換掉原軟體中的同名文件。注意這個文件不要壓縮(用
WinRAR
替換該文件的話,壓縮方式選「存儲」),否則可能有問題。也可以試試用原來的
apk
裡面的
classes.dex
文件將新軟體包裡面的那個替換掉。這樣一般可以運行。
查看原帖>>

閱讀全文

與手機軟體反編譯後無法打開相關的資料

熱點內容
噴油螺桿製冷壓縮機 瀏覽:581
python員工信息登記表 瀏覽:377
高中美術pdf 瀏覽:161
java實現排列 瀏覽:513
javavector的用法 瀏覽:982
osi實現加密的三層 瀏覽:233
大眾寶來原廠中控如何安裝app 瀏覽:916
linux內核根文件系統 瀏覽:243
3d的命令面板不見了 瀏覽:526
武漢理工大學伺服器ip地址 瀏覽:149
亞馬遜雲伺服器登錄 瀏覽:525
安卓手機如何進行文件處理 瀏覽:71
mysql執行系統命令 瀏覽:930
php支持curlhttps 瀏覽:143
新預演算法責任 瀏覽:444
伺服器如何處理5萬人同時在線 瀏覽:251
哈夫曼編碼數據壓縮 瀏覽:428
鎖定伺服器是什麼意思 瀏覽:385
場景檢測演算法 瀏覽:617
解壓手機軟體觸屏 瀏覽:352