A. so文件可以反編譯嗎
反編譯不可以,反匯編可以,這個網路一下你就知道了。反匯編,這沒點功力肯定不行的。
如果你改不了這個so文件,要調用此so文件。那麼你必須按之前工程的包名、類名、方法名來調用,也就是方法路徑必須與原來的一致,因為如果不一致,native方法就不可用了,找不到。
B. C#程序反匯編後編譯出現 無法顯式調用運算符或訪問器
反匯編出旦或姿來的庫往往都把屬性變成了方法,方法不團判存在就出現「無法顯式調用運算符或訪問器」這種錯誤了。
推測
this.msc.add_Error(newDScriptControlSource_ErrorEventHandler(this.OnError));
this.msc.add_Timeout(newDScriptControlSource_TimeoutEventHandler(this.OnTimeout));
這兩行應該是:
this.msc.Error+=模絕newDScriptControlSource_ErrorEventHandler(this.OnError);
this.msc.Timeout+=newDScriptControlSource_TimeoutEventHandler(this.OnTimeout);
C. 匯編與反匯編
可以的,但是反編譯的效果最常見的就是反編譯成匯編語言,但是說你寫一個C的程序已經編譯程.exe文件了,然後又想用工具對.exe文件進行反編譯,那麼就只能反編譯到匯編語言的狀態,不可能反編譯到C的狀態,雖然現在網上有些人能反匯編成C,但是效果也不好,有很多的錯誤。
編譯的過程是不可逆的,就好像你把豬殺了做成香腸,然後你又想把想把香腸變成豬一樣。最多能把香腸又變成肉末,變成豬你聽過嗎?道理就這樣
D. 反編譯為什麼不能得到源代碼
因為編譯器在編譯時源搭嫌茄代碼的一些信息丟失了(或者說換一種方式保存),
比如說自定義的函數名,變數名,在反匯編的代碼中就不會出現。
說到反編譯,現在做的最好知察的就是IDA
的Hex-Rays
Decompiler
插件,十分強
大,但有時反編譯的代碼可讀性不好,常常指針套者穗指針,不過配合著匯編代碼
來看還是很有參考性的
E. 反匯編能否將代碼弄出來
常規意義上不能。就算勉強可以那也不會得到和原來一樣的代碼(比較。NET的中間語言)。
反匯編 把目標代碼轉為匯編代碼的過程.
通常,編寫程序是利用高級語言如C,Pascal等語言進行編程的,後再經過編譯程序生成可以 被計算機系統 直接執行的執行文件。反匯編即是指將這些執行文件反編譯還原成 匯編語言或其他 高級語言。但通常反編譯出來的程序與原程序會存在許多不同,雖然執行效果相同,但程序代碼 會發生很大的變化,非編程高手很難讀懂。
F. 一個匯編問題,以下代碼為什麼不能編譯,生成obj文件,請指正,謝謝!
看來,樓主是想要「直接寫屏」。
程序修改如下。
可在XP的DOS窗口下,用MASM5.0編譯...
assumecs:codesg,ds:datasg
;------------------------
datasgsegment
DB'w',06H;定義字元和屬性
DB'e',02H
DB'l',07H
DB'c',26H
DB'o',85H
DB'm',74H
DB'e',98H
db"welcometoasm";這些就不合穗正雀適了
datasgends
;------------------------
codesgsegment
start:
MOVAX,datasg
MOVDS,AX
movbx,0b800h
moves,bx
movbx,0
movcx,6;14
s:
movax,[BX];取來字元和屬性
moves:[BX],ax;直接寫屏
addBX,2;每清閉次寫兩個位元組
loops;循環6次猜早
movax,4c00h;退出
int21h
codesgends
endstart
;------------------------
程序運行後,顯示如下圖:
G. 請教一下,SO文件如何反編譯最好是WIN環境下搭建。謝謝。
謝謝。。。以前玩過CD版的,我去找找。。。另外SO庫和DLL庫的逆向近似嗎?貌似我查了下,我關注的這個軟體轉碼演算法網上還木有。。。是不是也有殼的說法,或者密鑰?但離線閱讀能實現的功能應該可以逆向,而且是不分文本、通用型轉碼。
H. linux 下如何將動態鏈接庫.so進行反編譯後,換編譯器重新編譯
程序能不能正常運行取決於程序和動態庫之間的ABI是否兼容。只要ABI兼容那麼編譯器版本就沒有影響。高版本的編譯器同樣可以使用低版本的ABI來生成目標代碼,但這個問題要具體分析。你解決問題的思路完全不對。
I. 我使用CLASS反匯編生成的java文件重新進行編譯生成JAVA文件提示出錯是為什麼呢
並不是所有的class都能反匯編成java文件的,尤其是那些經過obfuscation(代碼混淆)的class文件,混淆器故意生成很難或者根本不可能被反匯編的程序。比如class文件中可以用java關鍵詞作名字的變數,反匯編出來的當然就不行了,這只是混淆技術之一,有些混淆技術相當難破。
另外,反匯編出來的程序質量跟反匯編程序也很有關系,jd-gui不錯,但也不是通吃的。