Projectsandcastle:一款针对iPhone的AndroidLinux支持工具

admin 1月前 45

Projectsandcastle

Projectsandcastle是一款针对iPhone的Android/Linux支持工具,该工具可以给广大研究人员提供以下实用工具:

1、loader/ 通过pongoOS加载内核和设备树

2、syscfg/ 可从目标设备的syscfg分区中提取配置信息

3、hx-touchd/ 触摸屏幕支持守护进程

4、hcdpack/ 可从源码文件中提取蓝牙固件信息

内核

内核可以从下列GitHub库中获取到稳定版本(linux-stable):

https://github.com/corellium/linux-sandcastle

Buildroot

Projectsandcastle的Linux Ramdisk使用了buildroot来进行构建,我们提供的定制版本buildroot可以从下列地址获取:

https://github.com/corellium/sandcastle-buildroot

Buildroot是一款简单、高效且易于使用的工具,它可以帮助我们通过交叉编译来生成一个嵌入式的Linux系统。

相关操作文档可以在上述地址中的docs/manual文件中找到,你可以使用命令“make manual-text”来生成一个文本文档,或读取output/docs/manual/manual.text文件。

我们可以按照下列方式来构建和使用buildroot工具:

1、运行命令“make menuconfig”;

2、选择目标架构,以及需要编译的代码包;

3、运行“make”命令;

4、等待编译完成;

5、在output/images目录中找到内核、bootloader、root文件系统等内容;

在线文档:【点我查看

Android应用程序

安装APK文件

广大研究人员可以使用下列命令安装APK文件:

adb install foo.apk

但是,这种方式会存在以下限制因素:

1、如果是纯Java APK文件,并且不需要该项目所不支持的硬件的话,则可以正常运行;

2、仅包含了ARMv7代码(32位)的APK文件将无法运行;

3、包含了ARMv8代码(64位)的APK文件将需要对代码进行重构后方可运行;

重构代码库

我们需要将代码库文件按照16KB页面大小来构建,首先,当代码库链接成功时,尝试运行下列选项/命令:

-z common-page-size=0x4000 -z max-page-size=0x4000

如果连接器使用了C编译器来封装,那你可能还需要使用下列参数:

-Wl,-z,common-page-size=0x4000 -Wl,-z,max-page-size=0x4000

如果一切正常的话,可以使用“readelf -l”:

如果没有RELRO段,请检查具有不同属性的LOAD段是否占用了同一个16KB页;

如果有RELRO段,请确保它在16kB页边界上开始或结束;有时编译器会将RELRO放在RW段的开始处(然后RELRO应该在16k边界处结束),有时会将其放在末尾(然后RELRO应该在16k边界处开始)。

如果还存在问题的话,请检查代码库的源代码,并检查PAGE_SIZE、kPageSize、PAGE_SHIFT、PAGE_BITS等位置。

项目地址

Projectsandcastle:【GitHub传送门

转自:https://www.freebuf.com/sectool/229967.html


少客联盟- 版权声明 1、本主题所有言论和图片纯属会员个人意见,与少客联盟立场无关。
2、本站所有主题由该帖子作者发表,该帖子作者admin少客联盟享有帖子相关版权。
3、少客联盟管理员和版主有权不事先通知发贴者而删除本文。
4、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者admin少客联盟的同意。
5、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任。
6、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。
7、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意。
8、官方反馈邮箱:chinasuc@chinasuc.cn


上一篇:从Lambda架构到Kappa架构再到?浅谈未来数仓架构设计~
下一篇:浅谈DDoS攻防对抗中的AI实践
Whatever is worth doing is worth doing well. juvenile hacker league
最新回复 (0)
    • 少客联盟
      2
        登录 注册 QQ登录(停用)
返回