游戏安全实验室 首页 技术入门 查看内容

 阅读目录

Android平台感染ELF文件实现模块注入

发布于:2016-4-27 16:03   |    44673次阅读 作者: 管理员    |   原作者: TP   |   来自: 原创

对游戏动态修改之前首先要将外挂模块注入游戏进程,本章将介绍Android平台上通过感染ELF文件实现模块注入。

1.1 实现原理

可执行文件感染就是通过修改可执行文件,添加自己的代码,使得可执行文件运行时先执行添加的代码再执行原逻辑。

根据以上的定义可知实现ELF感染需要直接修改二进制文件, 所以必须先了解ELF文件格式。之前的文章已经对ELF文件的格式做了详细介绍,本文只简要介绍与ELF感染的实现相关的文件结构。

图1ELF文件结构

 

如图1所示为ELF原文件格式这里关注几个重要结构:

(1) ELF Header,它是ELF文件中唯一一个固定位置的文件结构,其中保存了Program Header Table和Section Header Table的位置和大小信息。

(2) Program Header Table,它保存了ELF文件的加载过程中文件的内存映射,依赖库等信息,是对于实现ELF感染最重要的结构之一。

 

本文介绍的ELF感染思路就是通过修改Program Header Table中的依赖库信息,添加自定义的库文件,使得游戏加载主逻辑模块时也会加载我们自定义的so文件。

 

其中Program Header Table的表项结构如下:

其中p_type有如下取值