首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

linux 什么是SO文件

下面的内容大多都是连接中的,穿插我自己的笔记 牵扯到ELF格式,gcc编译选项待补,简单实用的说明一下,对Linux下的so文件有个实际性的认识。 1.so文件是什么?...GDB 可以直接利用这个信息,其它调试器也可以使用这个调试信息 -c: 仅执行编译操作,不进行连接操作。 -o: 指定生成的输出文件名称 注意!-c,-o不是指.c文件和.o文件!!...这个特性使得在Linux下,升级使得共享库的程序和定位错误变得十分容易。   ...在Linux中,应用程序通过使用soname,来指定所希望库的版本,库作者可以通过保留或改变soname来声明,哪些版本是兼容的,这使得程序员摆脱了共享库版本冲突问题的困扰。...下面的还没细看,汗 4.库的初始化,解析: windows下的动态库加载,卸载都会有初始化函数以及卸载函数来完成库的初始化以及资源回收,linux当然也可以实现。

5.5K20

linuxso注入与热更新原理

简介 之前写了个hookso的工具,用来操作linux进程的动态链接库行为,本文从so注入与热更新入手,简单讲解一下其中的原理,配合源码阅读效果更佳。...这里要介绍一下linux的ptrace函数。...函数查找 我们知道,linux的可执行文件是elf文件格式,动态链接库其实也是elf格式。关于elf,有很多资料,这里简单讲一下elf结构。...(实际上linux各种运行时库的版本也很难受) 为什么不做成机器码直接jmp就好了? 机器码里直接jmp,但是事先不知道目标地址,所以只能填空,这样又不好与正常代码区分。...通过查阅资料可知,linux amd64调用函数,用到的寄存器及含义如下: rdi:参数1 rsi:参数2 rdx:参数3 rcx:参数4 r8:参数5 r9:参数6 rax:函数地址 rbp:栈底地址

10.4K50

linux mysql 软连接_linux连接的使用

连接linux中一个常用命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接。 具体用法是:ln -s 源文件 目标文件。...例如: ln -s /usr/local/mysql/bin/mysql /usr/bin 这样我们就对/usr/bin目录下的mysql命令创建了软连接 【硬连接】 硬连接指通过索引节点来进行连接。...在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。...只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。...【软连接】 另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。

11.9K30

反编译so库破解so

所以想破解so,将对i2c num 的大小改大点。...from=sec (2)实战预热 https://blog.csdn.net/m0_37766442/article/details/72903385 一、反编译so 使用IDA打开so 根据log信息或猜测查找需要破解的大致位置...我们看到上方有一个 loc_82036,这代表一段代码的标签处,类似C里面goto 的标签,那肯定其他地方会向这个标签做跳转 选中这个标签,右击 点击红框选项,就会列出所有向此处跳转的地方,这个so,...点中CMP R0,#6的地址处,然后切换到HEX View Hex VIEW 可以切换数据格式,64位so用4字节格式,32位so用2字节格式 我们需要将CMP R0,#6 改成CMP R0,#8...,跳转到这一地址 我们将06改成08保存 替换so,不再打印那个错误log,读正常了,但是写还有问题,同样的方法修改I2C写操作里的值,问题解决 发布者:全栈程序员栈长,转载请注明出处:https:

4.3K30

Linux连接和软连接详解

Lnux也有类似于windows下的快捷方式,这种快捷方式在linux下称作硬连接(hard link)或软连接(symbolic link,又称作符号链接)。...硬连接和软连接有什么不同? 实际上软连接更接近windows的快捷方式,可以看下面的操作。 ?...这涉及到linux的文件系统原理,linux中一个文件是由inode和block来存储的,block中存放文件内容,inode存放文件属性和block的位置。...我这里只是简单的介绍linux的文件系统,详细内容推荐去看下linux相关书籍。 我们再重复最开始的操作,创建源文件,创建链接文件。...删除了源文件,依然可以通过硬连接来查看源文件的内容。但是由于硬连接的限制比较多,比如不能给文件夹创建硬连接。所以实际上,软连接用得更多一些。

8.6K30

VScode远程连接Linux

Linux ---- 三、连接 下载安装插件remote-ssh: 安装完成之后按F1: 此时,我们需要添加服务器连接的配置,点击上面红色框内的选项,进入添加,输入远程服务器的地址,即是输入ssh...用户名@ip进行连接: 输入完成之后保存的连接信息存储在C:\Users\ASUS.ssh\config文件中。...此时就可以在远程资源管理器中看到添加的远程服务器地址了: 连接服务器:右键选择远程服务器,选择不同的方式: 输入密码进行连接,如果远程服务器连接成功,此时需要我们输入密码: 验证是否连接成功:...此时已经是连接成功的了。...---- 六、推荐插件 Remote-SSH-远程登录Linux C/C++必装 C/C++Extension Pack-C/C++扩展包,下载直接安装,它包含了vscode编写C/C++⼯程需要的插件

28030
领券