當前位置:九游会j9娱乐平台-九游ag登录中心网址 » 編程軟體 » submittext3匯編編譯不出來

submittext3匯編編譯不出來-九游会j9娱乐平台

發布時間: 2024-07-03 10:00:24

1. 為什麼我用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。否則提示用戶名或密碼不正確。

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;
}

}


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

2. mac book pro下如何編譯和運行匯編程

匯編程序由定義好的段構成,每個段都有不同的目的,三個最常用的段:

1)data 段

匯編程序data(數據)段是可選的。

數據段聲明帶有初始值的數據元素,這些數據元素用作匯編程序的變數。

2)bss 段

匯編程序bss段 是可選的。

bss段聲明使用零(或 null)值初始化的數據元素。這些元素最常用作匯編程序中的緩沖區

3)text 段

匯編程序必須有 text(文本)段。

這個段是 在可執行程序內聲明指令碼 的地方。

定義段:

gnu匯編器使用 .section 命令語句聲明段。

.section 語句只使用一個參數------它聲明的段的類型

熱點內容
resin下jsp不能正常編譯 發布:2024-07-17 16:34:44 瀏覽:229
sqlserver如何切換主備伺服器 發布:2024-07-17 16:23:02 瀏覽:299
mc18伺服器ip 發布:2024-07-17 16:23:02 瀏覽:379
仙境傳說手游腳本 發布:2024-07-17 16:09:24 瀏覽:691
matlab命令窗口和新建腳本 發布:2024-07-17 15:51:26 瀏覽:375
建ftp文件夾 發布:2024-07-17 15:51:26 瀏覽:955
魔獸撿物腳本 發布:2024-07-17 15:27:56 瀏覽:130
開發ip伺服器 發布:2024-07-17 15:24:42 瀏覽:388
安卓系統視頻製作哪個好用 發布:2024-07-17 15:10:47 瀏覽:210
androidapk結構 發布:2024-07-17 15:10:43 瀏覽:945
网站地图