導航:首頁 > 源碼編譯 > linux反編譯到c

linux反編譯到c

發布時間:2025-07-14 10:59:34

A. 用什麼工具反編譯或者解壓縮 linux 下的 bin 文件

objmp -sd 文件

B. 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)

C. Android/Linux so動態庫分析和反編譯

開發環境的搭建涉及友善smart-210開發板作為平台。在進行so動態庫文件頭分析時,需明確其本質為ELF文件,且利用Elf32_Ehdr結構體定義ELF32頭文件。將armeabi-v7a類型的so動態庫文件放置於Linux系統路徑中,然後在Linux終端進入文件目錄,執行"readelf -h xxxx.so"命令,以查看文件頭部信息。

文件頭部信息包括Magic/e_ident[]用於標識ELF目標文件,Class標記文件類型為32位ELF格式,Data指示數據組織格式為小端格式,Version為當前文件頭版本號1。OS/ABI描述操作系統類,ABI Version為ABI版本號0。Type/e_type指明文件類型,這里是共享庫(Shared Library)。Machine/e_machine顯示機器平台類型為ARM類型,Version/e_version為當前目標文件版本號0x01。Entry point address/e_entry表示程序入口地址,Stars of program headers/e_phoff記錄程序頭表文件偏移,Stars of section headers/e_shoff記錄節區頭文件偏移。Flasgs/e_flags為處理器相關標識,Size of this header/e_ehsize表示ELF頭文件大小,Size of program headers/e_phentsize表示程序頭表頭目大小。Number of program headers/e_phnum表示程序頭表條目數量,Size of section headers/shentsize表示節區頭表條目大小,Number of section headers/e_shnum為節區頭表條目數量。節區頭字元表索引/e_shstrndx。

程序頭表通過Elf32_Phdr結構體描述,此表為數組,數組元素存儲程序頭表條目,描述段或其它信息以准備程序運行。文件段包含多個節區,程序頭表僅在可執行文件或共享對象文件中有意義。

反編譯so動態庫方法採用IDA軟體。首先解壓安裝包,安裝時注意避免中文路徑,隨後根據ReadMe文檔獲取密鑰。安裝完成後,打開軟體並點擊「GO」按鈕,拖拽so動態庫文件至工作區,點擊「OK」按鈕等待反編譯完成。反編譯後,工作區顯示包含機器碼的Hex View-1窗口、匯編代碼的IDA View-A窗口以及保存函數名的Function window窗口。通過雙擊函數名定位到對應函數的匯編代碼。使用Ctrl+F搜索特定函數名,雙擊函數名查看匯編代碼,按下F5即可轉換為C代碼。

閱讀全文

與linux反編譯到c相關的資料

熱點內容
會玩app怎麼把豬頭弄掉 瀏覽:93
戰地3怎麼換伺服器地址 瀏覽:474
qq郵箱app怎麼導出通訊錄 瀏覽:704
命令女主身體 瀏覽:969
java的注釋規范 瀏覽:862
華為mt40e怎麼刪app 瀏覽:91
java用到的技術 瀏覽:618
農行手機app怎麼更新版本 瀏覽:538
初中生程序員職業生涯道路 瀏覽:930
linux部署常用命令 瀏覽:386
博途一直正在編譯組態 瀏覽:433
安卓快手紅包標志不見了怎麼設置 瀏覽:315
mount命令用法 瀏覽:992
編譯原理怎麼畫狀態轉化圖 瀏覽:385
命令行怎麼讀拼音 瀏覽:343
異界爆肝程序員 瀏覽:604
電腦隱私文件加密方法和隱藏技巧 瀏覽:92
蘋果電腦如何建文件夾快捷鍵 瀏覽:884
撤銷磁碟加密 瀏覽:463
搜索解壓驅動器 瀏覽:706