反編譯得到的程序靠譜嗎
1、如果exe文件較小,是由匯編語言的源程序編譯得到的,沒有反跟蹤調試、沒有加密,可以反匯編得到可用的源代碼。
2、如果是由解釋語言經過偽編譯得到的exe,比如原來foxpro編譯得到的exe,可通過專門的反編譯工具得到源代碼。
3、如果是由真編譯的高級語言(如c、c++、pascal)編譯得到的exe,很難反編譯得到源代碼。
㈡ 什麼是逆向工程什麼是反編譯可以根據已經封裝好的程序軟體進行破解分析出源代碼嗎
逆向工程就是根據已有的程序來反推出源代碼以及原來的工程設置,反編譯就是具體的將已經編譯好的程序進行反向工程,從而獲取部分源代碼。一般來說,逆向工程或者反編譯是無法百分之百獲得源代碼的,只能從一定程度上來自源代碼進行猜測,因此根據已經封裝好的程序軟體來進行破解分析出源代碼的可能性並不大,逆向工程的意義並不在於破解源代碼,而是在於了解軟體本身的設計,對於復雜的程序軟體而言破解源代碼的可能性幾乎為零。
㈢ 不是說程序都是反編譯的嗎那病毒等程序的源代碼別人是如何知道的
反編譯只是讓其他人不容易獲得源代碼而已,理論上只要能執行的程序都可以通過機器碼變為匯編代碼,大家可以研究其代碼。
由於病毒程序一般較小,代碼被反編譯後更容易閱讀。
如果把windowsXP反編譯,閱讀的工作量將是一個天文數字!
㈣ 反編譯一個易語言程序可以做到嗎
反編譯的原理應該是一個語言的語法關鍵字和程序的匯編結構有相同部分,然後就類似查找替換這樣噠。不過需要一個翻譯引擎and蠻多的工程,可以倒是可以所以說
然後以前的易語言程序倒是可以,現在的話易語言換了編譯方式所以emmmm,略難
㈤ 是不是所有的程序都可以反編譯得到原代碼
Android APK中的java代碼可以被反編譯到什麼程度主要看APK的加密程度。
第一種情況:無混淆無加密無加殼。
直接利用Dex2jar和JD-GUI可把源碼從APK里摳出來,代碼邏輯清晰,基本上做到可復用,只是資源文件的引用需要計算一下。
第二種情況:混淆。
通常是利用Proguard做的防護。因為是對jar做的不可逆混淆(除非有mapping),因此不能還原成原來的代碼。但是代碼結構,代碼邏輯一致,只要花長時間對代碼進行梳理一樣可找准核心代碼,解密方法跟第一種一致。
第三種情況:加密。
這里以DexGuard為例。對於這種代碼加密的方法,在程序運行中必定會進行解密,只要抽出它解密的邏輯便可。PS:我自己做過DexGuard的解密,如果用Dex2jar反編譯看的話邏輯是不對的,一定要從Smali代碼看。後來發現網上已經有人做了。
解密的腳本:A look inside Dexguard
第四種情況:加殼。
這種情況跟第三種類似。無論你怎麼加殼,運行的時候必定是Dalvik可識別的Odex代碼,建議直接在內存里mp出來。這里推薦Xpose的ZjDroid。
㈥ 求教:APK反編譯能得到完整的源碼嗎
完全可以反編譯成完整的源碼,但是APK在編譯的時候是優化了的, 所以反編譯之後跟原始代碼有差別,還有就是反編譯是根據位元組碼(java的特點)反推java語言,推出來的跟原始的有區別,但是運行效果一模一樣。還有就是你要功底厚才能改寫,還要有個好的工具。你不可能手動反編譯。謝謝。
㈦ 反編譯的准確率有多高。
不是,100%
㈧ class文件能被反編譯,java程序不就沒有保密性了嗎
Java .class 文件是高度抽象的, 因而反編譯技術難度不大, 現行也有很多好用的工具. 所以, 不加特別的保護策略的話, 可以說 Jar 包是沒有保密性的了.
但是, 一般來說, 代碼是有知識產權保護和 Licence 聲明的, 所以, 你的競爭對手在反編譯你的代碼時, 是冒著侵權被訴訟的風險的.
而且, 可以採用保護策略來防止反編譯, 比如採用工具來擾亂編譯得到的 .class 文件.
㈨ 反編譯就真的那麼難
C#的程序很好反編譯,基本能還原成原代碼,
㈩ 反編譯後得到的是什麼文件
反編譯得到源文件,實際就是一行行指令代碼的文本文件。
理論上反編譯可以得到任何語言的源文件,但從實現上通常只能得到匯編代碼。其中的欄位、標號等的定義都是反編譯程序自己定義的。如果同設計者編寫的代碼比較,肯定是看起來很不相同。
