一、基本概念 1.1 什么是库 在Windows平台和Linux平台下都大量存在着库。 本质上来说,库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。 由于windows和linux的平台不同(主要是编译器、汇编器和连接器的不同),因此二者的库的二进制是不兼容的。 本文仅限于介绍linux ...
分类:
系统相关 时间:
2017-09-01 22:13:17
阅读次数:
203
GDB分析ELF文件常用的调试技巧 gdb常用命令 首先是gbd+文件名 静态调试 ,gdb attach +文件名 动态调试 为了方便查看堆栈和寄存器 最好是安装peda插件 安装 可以通过pip直接安装,也可以从github上下载安装 $ pip install peda $ git clone ...
分类:
数据库 时间:
2017-08-31 11:05:37
阅读次数:
3485
连接 本地process()、远程remote()。对于remote函数可以接url并且指定端口。 IO模块 下面给出了PwnTools中的主要IO函数。这个比较容易跟zio搞混,记住zio是read、write,pwn是recv、send就可以了。 ELF模块 ELF模块用于获取ELF文件的信息, ...
分类:
其他好文 时间:
2017-08-18 15:21:41
阅读次数:
1575
区别 常用的可执行文件包含两类:原始二进制文件(bin)和可加载执行的二进制文件,在linux中可加载执行的二进制文件为elf文件。 BIN文件是直接的二进制文件,内部没有地址标记。bin文件内部数据按照代码段或者数据段的物理空间地址来排列。一般用编程器烧写时从00开始,而如果下载运行,则下载到编译 ...
分类:
其他好文 时间:
2017-07-26 01:44:29
阅读次数:
184
经常用keil,也听说IAR的编译效率很高,原来C51时用proteus,最近proteus8开始支持stm32,所以在研究用keil5+HAL+proteus学习STM32F. 问题:因为proteus的对stm32的仿真只支持.elf文件格式(GCC编译器的输出文件),而keil只能生产.alf ...
分类:
其他好文 时间:
2017-07-21 20:49:18
阅读次数:
347
在前面一文中,我们介绍了Android执行时ART,它的核心是OAT文件。OAT文件是一种Android私有ELF文件格式,它不仅包括有从DEX文件翻译而来的本地机器指令。还包括有原来的DEX文件内容。这使得我们无需又一次编译原有的APK就能够让它正常地在ART里面执行。也就是我们不须要改变原来的A ...
分类:
移动开发 时间:
2017-06-30 20:53:13
阅读次数:
375
转载于:http://www.cnblogs.com/xingyun/archive/2011/12/10/2283149.html 我们知道函数名就是一个内存地址,这个地址指向函数的入口。调用函数就是压入参数,保存返回地址,然后跳转到函数名指向的代码。问题是,如果函数在共享库中,共享库加载的地址本 ...
分类:
系统相关 时间:
2017-06-13 12:54:56
阅读次数:
315
编译参考文章 http://blog.csdn.net/john_1984/article/details/12622215 一、编写soLoader主文件 soLoader.c内容: 二、编译o文件 三、链接o文件为elf文件 四、push到手机,执行 ...
首先要清楚,odex只是对代码段(我将dex文件与elf文件类比,大家都将执行文件分成不同的段)作优化,而其它用于类反射信息的段都应用原来的dex,所以odex文件内部还包含了一个dex。 打开一个dex或一个odex文件,就是要将其中用于类反射的信息加载到虚拟机运行时中。对于打开一个odex文件, ...
分类:
其他好文 时间:
2017-06-05 19:56:17
阅读次数:
249
首先要清楚,odex只是对代码段(我将dex文件与elf文件类比,大家都将执行文件分成不同的段)作优化,而其它用于类反射信息的段都应用原来的dex,所以odex文件内部还包含了一个dex。 打开一个dex或一个odex文件,就是要将其中用于类反射的信息加载到虚拟机运行时中。对于打开一个odex文件, ...
分类:
其他好文 时间:
2017-06-02 21:05:34
阅读次数:
184