欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    毒軟件幾乎是每臺電腦的必須品,隨著電腦技術的日益提高,幾乎每個用電腦的人都遇到過計算機病毒,因此殺毒軟件也是比不可少的。但是,對病毒和殺毒軟件的認識許多人還存在著誤區。殺毒軟件雖然可以幫助電腦攔截多數病毒并查殺,但是也并非萬能的,畢竟殺毒軟件再高明,也總有漏洞,而黑客也總會找到漏洞,躲避殺毒軟件的漏洞來攻擊電腦。因此清楚地認識殺毒軟件是必須的,只有認清了殺毒軟件,才不會陷入殺毒軟件的誤區中。

    • 軟件版本:
    • 軟件大小:
    • 軟件授權:
    • 適用平臺:
    • http://dl.pconline.com.cn/download/64450.html

    以下是幾點要注意的誤區,希望能幫到大家。

    誤區一:好的殺毒軟件可以查殺所有的病毒

    據我們所知,殺毒軟件的查殺總比病毒來慢了一步。這是因為病毒是根據殺毒軟件的漏洞來攻擊計算機的,那么就必然是建立在殺毒軟件的基礎上,殺軟廠商要對病毒進行攔殺,就要先截獲病毒,并對其進行分析,然后才能修補漏洞或者增加殺軟的病毒庫,進行查殺。所以,很多人都以為殺毒軟件是萬能的,這是不正確的。

    雖然,目前許多殺毒軟件廠商都在不斷努力查殺未知病毒,有些廠商甚至宣稱可以100%殺未知病毒。不幸的是,經過專家論證這是不可能的。殺毒軟件廠商只能盡可能地去發現更多的未知病毒,但還遠遠達不到100%的標準。

    甚至,至于一些已知病毒,比如覆蓋型病毒。由于病毒本身就將原有的系統文件覆蓋了。因此,即使殺毒軟件將病毒殺死也不能恢復操作系統的正常運行。

    誤區二:我的機器沒重要數據,有病毒重裝系統,不用殺毒軟件

    許多電腦用戶,特別是一些網絡游戲玩家,認為自己的計算機上沒有重要的文件。計算機感染病毒,直接格式化重新安裝操作系統就萬事大吉,不用安裝殺毒軟件。這種觀點是不正確的。

    幾年前,病毒編寫者撰寫病毒主要是為了尋找樂趣或是證明自己。這些病毒往往采用高超的編寫技術,有著明顯的發作特征(比如某月某日發作,刪除所有文件等等)。

    但是,近幾年的病毒已經發生了巨大的變化,病毒編寫者以獲取經濟利益為目的。病毒沒有明顯的特征,不會刪除用戶計算機上的數據。但是,它們會在后臺悄悄運行,盜取游戲玩家的賬號信息、QQ密碼甚至是銀行卡的賬號。由于這些病毒可以直接給用戶帶來經濟損失。對于個人用戶來說,它的危害性比傳統的病毒更大。

    對于此種病毒,往往發現感染病毒時,用戶的賬號信息就已經被盜用。即使格式化計算機重新安裝系統,被盜的賬號也找不回來了。

    誤區三:殺毒軟件經常換,網上傳哪個好換哪個

    這其實是不科學的,因為每裝一次殺毒軟件,你就需要重新下載殺軟廠商的病毒庫,每個廠商的病毒庫也都是有所不同的,重新下載的殺毒軟件,殺毒的規則也有一定的區別,重新下載的病毒庫,會占用到自己的硬盤空間,雖說文件不是很大,但是多了之后就自然就是一個巨無霸了,而且,同位病毒庫,殺毒軟件有時候也會將其認為是病毒而錯殺,也會使一些非病毒文件被誤刪,那個時候就后悔不及了。所以,殺軟不能用多。其實很多時候的病毒都是因為自己的使用習慣而引起的,只要自己有了良好的使用習慣,相信也不會那么容易被病毒入侵的。

    誤區四:殺毒軟件是專門查殺病毒的,木馬專殺才是專門殺木馬的

    計算機病毒在《中華人民共和國計算機信息系統安全保護條例》中被明確定義,病毒是指“編制或者在計算機程序中插入的破壞計算機功能或者破壞數據,影響計算機使用并且能夠自我復制的一組計算機指令或者程序代碼”。隨著信息安全技術的不斷發展,病毒的定義已經被擴大化。

    隨著技術的不斷發展,計算機病毒的定義已經被廣義化,它大致包含:引導區病毒、文件型病毒、宏病毒、蠕蟲病毒、特洛伊木馬、后門程序、惡意腳本、惡意程序、鍵盤記錄器、黑客工具等等。

    可以看出木馬是病毒的一個子集,殺毒軟件完全可以將其查殺。從殺毒軟件角度講,清除木馬和清除蠕蟲沒有配制的區別,甚至查殺木馬比清除文件型病毒更簡單。因此,沒有必要單獨安裝木馬查殺軟件。

    誤區五:殺毒軟件多多益善

    同時使用數個殺毒軟件,造成系統沖突,引發使用不便。存在這種觀念的用戶不在少數,很多用戶的計算機上都安裝了不止一種的殺毒軟件。但是,他們的計算機卻常常出現死機、藍屏等莫名其妙的問題。這其實是殺毒軟件造成的沖突所致。

    如果你非要在同一臺電腦里頭同時開啟多套殺毒軟件,實時監控可能會引起沖突。例如諾頓和卡巴斯基都曾將其他的殺毒軟件報成病毒,引發使用上的不便。

    盡管殺毒軟件的開發廠商不同,宣稱使用的技術不同,但他們的實現原理卻可能是相似或相同的。同時開啟多個殺毒軟件的實時監控程序很可能會產生沖突,比如多個病毒防火墻同時爭搶一個文件進行掃描。安裝有多種殺毒軟件的計算機往往運行速度緩慢并且很不穩定,因此,我們并不推薦一般用戶安裝多個殺毒軟件,即使真的要同時安裝,也不要同時開啟它們的實時監控程序(病毒防火墻)。

    誤區六:我用慣了這個殺軟,不想換其的了

    永遠執著于電腦里的這個殺毒軟件,即使它已經染上病毒。

    很多新的病毒出現時,殺毒軟件猝不及防,會自動被病毒關掉或者感染,已經失去了作用。如果還固執地使用染毒的殺毒軟件來殺毒,根本沒有效果。要知道,多數的殺毒軟件都采用特征掃描法檢查病毒,一旦計算機內出現病毒代碼庫之外的病毒(不一定是新的),那么殺毒軟件也會視而不見,無動于衷。

    誤區七:我裝了殺毒軟件,什么都不用怕了

    以為裝了殺毒軟件就能隨意查看不良網頁,或者隨便下載危險軟件和插件。

    殺毒軟件不是萬能的,它始終處于被動防御狀態,并且需要不斷升級才跟得上病毒更新的速度。而現在的很多新病毒和木馬就嵌在一些惡意網頁中,自恃有了殺毒軟件就隨便打開一些可疑的地址仍然是非常危險的,因為你根本不知道自己的殺毒軟件的能力限度在哪里。

    必須時刻提高警惕,盡量避免“自作孽”,并且及時安裝系統補丁,畢竟殺軟并不能從根本上修補系統漏洞。

    即便裝了殺毒軟件,也要高度戒備,不要隨便去一些網站,也不要閱讀不明來歷的郵件。

    誤區八:查毒速度快的殺毒軟件才好

    不少人都認為,查毒速度快的殺毒軟件才是好的。甚至不少媒體進行殺毒軟件評測時都將查殺速度作為重要指標之一。不可否認,目前各個殺毒軟件廠商都在不斷努力改進殺毒軟件引擎,以達到更高的查殺速度。但僅僅以查毒速度快慢來評價殺毒軟件的好壞是片面的。

    殺毒軟件查毒速度的快慢主要與引擎和病毒特征庫有關。舉個例子,一款殺毒軟件可以查殺10萬個病毒,另一款殺毒軟件只能查殺100個病毒。殺毒軟件查毒時需要對每一條記錄進行匹配,因此查殺100個病毒的殺毒軟件查毒速度肯定會更快些。

    一個好的殺毒軟件引擎需要對文件進行分析、脫殼甚至虛擬執行,這些操作都需要耗費一定的時間。而有些殺毒軟件的引擎比較簡單,對文件不做過多的分析,只進行特征匹配。這種殺毒軟件的查毒速度也很快,但它卻有可能會漏查比較多的病毒。

    由此可見,雖然提高殺毒速度是各個廠商不斷努力奮斗的目標,但僅從查毒速度快慢來衡量殺毒軟件好壞是不科學的。

    誤區九:根據任務管理器中的內存占用判斷殺毒軟件的資源占用

    很多人,包括一些媒體進行殺毒軟件評測,都用Windows自帶的任務管理器來查看殺毒軟件的內存占用,進而判斷一款殺毒軟件的資源占用情況,這是值得商榷的。

    不同殺毒軟件的功能不盡相同,功能比較多的占用的內存占用肯定會更多,但卻提供了更全面的安全防護。

    同時,也有一小部分殺毒軟件廠商為了對付評測,故意在程序中限定殺毒軟件可占用內存數的大小,使這些數值看上去很小,一般在100KB甚至幾十KB左右。實際上,內存占用雖然小了,但殺毒軟件卻要頻繁地進行硬盤讀寫,反倒降低了軟件的運行效率。

    "反編譯技術"對于黑客學習過程中,是從一個初級到高級進階過程的必學技術,前期我們熟悉基礎知識,熟悉利用腳本或者工具只是初級階段學習,從小白到入門的過程,但是如果想成為一名真正意義的黑客,一定要學習"反編譯技術"!為什么這么說?

    因為黑客技術就是對計算機系統和網絡的缺陷和漏洞的發現,以及針對這些缺陷實施攻擊的技術。這里說的缺陷,包括軟件缺陷、硬件缺陷、網絡協議缺陷、管理缺陷和人為的失誤。而這里的軟件缺陷分析,或者漏洞的發掘就需要用到"反編譯技術"和逆向分析技術,而目前黑客從事網絡協議缺陷,硬件缺陷的研究相對成熟。而軟件則不同,種類繁多,依托的系統架構又各不相同,軟件又是直接與業務應用息息相關,所以軟件的缺陷、漏洞、優化、破解等需求,都需要用到"反編譯技術。所以如果你想成為一名真正意義的黑客,這個技術一定要學習!

    今天就以本篇文章的內容詳細給大家闡述一下"反編譯技術原理與實現"!

    一、什么是"反編譯"?

    反編譯,又稱為逆向編譯技術,是指將可執行文件變成高級語言源程序的過程。反編譯技術依賴于編譯技術,是編譯過程的逆過程。

    那什么是編譯技術?

    編譯技術就是把高級語言變成可執行文件的過程。它的主要過程如下所示:

    編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段詞法分析;語法分析;語義檢查和中間代碼生成;代碼優化;目標代碼生成。

    詞法分析的任務是對由字符組成的單詞進行處理,從左至右逐個字符地對源程序進行掃描,產生一個個的單詞符號,把作為字符串的源程序改造成為單詞符號串的中間程序。

    語法分析以單詞符號作為輸入,分析單詞符號串是否形成符合語法規則的語法單位,如表達式、賦值、循環等,最后看是否構成一個符合要求的程序。

    語義分析是審查源程序有無語義錯誤,為代碼生成階段收集類型信息。中間代碼是源程序的一種內部表示,或稱中間語言。

    中間代碼的作用是可使編譯程序的結構在邏輯上更為簡單明確,特別是可使目標代碼的優化比較容易實現。代碼優化是指對程序進行多種等價變換,使得從變換后的程序出發,能生成更有效的目標代碼。

    目標代碼生成是編譯的最后一個階段。目標代碼生成器把語法分析后或優化后的中間代碼變換成目標代碼。

    對于反編譯技術,我們上文提到,它是編譯的逆過程。那是不是把上述的六個步驟倒置,就變成了反編譯的過程了呢?顯然是不對的。對于反編譯過程,我們可以這么去理解:我們的源程序現在是二進制可執行文件或者匯編指令,我們的目標程序是某種特定的高級語言。那么現在這個過程該如何轉化呢?這其中的中間代碼的生成是否和編譯過程中的一樣呢?

    基于上述原理及其疑問,我們很容易便采用這種思想:將特定的機器代碼,即我們的"源程序",先翻譯為低級的中間代碼,然后再根據特定的高級語言將中間代碼翻譯為高級程序。沒錯,反編譯的主要思想確實就是那樣:反編譯器也有前端和后端。前端是一個機器依賴的模塊,句法分析二進制程序、分析其指令的語義、并且生成該程序的低級中間表示法和每一子程序的控制流向圖。通用的反編譯機器是一個與語言和機器無關的模塊,分析低級中間代碼,將它轉換成對任何高級語言都可接受的高級表示法,并且分析控制流向圖的結構、把它們轉換成用高級控制結構表現的圖。最后,后端是一個目標語言依賴的模塊,生成目標語言代碼。反編譯的過程中要使用一些工具:把二進制程序裝入內存,對這一程序做句法分析或反匯編,以及反編譯或者分析該程序來生成高級語言程序。這個過程借助編譯器和庫的簽名來識別特定的編譯器和庫子程序。只要在二進制程序中識別出編譯器簽名,就不去反編譯這些編譯器啟動代碼(start-up)和庫子程序:對于前者,從最后的目標程序去掉啟動代碼的那些例程,反編譯器從主(main)程序入口點開始分析;對于后者,那些子程序用其庫函數名代替。

    所以我們可以采用下圖來表示反編譯的過程:

    上圖是我們對于反編譯過程的初級構想(按照我們的理解),而實際的更為詳細的過程則如下所示:

    我們再對上述各個過程做一下更為詳細的介紹:

    1語法分析:語法分析程序或語法分析器把源程序的字節組織成源機器語言的語法短語(或語句)。這些短語用一個語法分析樹表示。語法分析器的主要問題是確定哪些是數據和哪些是指令。

    2語義分析:語義分析階段檢查源程序一組指令的語義含義,收集類型信息并且向整個子程序傳遞這個類型。對于任何一個編譯器生成的二進制程序,只要程序能運行,其機器語言的語義一定是正確的。沒見過哪一個二進制程序是因為編譯器生成代碼的錯誤而不能運行。因此,除非語法分析器對某一條指令做了不正確的分析或者把指令當作數據分析,否則,在源程序中是不會有語義錯誤的。

    3中間代碼生成:反編譯器分析程序需要一個中間表示法來明晰地表現源程序。它必須容易從源程序中生成,而且還必須適合用來表示目標語言。

    4控制流圖生成:源程序中每一個子程序的控制流圖也是為反編譯器分析程序所必需的。這個表示法適合用來確定在程序中的高級控制結構。它也被用來清除掉由于機器語言的條件跳轉有偏移量限制因而被編譯器產生的中間跳轉。

    5數據流分析:數據流分析階段試圖改善中間代碼,以便能夠得到高級語言表達式。在這個分析期間,臨時寄存器的使用和條件標志被清除掉,因為在高級語言里面沒有這些概念。

    6控制流分析器階段試圖將程序每一個子程序的控制流圖組織成一個高級語言構造的類集(通有的)。這個類集必須包含大多數語言都有的控制指令。

    7代碼生成:反編譯器的最后階段是在控制流圖和每一個子程序中間代碼的基礎上生成目標高級語言代碼。為所有的局部棧、參數和寄存器變量標識符選擇變量名稱。也為在程序中出現的各個例程指定各自的子程序名稱。

    二、反編譯與反匯編的區別

    很多人把反編譯和反匯編理解為同一意義,其實還是有所不同的!

    反匯編:一般是只對編譯器根據高級語言生成的本機二進制可直接在芯片上執行的機器碼"解析"為人類可讀的匯編形式的代碼(實際上最最早期的計算機操作員具備直接閱讀機器碼和使用機器碼編程的能力,不需要轉換為匯編形式,這是計算機普及,程序規模也爆炸性增大后,人們就有需要轉換為匯編代碼來讀懂機器碼程序),早期的反匯編目的是編譯器生產商用來檢查編譯器生成代碼的性能。當今主要在得不到源代碼的情況下,研究分析其他人的程序。

    反編譯原理:通常,編寫程序是利用高級語言如C,pascal等高級語言進行編程的,然后再經過編譯程序生成可以被計算機系統直接執行的文件(機器語言)。反匯編即是指將這些執行文件反編譯還原成匯編語言或其他高級語言。但通常反編譯出來的程序與原程序會存在些許不同,雖然執行效果相同,但程序代碼會發生很大的變化,要讀懂反匯編需要有扎實的高級語言編寫功底和匯編功底。

    反匯編實際屬于反編譯,反編譯就包括各種語言從低級或中間級語言到高級語言的解析。如:.NET平臺的C#就可由中間語言MSIL反編譯成C#,Java平臺的就可由.class中的Java字節碼反編譯為Java代碼后有其它的dex虛擬機的字節碼,自定義的虛擬機字節碼等等

    總言之,反匯編屬于反編譯的一個分支,反編譯是實現逆向編程的必經步驟這些都屬于IT界的"逆向工程"范疇。

    二者的區別:反匯編僅僅是使用一些反匯編軟件把程序從機器碼翻譯成匯編語句,而反編譯不僅要做完反匯編的工作,還要在此基礎上徹底理解這些匯編代碼是什么意思,準確的說是這些代碼能夠實現什么功能,然后用自己熟悉的語言寫出功能相似(不可能和原作者的代碼完全相同)的代碼或軟件。

    三、用實例理解“如何利用反編譯技術破解一個程序”

    實例一、破解需要注冊的軟件

    我們有時在使用一些小工具軟件時,會提示購買License(注冊碼之類的東東)后才能正常使用。在這里我們來嘗試直接繞過License驗證直接使用軟件,實現簡單的軟件破解

    主要實現方式:

    通過反編譯工具,反編譯出軟件源碼。

    分析源碼,找到License驗證位置。

    修改反編譯代碼。

    重現編譯生成修改后軟件源碼。

    編寫License驗證demo代碼:

    Demo程序主要邏輯:登陸界面(Lgoin.cs)驗證License信息。如果驗證成功顯示主窗體(MainWIndow.cs)功能界面,正常使用其軟件功能。

    破解Demo程序

    根據demo程序邏輯分析,只需把License驗證代碼刪除或修改即可。

    方法1:IL DASM

    具體使用方法參考之前編寫博客《C# IL DASM 使用》。缺點:通過ildasm.exe反編譯出的代碼為IL 中間語言,想讀懂和修改需對IL 中間語言有一定基礎。

    方法2:Reflector

    .NET Reflector 工具本身不帶修改 dll 和 exe 功能,需下載插件:Reflexil (Reflexil.Reflector.AIO.dll)。

    Reflexil 插件安裝方法:Tools-->Add-Ins…--> + 點擊"+",選擇下載好的Reflexil 插件路徑。點擊"Close"關閉窗體。

    使用.NET Reflector 工具打開需反編譯代碼,分析需要修改代碼位置。

    只需刪除" if (!this.License(kay, text))" 判斷代碼。

    開啟 Reflexil 插件:tools -->"Reflexil **"

    Reflexil 插件會將你選擇的方法(Mothed) 生成IL 中間語言。對分析需要刪除的代碼找到對應IL 中間語言所在位置,進行刪除。

    最后保存修改后的EXE進行重新運行。 ^-^ … 簡單的破解工作已完成…^-^

    從 Reflexil 插件菜單上可以看出,他還有很多功能,比如:注入類,注入接口,注入枚舉..等。還是很強大的一款插件。

    缺點:Reflector 工具需收費。

    方法3:ILSpy

    ILSyp 工具只用四個字形容:簡單,粗暴。比較實用。直接使用ILSyp 工具打開需反編譯exe或dll,然后"Save Code"保存為VS能直接打開的項目。修改代碼后重新編譯生成exe或dll 進行運行。

    通過Save Code 保存的項目,使用VS可直接編譯修改代碼。

    實例二、Android APK反編譯

    1.反編譯工具

    ApkTool : 將apk文件反編譯成smali文件和資源文件等,生成一個文件夾,同樣,也可以將這個文件夾生成apk文件。

    dex2jar : 把dex文件轉成jar文件

    jd-gui : 將jar文件轉換成java代碼,可以更好的閱讀代碼

    2.準備工作

    我們準備一個反編譯所需要的apk文件,這里我自己寫了一個

    登錄功能一般是應用的入口,如果我們沒有用戶名和密碼就進不去。

    看到這里,大家可能想筆者肯定是想通過反編譯來實現繞過登錄功能。

    今天重點要介紹的是如何通過反編譯在這個登錄頁面添加一個View并實現相應的功能。附帶內容:

    · 反編譯實現更換應用圖標

    · 反編譯實現添加資源文件

    · 反編譯實現添加View并實現點擊事件

    · 反編譯實現修改功能

    · 用ApkTool工具重新打包應用

    3.反編譯實現替換應用圖標

    1)通過apkTool工具將apk反編譯生成一個文件夾。

    進入cmd下切換到apktool目錄下,輸入apktool.bat d D:\apkTool\test.apk,會在apktool目錄下生成一個test文件夾,如下是test文件夾的內容:(res:資源文件、smali:跟匯編類似的機器代碼,如果需要添加四大組件,則需在AndroidManifest.xml下添加聲明)

    2).在生成的這個目錄里找到res文件夾,進去后你會發現跟我們eclipse或as工程下的res文件夾結構一樣,然后在對應目錄下將應用圖標換掉即可。(注意:圖片格式一定要和原圖片格式一樣,不然會有莫名的錯誤)

    4.反編譯實現添加資源文件

    比如我們想在strings.xml下添加一個字符串并在代碼中引用,大家可能就說這個簡單吶,在strings.xml里加上一個字符串聲明,然后在smali文件中引用就好了,然后編譯成smali文件時候,啪,報錯了,打包成apk不成功,那么正確的做法是什么呢?

    1).在res/values/strings.xml里添加一個字符串,如下:

    2).在res/values目錄下找到一個public.xml文件打開,找到最后一個String類型的一條,如下圖一所示,它的id為0x7f060024,這些id是系統自動生成的,那么我們添加一個字符串就需要在這里手動生成一個id并且這個要唯一,默認在最后一個string的id加1就行,如下圖二所示:(注意:name要和strings.xml聲明的name一致)

    圖一:

    圖二:

    3).在smali文件夾下根據包名去找到R文件,如下圖一,其中R$string.smali的美元符號 表示內部類的意思。在string.smali文件里添加一條,如圖二。

    圖一:

    圖二:

    5.反編譯實現添加View并實現點擊事件

    如我們想在登錄界面添加一個注冊按鈕,那該怎么添加呢?

    1).在res/layout/activity_main.xml里添加一個按鈕,如下:

    2).在res/values/ids.xml里添加聲明,如下:

    3).在res/values/public.xml里找到最后一條id的條目,添加一條記錄,并且id要唯一,如下:

    4).在smali文件夾里根據包名找到R文件,在R的id.smali文件下添加聲明,如下圖,到此所有的準備都做完了,下面就是修改smali文件添加這個注冊按鈕的點擊事件。

    6.在smali文件夾里根據包名找到MainActivity.smali文件,打開它,然后搜索onCreate,如下圖一,我們可以看到findViewById這個字眼,我們可以跟著寫,對新加的按鈕設置文字,如下圖二,在這里,一定要注意寄存器的使用,一不小心就出錯了,如果不懂smali語法的,可以回頭看一下smali語法整理

    圖一:

    圖二:

    設置完文字后,接著就可以開始設置注冊按鈕的功能了,如下圖,這里點擊事件是直接跳轉另外一個頁面,MainActivity是一個內部類,onclicklistener的實現類。

    7.反編譯實現修改功能

    如果我們想繞過登錄直接進入應用,那么此時我們肯定想到去改登錄邏輯,打開MainActivity.smali文件,搜索setOnclickListener,可以看到就是登錄按鈕設置的點擊事件,但是登錄的邏輯呢?在MainActivity.smali文件中,找到onClick方法中關鍵部分,筆者加上了注釋,如下圖:

    那么我只要把跳轉的邏輯搬到cond_0那里就ok了,我們試試:

    8.用ApkTool工具重新打包應用

    上面都是在修改資源文件,修改smali文件,我們改完怎么看效果呢?這個時候,就需要用強大的ApkTool工具重新打包應用了,在cmd下進入ApkTool目錄,輸入:apktool.bat b -f D:\apkTool\test(D:\apkTool\test這個目錄是之前反編譯生成的目錄),如果我們修改沒問題的話,就會在test目錄下生成一個文件夾dist,在該文件夾里就是反編譯后生成的apk文件。

    此時,終于反編譯完成了!

    但是這時生成的apk還是不能用的,因為這是裸包,還沒簽名,系統是不會讓你裝的。

    那么我們開始簽名吧,怎么簽名呢?同樣還是用ApkTool工具,在cmd下進入ApkTool目錄,輸入:jarsigner -verbose -keystore 簽名文件路徑 -signedjar 簽名后apk的路徑 未簽名apk的路徑 簽名別名,如下圖:

    簽名完成后,我們安裝已簽名的apk,看看運行結果,是不是達到了自己想要的效果。

    到此,smali反編譯方法就完成了!

    四、常用的反編譯工具介紹

    apk反編譯工具:

    1.apktool 利用命令行查看Java代碼,需配合GUI 查看代碼

    缺點:查看Java代碼時,需要先把apk文件變成zip文件,獲取到dex文件,運行命令行d2j-dex2jar.bat

    反編譯:Java -jar apktool_xx.jar d -f 編譯的apk -o 反編譯后的apk

    回編譯:Java -jar apktool_xx.jar b 反編譯后的apk -o 回編譯后生成的apk路徑

    簽名:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore 簽名文件路徑 -signedjar 簽名后的apk路徑 簽名的apk路徑 簽名文件名稱

    生成R文件:aapt package -m -J 生成R文件的路徑 -S apk中的res的路徑 -I adt中android.jar路徑 -M AndroidManifest.xml路徑

    2.APKDB

    優點:反編譯、回編譯、簽名一鍵操作,簡單方便,缺點:查看Java代碼時,需要先把apk文件變成zip文件,獲取到dex文件,雙擊之后即可查看代碼,但是代碼可讀性不強,跟apktool反編譯的代碼差不多,都需配合Gui。當修改Mianfest時,需要把 original文件夾刪除,否則修改不生效。

    3.JADX

    優點:雙擊jadx-gui.bat ,直接導入apk,方便簡單 。如圖所示:

    舉例說明ApkTool、APKDB與JADX編譯后的代碼區別:

    ApkTool、APKDB編譯后的代碼:

    JADX編譯后:

    1、PE Explorer

    功能極為強大的可視化漢化集成工具,可直接瀏覽、修改軟件資源,包括菜單、對話框、字符串表等; 另外,還具備有 W32DASM 軟件的反編譯能力和PEditor 軟件的 PE 文件頭編輯功能,可以更容易的分析源代碼,修復損壞了的資源,可以處理 PE 格式的文件如:EXE、DLL、DRV、BPL、DPL、SYS、CPL、OCX、SCR 等 32 位可執行程序。 該軟件支持插件,你可以通過增加插件加強該軟件的功能, 原公司在該工具中捆綁了 UPX 的脫殼插件、掃描器和反匯編器,非常好用。

    唯一遺憾的是欠缺字典功能!

    2、eXeScope V6.5

    小巧但功能極其強大的本地化工具,可以直接修改 VC++ 及 DELPHI 編制的 PE 格式文件的資源,包括菜單、對話框、字符串和位圖等,也可與其它本地化工具配合使用。 在漢化中不推薦使用 eXeScope 作為漢化工具,僅作為漢化輔助工具。6.50 版主要對 DELPHI 7 編譯的程序支持較好,對 DELPHI 7 以前版本編譯的程序,建議使用 6.30 版本,因為該程序對 Unicode 字符顯示支持不好。

    3、Resource Hacker

    一個類似于eXeScope的但在某些方面比它還好一些的工具。

    1). 查看 Win32 可執行和相關文件的資源 (*.exe, *.dll, *.cpl, *.ocx),在已編譯和反編譯的格式下都可以。

    2). 提取 (保存) 資源到文件 (*.res) 格式,作為二進制,或作為反編過的譯資源腳本或圖像。圖標,位圖,指針,菜單,對話,字符串表,消息表,加速器,Borland 窗體和版本信息資源都可以被完整地反編譯為他們各自的格式,不論是作為圖像或 *.rc 文本文件。

    3). 修改 (替換) 可執行文件的資源。圖像資源 (圖標,指針和位圖) 可以被相應的圖像文件 (*.ico, *.cur, *.bmp),*.res 文件,甚至另一個 *.exe 文件所替換。對話,菜單,字符串表,加速器和消息表資源腳本 (以及 Borland 窗體) 可以通過使用內部資源腳本編輯器被編輯和重新編譯。資源也可以被一個 *.res 文件所替換,只要替換的資源與它是同一類型并且有相同的名稱。

    4). 添加新的資源到可執行文件。允許一個程序支持多種語言,或者添加一個自定義圖標或位圖 (公司的標識等) 到程序的對話中。

    5). 刪除資源。大多數編譯器添加了應用程序永遠不會用到的資源到應用程序中。刪除這些不使用的資源可以減小一個應用程序的大小。

    4PASSOLO Passolo 是一款功能強大的軟件本地化工具,它支持以 Visual C++ 、Borland C++ 及 Delphi 語言編寫的軟件(.exe、.dll、.ocx)的本地化。以往針對這兩種不同語言編寫的軟件,我們大多是需要分別使用 Visual Localize 和 Language Localizator 來進行軟件的中文化。而現在,Passolo 把二者的功能結合在了一起,并且性能穩定、易于使用,用戶即不需要進行專門的訓練,也不需要豐富的編程經驗,在本地化的過程中可能發生的許多錯誤也都能由 Passolo 識別或自動糾正。

    作為專業性的本地化工具,Passolo 的功能主要包括:- 支持 VC 軟件新舊版本套用資源或字典的翻譯中文化;- 支持 Delphi 軟件使用專用 / 通用字典翻譯中文化;- 利用已有的多種格式的 Passolo 字典對新建方案進行自動翻譯;- 對 VC 、Delphi 軟件都支持標準資源的可視化編輯(酷!);- 使用 Passolo 自帶的位圖編輯器可以直接對圖片資源進行修改;- 可以把目標資源導出后借用外部程序翻譯后再重新導入。

    Passolo 還自帶了 XML 、.NET 、 VB 和 Java 等數種插件(Add-in),專業的編程人員可以借用它們對相應的資源文件進行本地化編輯。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有