导航:首页 > 源码编译 > 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相关的资料

热点内容
为什么连接服务器没有应答 浏览:389
程序员为何被开除 浏览:864
手机论坛网站源码 浏览:589
快递柜锁控板源码 浏览:352
阿里巴巴农业云服务器 浏览:518
android多行注释的快捷键 浏览:866
java环境变量的作用 浏览:526
phpwebsocket扩展 浏览:17
会玩app怎么把猪头弄掉 浏览:93
战地3怎么换服务器地址 浏览:474
qq邮箱app怎么导出通讯录 浏览:704
命令女主身体 浏览:969
java的注释规范 浏览:862
华为mt40e怎么删app 浏览:91
java用到的技术 浏览:618
农行手机app怎么更新版本 浏览:538
初中生程序员职业生涯道路 浏览:930
linux部署常用命令 浏览:386
博途一直正在编译组态 浏览:433
安卓快手红包标志不见了怎么设置 浏览:315