首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏difcareer的技术笔记

    Android Linker学习笔记

    本文转自:Android Linker学习笔记 0x00 知识预备 Linker是Android系统动态库so的加载器/链接器,要想轻松地理解Android linker的运行机制,我们需要先熟悉ELF 的文件结构,再了解ELF文件的装入/启动,最后学习Linker的加载和启动原理。 Soinfo结构体的具体定义在bionic/linker/linker.h中。 1.1 SO文件的读取与加载工作 Linker使用ElfRead类的load函数完成so文件的分析工作。该类的源代码在linker_phdr.cpp 中。 Android的动态库的链接工作还是由linker完成,主要代码就是在linker.cpp的soinfo_link_image(find_library_internal方法中调用)中,此函数的代码相当多

    3K40发布于 2018-08-23
  • 来自专栏WeTest质量开放平台团队的专栏

    Linker加载so失败问题分析

    因此Abort异常比起fault addr类问题更容易分析,先从前面Linker出现Abort异常的位置开始着手。 Linker是so链接和加载的关键,属于系统可执行文件,因此分析起来比较棘手。 出现异常的Linker代码linker_soinfo.cpp如下: const char* soinfo::get_string(ElfW(Word) index) const { if (has_min_version 另外通过在linker中增加日志,并重新编译linker替换到/system/lib/linker中: [图片6.png] [图片7.png] 可以获取到如下的地址信息: [图片8.png] 通过根据tombstone 要观察这种现象,我们可以打开linker自身的调试开关,开启so加载的日志。 另外,为了开启linker中更多的日志,比如DEBUG打印的信息等,我们只需要在adb shell中设置环境变量: export LD_DEBUG=10 [图片11.png] [图片12.png] 那么

    1.9K10发布于 2018-11-14
  • 来自专栏WeTest质量开放平台团队的专栏

    Linker加载so失败问题分析

    因此Abort异常比起fault addr类问题更容易分析,先从前面Linker出现Abort异常的位置开始着手。 Linker是so链接和加载的关键,属于系统可执行文件,因此分析起来比较棘手。 出现异常的Linker代码linker_soinfo.cpp如下: const char* soinfo::get_string(ElfW(Word) index) const {  if (has_min_version 另外通过在linker中增加日志,并重新编译linker替换到/system/lib/linker中: ? ? 可以获取到如下的地址信息: ? 要观察这种现象,我们可以打开linker自身的调试开关,开启so加载的日志。 另外,为了开启linker中更多的日志,比如DEBUG打印的信息等,我们只需要在adb shell中设置环境变量: export LD_DEBUG=10 ? ?

    2.3K20发布于 2018-12-11
  • 来自专栏腾讯Bugly的专栏

    Android Linker 与 SO 加壳技术

    对于 Linker 的学习,还应该包括 Linker 自举、可执行文件的加载等技术,但是限于本人的技术水平,本文的讨论范围限定在 SO 文件的加载,也就是在调用dlopen("libxx.SO")之后, Linker 的处理过程。 在内存中还原出 SO 后,loader 还需要执行装载和链接,这两个过程可以完全模仿 Linker 来实现,下面主要介绍一下相对 Linker,loader 执行这两个过程有哪些变化。 Linker 在装载 PT_LAOD segment时,使用 SO 文件的描述符 fd: ? 按照 Linker 装载,PT_LAOD segment时,需要分为两步: ? 3.3 soinfo 修复 SO 加壳的最关键技术点在于 soinfo 的修复,由于 Linker 加载的是 loader,而实际对外使用的是被保护的 SO,所以 Linker 维护的 soinfo 可以说是错误

    3.9K61发布于 2018-03-23
  • 来自专栏嵌入式iot

    链接脚本linker script的妙用

    3.链接脚本 一般在进行gcc进行链接的时候,都会考虑到链接脚本(linker script),该文件一般以lds文件作为后缀名。 上策就是利用linker script进行函数扩展。 直接调用的方式实现起来比较简单,也比较好理解,直接调用对应的函数即可。 采用linker script方式时,相当于把函数的指针集合到一个.text的空间中。这样执行的时候,只需要找到linker中对应的地址,转换成函数即可,这种方式就很好扩展。 4.总结 以上介绍了linker script的原理,以及在实际使用过程中的几个使用的技巧。这些都是在实际的项目中总结的来的,其实理解了linker script将可用完成很多有趣的使用技巧。 只是平时我们并没有特别关注这个文件的使用,也并没有实际去编写一个linker script完成一个工程的构建。关于linker script的语法和使用,还有很多可以自由发挥的地方。

    4.6K10发布于 2020-09-01
  • 来自专栏GA小站

    转化链接器(Conversion Linker)被弃用

    转化链接器(Conversion Linker) 正是为了解决Safari等浏览器对第三方Cookie限制而存在的。

    4300编辑于 2026-03-12
  • 来自专栏orientlu

    连接器 -- Scatter File & Linker Script File

    Scatter File 用于armlink, Linker Script File 用于 GNU LD 它们的功效是一样的,即告诉Linker用一定的memory layout来生成最后的image。 ZI_RET21 EXCHANGE_MEMORY_BASE EXCHANGE_MEMORY_SIZE { arch_main.o (BLE_exchange_memory) } } Linker ---- 参考 ARM-scatter-loading ARM-Syntax of a scatter file GNU-Linker

    2.1K20发布于 2018-09-13
  • 来自专栏娱乐心理测试

    linker command failed with exit code 1 (错误总结)

    屏幕快照 2019-04-11 下午6.10.57.png 根据报错提示,问题出现在“CGRectScaleMake”,自己哪里用到这个了呢?全局搜索,发现自己太粗心大意了:

    5.5K30发布于 2019-04-19
  • 来自专栏DrugOne

    用于分子Linker设计的等变3D条件扩散模型

    今天给大家介绍的是来洛桑联邦理工学院、MIT等团队2022年10月发表在Arxiv上的预印本《Equivariant 3D-Conditional Diffusion Models for Molecular Linker 这一领域的一个开放挑战是设计在interest的断开分子片段之间的连接(linker),以获得化学相关的候选药物分子。 3.3 LINKER SIZE PREDICTION 为了预测一组片段之间缺失的连接的大小,我们将片段表示为一个全连接图,使用原子类型的独热编码作为节点特征,节点之间的距离为边特征。

    1.2K20编辑于 2022-11-28
  • 来自专栏数据结构与算法分享

    关于 CMake CMAKE_EXE_LINKER_FLAGS 选项的小坑

    dynamic 编译器标志的方式方面做得很奇怪,使得 -Wl,-Bstatic -lstdc++ -lwinpthread -Wl,-Bdynamic 解决方案不起作用: set(CMAKE_EXE_LINKER_FLAGS 查了一下发现, CMAKE_EXE_LINKER_FLAGS 这个变量好像就没几个人用, 网上普遍建议的是使用 target_link_libraries 的写法,注意 target_link_libraries 当然,也可以直接简单粗暴 -static 全静态编译(不推荐),那就啥事没有了 set(CMAKE_EXE_LINKER_FLAGS "-static") 看来以后还是少从网上扒不靠谱代码,现在这个年代说方便也方便

    11.5K20发布于 2021-08-09
  • 来自专栏生命科学

    ADC 抗体偶联药物通过连接子 linker 连接而成 | MedChemExpress

    ADC 抗体偶联药物作用机理 ADC 抗体偶联药物是将高特异性的单克隆抗体 (antibody) 与高活性的小分子毒性药物 (payload) 通过连接子 (linker ADC Linker: SPDP SPDP (SPDP Crosslinker) 是一种谷胱甘肽可切割的连接桥,用于抗体-药物结合物 (ADC)。 MC-Val-Cit-PAB 是可被组织蛋白酶切割的 ADC 连接桥,用于制备抗体-药物偶联物 Drug-Linker Conjugates for ADC: SMCC-DM1 SMCC-DM1 (DM1 Smith & Sanjeevani Ghone& Bruce Tomczuk.Current ADC Linker Chemistry.

    77320编辑于 2023-03-02
  • 来自专栏晨光的Code

    Other Linker Flags参数解析和duplicate symbol错误解决方法

    1.Other Linker Flags参数解析ObjCObjc指令会告诉链接器把库中的Objective-C类和Category全部加载进来,但这个指令会加载很多不必要的文件而导致可执行文件变大,如果静态库中有类和

    1.6K50编辑于 2022-12-01
  • 来自专栏Rust语言学习交流

    【Rust日报】2022-11-19 mold linker 项目发布v1.7.1

    主要功能包括: Youtube 音乐播放列表 缓存所有下载并储存 自动后台下载管理器 Github,https://github.com/ccgauche/ytermusic mold linker 项目发布 v1.7.1 mold linker 旨在通过减少构建时间来提高开发人员的工作效率,尤其是在调试-编辑-重建快速周期中,是现有 Unix linker 的替代品,它比 LLVM lld linker 快几倍 mold linker 项目作者创建了一个网站bluewhale.systems,用户可以购买非 AGPL 许可的 mold linker,并且作者正在考虑更改 mold/macOS 的许可。

    43620编辑于 2022-11-28
  • 来自专栏Rust语言学习交流

    【Rust日报】2021-03-27 byo-linker,构建自己的链接器

    --open Changelog 链接:https://github.com/lukechu10/maple/blob/master/CHANGELOG.md#-040-2021-03-25 byo-linker 但是任何非重要的代码都可能会出现在 ELF 文件规范的未实现部分中; 总是将结果写到 output.o; 错误无法正常处理; Github 链接:https://github.com/andrewhalle/byo-linker

    71330发布于 2021-04-22
  • 来自专栏DrugOne

    . | 强化学习驱动PROTAC linker的3D生成

    、和 E3 连接酶配体(E3-ligand),结构中两个配体之间通过 linker 相连,从而形成“三体”复合物(PTS):warhead-Linker-E3-ligand。 已有的PROATC的linker生成方法只能生成1D或2D的linker,并没有考虑该linker对三元复合物PTS的影响,无法衡量其在PTS内的合理性。 由于PROTAC的分子量过大,这种叠加通常不能产生良好的对齐效果,但可以达到将生成PROTAC的linker部分带到参考分子的linker附近的目的。 拼接生成的PROTAC的linker部分与参考配体warhead和E3-ligand 叠合完成后,生成的PROTAC分子将会去除两端的结构,只保留linker部分,然后将linker与参照PROATC的两端结构拼接起来 该算法首次将linker在PTS内的影响考虑进来,实现了在保持原有warhead和E3-ligand构象不变的前体下,原位长出更加合理的linker,并形成了PROTAC的三维结合构象。

    51730编辑于 2023-10-24
  • 来自专栏iOS开发~

    iOS_pod的SDK报错,Linker command failed with exit code1(use -v to see invocation)

    然后打开终端,输入你当前工程的路径,进入到工程文件夹,更新一下pod,重新打开工程就好了

    57610编辑于 2022-07-20
  • 来自专栏韩曙亮的移动开发专栏

    【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 获取 linker 中的 dlopen 函数地址 并 通过 远程调用 执行该函数 )

    文章目录 一、dlopen 函数简介 二、获取 目标进程 linker 中的 dlopen 函数地址 三、远程调用 目标进程 linker 中的 dlopen 函数 一、dlopen 函数简介 ---- char * pathname : 动态库的路径 , Android 系统文件的绝对路径 ; ② int mode : 动态库的打开法方式 ; void* 返回值 : 动态库句柄 二、获取 目标进程 linker 偏移量 ; ④ 获取 本地进程 函数地址 ; ⑤ 根据 本地进程 函数地址 + 本地进程 与 远程进程 的 动态库 地址 偏移量 , 计算出 远程进程 动态库 的 函数地址 ; 三、远程调用 目标进程 linker

    1.7K10编辑于 2023-03-29
  • 来自专栏c++ 学习分享

    CMAKE默认编译链接选项 cmake输出信息

    = " ${CMAKE_EXE_LINKER_FLAGS}) message(STATUS "CMAKE_EXE_LINKER_FLAGS_DEBUG = " ${CMAKE_EXE_LINKER_FLAGS_DEBUG = " ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO}) message(STATUS "CMAKE_MODULE_LINKER_FLAGS = " ${CMAKE_MODULE_LINKER_FLAGS " ${CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO}) message(STATUS "CMAKE_SHARED_LINKER_FLAGS = " ${CMAKE_SHARED_LINKER_FLAGS " ${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO}) message(STATUS "CMAKE_STATIC_LINKER_FLAGS = " ${CMAKE_STATIC_LINKER_FLAGS " ${CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO}) message(STATUS "CGAL_MODULE_LINKER_FLAGS = " ${CGAL_MODULE_LINKER_FLAGS

    1K21编辑于 2023-07-08
  • 来自专栏HACK学习

    干货 | 如何快速完成DLL劫持,实现权限维持,重启上线

    , "/EXPORT:BO_GetMemory=BSOPLib9Org.BO_GetMemory,@1") #pragma comment(linker, "/EXPORT:BO_FreeMemory= ) #pragma comment(linker, "/EXPORT:BO_CRC32=BSOPLib9Org.BO_CRC32,@4") #pragma comment(linker, "/EXPORT ,@6") #pragma comment(linker, "/EXPORT:BO_SHA1Result=BSOPLib9Org.BO_SHA1Result,@7") #pragma comment(linker ) #pragma comment(linker, "/EXPORT:BO_CRC32=BSOPLib9Org.BO_CRC32,@4") #pragma comment(linker, "/EXPORT ,@6") #pragma comment(linker, "/EXPORT:BO_SHA1Result=BSOPLib9Org.BO_SHA1Result,@7") #pragma comment(linker

    6.2K30发布于 2021-02-01
  • 来自专栏FreeBuf

    内网渗透研究:dll劫持权限维持

    ,@3")#pragma comment(linker, "/EXPORT:CloseDriver=_AheadLib_CloseDriver,@4")#pragma comment(linker, " (linker, "/EXPORT:midiOutGetDevCapsW=_AheadLib_midiOutGetDevCapsW,@78")#pragma comment(linker, "/EXPORT ,@85")#pragma comment(linker, "/EXPORT:midiOutOpen=_AheadLib_midiOutOpen,@86")#pragma comment(linker, (linker, "/EXPORT:mmsystemGetVersion=_AheadLib_mmsystemGetVersion,@141")#pragma comment(linker, "/EXPORT )#pragma comment(linker, "/EXPORT:waveOutWrite=_AheadLib_waveOutWrite,@192")#pragma comment(linker, "

    1.3K10编辑于 2023-04-26
领券