概述 ●该章节主要讲解的是ELF文件的结构。 ●静态库的概念 ●动态库(又叫共享库)的概念,一般用于操作系统,普通应用程序作用不大。 ●程序的加载过程。 该书中对链接的解释也不够详细。在章节最后,作者也承认:在计算机系统文献中并没有很好的记录链接。因为链接是处在编译器、计算机体系结构和操作系统的交叉 ...
分类:
其他好文 时间:
2017-09-15 11:01:23
阅读次数:
260
什么是模块? 常见的场景:一个模块就是一个包含了python定义和申明的文件,文件名就是模块名字加上.py的后缀。 但其实import加载的模块分为四个通用类别: 1、使用python编写的代码(.py文件) 2、已被编译为共享库或DLL的C或C++扩展 3、包好一组模块的包 4、使用C编写并链接到 ...
分类:
编程语言 时间:
2017-09-12 20:58:33
阅读次数:
213
一、什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(.py文件) 2 已被编译为共享库或DLL的C或C++扩展 3 包好一组模块的包 4 使用C编写并链 ...
分类:
编程语言 时间:
2017-09-12 20:49:59
阅读次数:
270
为了Android上使用libcurl且支持HTTPS协议,需要依赖openssl,因此先来了解一下如何编译OpenSSL1.编译ARM下的共享库(默认的)我使用的是guardianproject的openssl,它已经提供好了android的ndk makefile。git clone https ...
分类:
移动开发 时间:
2017-09-08 01:15:12
阅读次数:
285
Linux下静态库和动态库的制作与使用 Linux操作系统支持的函数库分为静态库和动态库,动态库又称共享库。linux系统有几个重要的目录存放相应的函数库,如/lib /usr/lib。 静态函数库: 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都会... ...
分类:
系统相关 时间:
2017-09-04 13:23:23
阅读次数:
302
以下是Shell: uname -s:显示操作系统名称(Linux) 以下是GCC: -shared:生成共享目标文件。通常用在建立共享库时 -Wall:生成所有警告信息 -Wmissing-prototypes:如果没有预先声明就定义了全局函数,编译器就发出警告。即使函数定义自身提供了函数原形也会 ...
分类:
其他好文 时间:
2017-09-02 16:52:21
阅读次数:
155
这两天逆向一个程序,发现每次image list -o -f 之后,它的基地址都是0x00000,也就是偏移地址是0。 想到这个应该是载入内存时有没有启用偏移有关,于是找了下答案:aslr 百度百科对ASLR的定义: aslr是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的 ...
分类:
移动开发 时间:
2017-08-26 11:35:15
阅读次数:
262
【51CTO专稿】本文将具体介绍Android中的防缓冲区溢出技术的来龙去脉。 1、什么是ASLR? ASLR(Address space layout randomization)是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化。通过添加攻击者预測目的地址的难度。防 ...
分类:
移动开发 时间:
2017-08-18 20:08:14
阅读次数:
267
ldconfig 配置查找共享库(ldconfig执行两个基本函数处理共享库,首先创建连接,这样才能保证到共享库引用的是最新版本,然后在文件/etc/ld.so.cache中保存有效共享库的完整列表) ldconfig【选项】 -c 采用的格式--新旧或兼容(默认) -l 手动连接独立的库 -n 只 ...
分类:
系统相关 时间:
2017-08-17 20:05:29
阅读次数:
279
1构建多个共享库 为了建立可供住应用程序使用的模块,必须将该模块变为共享库。Android ndk构建系统将BUILD_SHARE_LIBRARY变量设置成 build-shared-library.mk文件位置。该makefile片段包含了将源文件构建和组装成共享库的必要过程: include $ ...
分类:
其他好文 时间:
2017-08-17 10:35:34
阅读次数:
188