• 2024-11-15linker.ld在链接阶段的行为
    抽出编译AM程序中的“打包用户程序am-test到ELF”步骤,看看链接脚本abstract-machine/scripts/linker.ld如何将库函数和用户程序链接起来的。首先看下链接命令:echo+LD"->"build/amtest-riscv32-nemu.elf($CROSS_COMPILE)ld-znoexecstack-melf64lriscv-T/abstract-machi
  • 2024-09-16GCC安全编译选项
    以CMake为例,给出安全编译选项的定义。关闭RPATH特性。set(CMAKE_SKIP_RPATHTRUE)开启栈保护。set(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS}-fstack-protector-strong")或者set(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS}-fstack-protector-all")开启GOT表保护。set(CM
  • 2024-08-14易语言之安装与编译
     使用的是免加密狗版本(否则无法编译打包)下载:  易语言官方5.9.3完整版+破解补丁.zip:https://share.feijipan.com/s/DdCBMdzb链接库:V6,v7,v8,v9,v2010  https://lanlang.lanzouq.com/iQHvk27e4uve  安装&破解:1)先安装5.9.3版本,安装完成之后,解压破解补丁
  • 2024-06-20黑加白 Dll 劫持及防护
    白加黑技术是一种利用动态链接库(DLL)劫持技术来绕过安全软件的主动防御机制的方法。攻击者通过某种方式(如修改系统注册表、替换或修改合法的DLL文件等)使白文件在运行时加载恶意的DLL而不是它原本应该加载的合法DLL。DLL劫持(有时也称为DLL侧加载或DLL预加载)是一种技术,它
  • 2024-04-17Go - go build -ldflags
     #downloaddependenciesandbuildRUNgomoddownloadRUNCGO_ENABLED=0GOOS=$TARGETOSGOARCH=$TARGETARCHgobuild-ldflags="-s-w"-o/go/bin/server zzh@ZZHPC:~/aaa$gobuild-ldflags="-help"./main.go#command-line-arguments
  • 2024-03-19资源加载和序列化
    一切加载最后都要跑到LoadPackageInternal:创建Linker序列化(LoadAllObjects){ FUObjectSerializeContext*InOutLoadContext=LoadContext; Linker=GetPackageLinker(InOuter,PackagePath,LoadFlags,nullptr,InReaderOverride,&InOutLoadContext,ImportLinker,In
  • 2024-01-19riscv linker relaxations 是什么
    什么是linkerrelaxations由于链接时携带一些符号地址信息,可以执行一些编译时难以或者不大可能实现的优化。LinkerRelaxtion与传统编译时期的优化是不一样的,此优化发生在链接时。通常情况下,在链接时,改变代码的执行序列是有风险的,因为语义信息此时会丢失,链接器看到也仅是字节流
  • 2024-01-10the ObjectARX system dynamic linker object
    ObjectARXReferenceGuide>Macros>AcRxMacros>acrxDynamicLinkerMacroacrxDynamicLinkerC++defineacrxDynamicLinker\AcRxDynamicLinker::cast(acrxSysRegistry()->at(ACRX_DYNAMIC_LINKER))Filerxdlinkr.hDescriptionTheacrxDynamicLinkerm
  • 2023-12-28elf与动态库大小裁剪
    老板最近看拼多多的包挺小的,扔了一篇文章过来让我们优化优化各自的动态库,美团这篇关于动态库大小缩减的文章,说的极好哈哈:https://tech.meituan.com/2022/06/02/meituans-technical-exploration-and-practice-of-android-so-volume-optimization.html#按需导出符号对库大小影响大
  • 2023-11-27哈希表
    哈希表引入哈希表又称散列表,一种以「key-value」形式存储数据的数据结构。所谓以「key-value」形式存储数据,是指任意的键值key都唯一对应到内存中的某个位置。只需要输入查找的键值,就可以快速地找到其对应的value。可以把哈希表理解为一种高级的数组,这种数组的下标可以是很
  • 2023-10-30binutils 2.40 Linker (ld) 官方文档下载
    前言最近需要熟悉elf与共享库的链接与加载流程,需要先了解elf文件是怎么链接的,链接脚本如何阅读最有效的方式是查看GNU官方的Linker(ld)文档,通过查找,这个Linker(ld)属于GNUbinutils,当前的较新的版本为:2.40binutilsLinker(ld)文档文档地址:https://sourceware.o
  • 2023-10-20Rust,linker but `link.exe` was not found
    themsvctargetsdependonthemsvclinkerbut`link.exe`wasnotfound这是提示未安装vsstudioc++组件,由于vsstudio组件较大,可以选择安装gnu的,具体如下:命令行执行下边指令rustuptoolchaininstallstable-x86_64-pc-windows-gnurustupdefaultstable-x86_64-pc-wind
  • 2023-08-21linker
    用法:用法:ld[选项]文件1文件2...最常用的两个选项-l库名,--library库名搜索库“库名”-L目录,--library-path目录将“目录”添加到库搜索路径中ld的搜索路径ld默认是没有任何搜索路径的,ld解析依赖关系是主要是通过下面几个
  • 2023-06-16CMakeLists --- 设置rpath_link方法 编译报错try using -rpath or -rpath-link)
    指令:add_link_options("LINKER:-rpath-link,${THIRD_LIBS_DIR}")THIRD_LIBS_DIR:需要链接的库的目录作用:编译生成一个可执行文件时,依赖一个动态库A,动态库A同时又依赖动态库B.如果我们没有显示集成动态库B时,链接器会去-rpath-link设置的目录中寻找依赖项。 例子:1.库A,依赖库B
  • 2023-05-30ld链接脚本(Linker Scripts)
    参考博客:比较全的解释内容。链接脚本(LinkerScripts)语法和规则解析(自官方手册)https://www.cnblogs.com/jianhua1992/p/16852784.html  ld文件(链接器脚本)是一个文本文件,用于描述可执行文件或者目标文件的内存布局和分配。在编译和链接代码时,链接器会使用ld文件来确定程
  • 2023-05-26open mp c++
    FIND_PACKAGE(OpenMPREQUIRED)if(OPENMP_FOUND)message("OPENMPFOUND")set(CMAKE_C_FLAGS"${CMAKE_C_FLAGS}${OpenMP_C_FLAGS}")set(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS}${OpenMP_CXX_FLAGS}")
  • 2023-05-07cmake add to linker from CLI
    CMAKE_EXE_LINKER_FLAGSCMAKE_MODULE_LINKER_FLAGSCMAKE_SHARED_LINKER_FLAGSCMAKE_STATIC_LINKER_FLAGShttps://cmake.org/cmake/help/latest/command/target_link_options.htmlhttps://stackoverflow.com/questions/24532853/how-can-i-add-linker-flag-for-libraries
  • 2023-05-02Theano 中文文档 0.9 - 7.2.4 条件
    7.2.4条件译者:Python文档协作翻译小组,原文:Conditions。本文以CCBY-NC-SA4.0协议发布,转载请保留作者署名和文章出处。Python文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。交流群:467338606。IfElse和Switch这两个op在符号变量上构建一个条件。IfElse接收
  • 2023-03-01cmake错误:CMake Error: CMake can not determine linker language for target
    解决方案:因为你的library只有头文件,没有cpp文件在add_library中增加cpp文件同时建立一个空的cpp文件即可。处理后的源代码结构和CMakeLists.txt内容如下所示:其中,math.c
  • 2023-02-27MPC5744P flash linker
    1/*2**###################################################################3**Processor:MPC5744Pwith384KBSRAM4**Compile
  • 2023-02-25Windows黑客编程之dll劫持
    描述伪造dll,篡改里面的导出函数,替换原来的dll,进程将会加载伪造的dll,执行dllmain中的恶意代码以及调用篡改后的函数知识由于PE文件输入表中只包含dll名而没有路径,因此
  • 2023-02-13【问题讨论】关于golang调用so的问题的讨论
    runtime:dlopen/dlsymwithoutCGo#18296 Open  iamacarpetopenedthisissueDec13,2016·12comments  Open  
  • 2023-02-12自实现linker加固so防dump
    对于自定义linker加固so而言,为了防止整体dump并对修复重定位表的脱壳方式(upx的脱壳),可以将一些重要的结构信息在内存中进行抹去和移动。抹去ELF文件头再so文件加载后就不
  • 2023-02-08自实现linker加固so
    其实自实现linker加固so与之前研究windows平台的PE文件的加密壳原理很相似。主要就是自定义文件格式加密so,然后壳代码实现将加密的so文件加载,链接重定位并修正soinfo(三部曲
  • 2023-02-07自实现linker加固so遇到的问题记录
    自定义linker加固so是主流的加壳方式,通过实现linker程序来加载,链接加固后的so文件。最后为了让加固后的so中的代码能与其他模块交互,需要修正壳(自定义linker)的soinfo为加固s