㈠ linuxclass鍙嶇紪璇憀inuxclass
so鏄浠涔堟枃浠訛紵
so鏂囦歡鏄疞inux涓嬬殑紼嬪簭鍑芥暟搴,鍗崇紪璇戝ソ鐨勫彲浠ヤ緵鍏朵粬紼嬪簭浣跨敤鐨勪唬鐮佸拰鏁版嵁銆
1銆乻o鏂囦歡灝辮窡.dll鏂囦歡宸涓嶅氥
2銆佷竴鑸鏉ヨ達紝so鏂囦歡灝辨槸甯歌寸殑鍔ㄦ侀摼鎺ュ簱,閮芥槸C鎴朇++緙栬瘧鍑烘潵鐨勩備笌java姣旇緝瀹冮氬父鏄鐢ㄧ殑Class鏂囦歡錛堝瓧鑺傜爜錛夈
3銆丩inux涓嬬殑so鏂囦歡鏃朵笉鑳界洿鎺ヨ繍琛岀殑,涓鑸鏉ヨ,.so鏂囦歡縐頒負鍏變韓搴撱
4銆乻o鏂囦歡浣跨敤鏂規硶
(1)鍔ㄦ佸簱鐨勭紪璇戙傝繖閲屾湁涓涓澶存枃浠訛細so_test.h錛屼笁涓.c鏂囦歡錛歵est_a.c銆乼est_b.c銆乼est_c.c錛屾垜浠灝嗚繖鍑犱釜鏂囦歡緙栬瘧鎴愪竴涓鍔ㄦ佸簱錛歭ibtest.so銆
鍛戒護錛$gcctest_a.ctest_b.ctest_c.c-fPIC-shared-olibtest.so涓嶇敤璇ユ爣蹇楀栭儴紼嬪簭鏃犳硶榪炴帴銆傜浉褰撲簬涓涓鍙鎵ц屾枃浠躲
(2)鍔ㄦ佸簱鐨勯摼鎺
榪欓噷鏈変釜紼嬪簭婧愭枃浠秚est.c涓庡姩鎬佸簱libtest.so閾炬帴鐢熸垚鎵ц屾枃浠秚est錛
鍛戒護錛$gcctest.c-L.-ltest-otest
鍛戒護錛$lddtest鎵ц宼est錛屽彲浠ョ湅鍒板畠鏄濡備綍璋冪敤鍔ㄦ佸簱涓鐨勫嚱鏁扮殑銆
linux涓嬫庝箞鐪媤wn錛
/sys/class/fc_host/涓嬫湁HBA鍗″悕瀛楃殑鐩褰曪紝姣忎釜鐩褰曢噷鐨刾ort_name鏂囦歡灝辨槸WWN錛屾瘮濡傦細cd/sys/class/fc_host/host2catportname浣庣増鏈鐨凩inux鍙浠ユ煡鐪嬫枃浠訛細/proc/scsi/qla2xxx/1(1,2,3,..N)
㈡ 反編譯是什麼意思
高級語言源程序經過
編譯
變成可執行文件,反編譯就是逆過程。
但是通常不能把可執行文件變成高級語言源代碼,只能轉換成匯編程序。
㈢ OUT格式的是什麼文件,在C語言里可以轉化成源文件嗎
out格式文件,是C語言經過編譯,鏈接後的可執行文件。
其本質為二進制文件,是把C語言翻譯成機器語言後,用來供機器識別的文件。
要將二進制文件,轉換為C文件,需要執行反編譯。不過反編譯技術並不完善,得到的C語言代碼在大多數情況下並不是原始的C語言,這是由於,機器語言(二進制代碼)和C語言之間並沒有絕對的一一對應關系,同樣一組機器語言,可能由多種C語言轉換而成,在反編譯的時候,反編譯軟體不可能也沒必要將所有可能的C語言序列一一列出。
㈣ snowman反編譯代碼怎麼運行
使用反編譯軟體即可獲得源代碼。
反編譯獲得的是匯編格式的源代碼,讀懂需要較高的水平,大多反編譯軟體都具有生產C語言格式的功能,但是效果不同,而且並非是全部都能生成C語言,還有很多是匯編格式的。所以對已生成的程序進行反編譯需要足夠的耐心和經驗才能讀懂。
使用Reflector反編譯exe或dll文件都可能無法進行編譯(這里指已經對目的文件進行了脫殼處理),主要原因有以下幾點:1、如果對方使用了混淆技術,我們再反匯編會非常棘手,我常用的做法是把某個亂七八糟的名稱使用自己的命名規范重新批量重命名,這樣便於分析程序的結構。2、Reflector對枚舉類型的支持不是很好,它往往會把枚舉當做整數進行處理,這個需要你手動更正過來。3、對於自動屬性,你需要把不符合編譯語法的地方更正過來。自動屬性的私有欄位一般都含有等,需要手動更正一下。4、對於Winform,你需要重新編譯一下相關的資源文件,如果編譯過程提示找不到資源的話。5、對於靜態變數或者靜態類,這個你更要注意。
㈤ 對與現在編程語言,哪些遍出來的東西是可以反編譯的
任何語言編譯出來的程序都可以反編譯。有些是解釋性語,比如:asp,php,vba,script,他們不用反編譯;有些是託管應用程序,幾乎可以100%反射回去,比如:java, c#;有些編譯出來是二進製程序,反編譯出來就是匯編語言,比如:c,c++,vc,vb,vfp,pb,delphi。
㈥ 如何看linux編譯後的文件
有,反編譯為匯編,不過因為 Linux 大部分為開源軟體,不如找源代碼……
所以,我沒注意過怎麼反匯編。一般經常調試程序的人都會這個。
另外,好像 gcc 編譯時可以生成過渡代碼,現在也有看過度代碼的,好像和匯編類似。