《九阴真经: iOS黑客攻防秘籍》新书发布,干货满满,快来看看吧!

iOS 安全论坛 - 专注于研究 iOS 安全

 找回密码
 立即注册
查看: 163|回复: 13

debugserver无法启动

[复制链接]

4

主题

18

帖子

64

积分

注册会员

Rank: 2

积分
64
发表于 2019-11-1 20:28:10 | 显示全部楼层 |阅读模式
我购买你的九阴真经书,按照书上例子来启动debugserver,但是启动失败了,我手机是iphone se 越狱版本electra ios 11.1.2,提示如下:

然后我在github论坛上,找到相关讨论:https://github.com/coolstar/electra/issues/42
jbdo: https://0x0.st/sq2A.bin
code of jbdo at #53 (comment)
说要下载https://0x0.st/sq2A.bin这个文件,但是我下载不下来提示:


  1. Process 17 stopped
  2. * thread #1: tid = 17, 0x00007f13a56ad4a8, name = 'fhost'
  3.     frame #0:
  4. Process 17 stopped
  5. * thread #8: tid = 17, 0x00007f13877f5d90 fhost`get(path='/sq2A.bin') + 27 at fhost.c:139, name = 'fhost/responder', stop reason = invalid address (fault address: 0x30)
  6.     frame #0: 0x00007f13877f5d90 fhost`get(path='/sq2A.bin') + 27 at fhost.c:139
  7.    136   get(SrvContext *ctx, const char *path)
  8.    137   {
  9.    138       StoredObj *obj = ctx->store->query(shurl_debase(path));
  10. -> 139       switch (obj->type) {
  11.    140           case ObjTypeFile:
  12.    141               ctx->serve_file_id(obj->id);
  13.    142               break;
  14. (lldb) q
复制代码

然后我按照 code of jbdo at #53 (comment) 代码
  1. #include <spawn.h>
  2. #include <unistd.h>
  3. #include <stdlib.h>
  4. #include <stdio.h>
  5. #include <string.h>
  6. #include <errno.h>

  7. #include "common.h"

  8. int main(int argc, char *argv[], char *envp[]) {
  9.     if (argc < 2) {
  10.         fprintf(stderr, "usage: %s program args...\n", argv[0]);
  11.         return EXIT_FAILURE;
  12.     }
  13.     posix_spawnattr_t attr;
  14.     posix_spawnattr_init(&attr);
  15.     posix_spawnattr_setflags(&attr, POSIX_SPAWN_START_SUSPENDED|POSIX_SPAWN_SETEXEC);

  16.     calljailbreakd(getpid(), JAILBREAKD_COMMAND_ENTITLE_AND_SIGCONT_AFTER_DELAY);

  17.     int ret = posix_spawnp(NULL, argv[1], NULL, &attr, &argv[1], envp);

  18.     fprintf(stderr, "Failed: %d (%s)\n", ret, strerror(ret));
  19.     return ret;
  20. }
复制代码

用上边代码编译后,我是用xocde建立一个ios app,然后把相关代码删除,只保留main.m文件,然后重签名

  1. codesign -s "F3286C75C72218760A8391261F17CA5C48730256" --entitlements en.entitlements -f su
复制代码

en.entitlements文件就是debugserver权限文件名改名为su, scp到手机的/bootstrap/目录并赋予执行权限
但是我找不到手机的/bootstrap/目录,里边没有这个目录,我就把他放到 /usr/bin/目录下,运行命令
./su /usr/bin/debugserver localhost:1234 -a “WeChat"
直接就是killed 9.  这个问题如何解决?请大神指点一下?期盼回复,多谢。








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

86

主题

262

帖子

1049

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1049
发表于 2019-11-1 23:39:31 | 显示全部楼层
提示 killed 9 是因为没有添加 platform-application,用 Xcode 打开 entitlements  文件添加 platform-application 设置为 true,再签名试试。
  1. <key>platform-application</key>
  2. <true/>
复制代码
如果还是不行,就使用这个 entitlements
  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>platform-application</key>
  6.     <true/>
  7.   
  8.     <key>com.apple.private.mobileinstall.allowedSPI</key>
  9.     <array>
  10.         <string>Lookup</string>
  11.         <string>Install</string>
  12.         <string>Browse</string>
  13.         <string>Uninstall</string>
  14.         <string>LookupForLaunchServices</string>
  15.         <string>InstallForLaunchServices</string>
  16.         <string>BrowseForLaunchServices</string>
  17.         <string>UninstallForLaunchServices</string>
  18.         <string>CopyDiskUsageForLaunchServices</string>
  19.         <string>InstallLocalProvisioned</string>
  20.     </array>
  21.   
  22.     <key>com.apple.private.security.no-container</key>
  23.     <true/>
  24.   
  25.     <key>com.apple.private.skip-library-validation</key>
  26.     <true/>
  27.   
  28.     <key>com.apple.lsapplicationworkspace.rebuildappdatabases</key>
  29.     <true/>
  30.   
  31.     <key>com.apple.private.MobileContainerManager.allowed</key>
  32.     <true/>
  33.   
  34.     <key>com.apple.private.MobileGestalt.AllowedProtectedKeys</key>
  35.     <true/>
  36.   
  37.     <key>com.apple.managedconfiguration.profiled-access</key>
  38.     <true/>
  39.   
  40.     <key>com.apple.developer.icloud-services</key>
  41.     <array>
  42.         <string>CloudDocuments</string>
  43.         <string>CloudKit</string>
  44.     </array>

  45.     <key>dynamic-codesigning</key>
  46.     <true/>

  47.         <key>com.apple.wifi.manager-access</key>
  48.         <true/>
  49.         <key>com.apple.SystemConfiguration.SCPreferences-write-access</key>
  50.         <array>
  51.                 <string>com.apple.radios.plist</string>
  52.         </array>
  53.         <key>com.apple.SystemConfiguration.SCDynamicStore-write-access</key>
  54.         <true/>
  55.         <key>com.apple.springboard.debugapplications</key>
  56.         <true/>
  57.         <key>run-unsigned-code</key>
  58.         <true/>
  59.         <key>get-task-allow</key>
  60.         <true/>
  61.         <key>task_for_pid-allow</key>
  62.         <true/>
  63. </dict>
  64. </plist>
复制代码


回复

使用道具 举报

4

主题

18

帖子

64

积分

注册会员

Rank: 2

积分
64
 楼主| 发表于 2019-11-2 12:08:00 | 显示全部楼层
我刚开始是报错killed 9,是签名的问题。后来我从新签名了,不报错了,权限也是按照你上边列的签的,现在的问题是在现有越狱环境下无法启动,不是签名的问题,应该是越狱环境的bug,这个bug的解决过程中与遇到了问题,如上贴,如何解决?
回复

使用道具 举报

86

主题

262

帖子

1049

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1049
发表于 2019-11-2 13:57:51 | 显示全部楼层
goodcyg 发表于 2019-11-2 12:08
我刚开始是报错killed 9,是签名的问题。后来我从新签名了,不报错了,权限也是按照你上边列的签的,现在的 ...

你有用过我最后发的那个 entitlements 试过吗?用最后发的那个试试。因为之前我也遇到过添加 platform-application 也是 killed 9,用最后的那个就解决了。
要是还不行,晚上回去我调一下,发一个挂载的 debugserver 的文件给你。
回复

使用道具 举报

4

主题

18

帖子

64

积分

注册会员

Rank: 2

积分
64
 楼主| 发表于 2019-11-2 18:28:04 | 显示全部楼层
还是不行一样的报错。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

4

主题

18

帖子

64

积分

注册会员

Rank: 2

积分
64
 楼主| 发表于 2019-11-2 18:34:57 | 显示全部楼层
相关测试文件,我已经发到你邮箱里。
回复

使用道具 举报

86

主题

262

帖子

1049

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1049
发表于 2019-11-2 20:20:00 | 显示全部楼层
你写的挂载 debugserver 的 su 文件呢?这个发给我看看。我说的意思给你那个 su 文件重签,不是给 debugserver 重签。
回复

使用道具 举报

4

主题

18

帖子

64

积分

注册会员

Rank: 2

积分
64
 楼主| 发表于 2019-11-2 20:43:59 | 显示全部楼层
su文件代码实际就是这个
#include <spawn.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>

#include "common.h"

int main(int argc, char *argv[], char *envp[]) {
    if (argc < 2) {
        fprintf(stderr, "usage: %s program args...\n", argv[0]);
        return EXIT_FAILURE;
    }
    posix_spawnattr_t attr;
    posix_spawnattr_init(&attr);
    posix_spawnattr_setflags(&attr, POSIX_SPAWN_START_SUSPENDED|POSIX_SPAWN_SETEXEC);

    calljailbreakd(getpid(), JAILBREAKD_COMMAND_ENTITLE_AND_SIGCONT_AFTER_DELAY);

    int ret = posix_spawnp(NULL, argv[1], NULL, &attr, &argv[1], envp);

    fprintf(stderr, "Failed: %d (%s)\n", ret, strerror(ret));
    return ret;
}

code of jbdo at #53 (comment)
这里找的
回复

使用道具 举报

86

主题

262

帖子

1049

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1049
发表于 2019-11-2 23:02:34 | 显示全部楼层
goodcyg 发表于 2019-11-2 20:43
su文件代码实际就是这个
#include
#include

缺少头文件我不能编译,不过我测试写了一个其他程序,上传之后运行也是提示 killed:9
我又测试另一种方法是可以调试的,打开 Electra,关掉 Tweak 开关,重新越狱。然后执行 debugserver 可以直接调试
  1. root# debugserver *:1234 -a SpringBoard
  2. debugserver-@(#)PROGRAM:debugserver  PROJECT:debugserver-360.0.26.1
  3. for arm64.
  4. Attaching to process SpringBoard...
  5. Listening to port 1234 for a connection from *...
  6. Waiting for debugger instructions for process 0.
复制代码
而且执行其他程序也不会有 killed: 9 的问题。
回复

使用道具 举报

4

主题

18

帖子

64

积分

注册会员

Rank: 2

积分
64
 楼主| 发表于 2019-11-3 12:08:00 | 显示全部楼层
头文件就在那个https://github.com/coolstar/electra里,下载下来加进去就行了,我之所以搞不懂,是那些大神们,在https://github.com/coolstar/electra/issues/42,说的不清楚,小白看不懂。我这里只所以不行,还是环境的问题,但是就是不知道问题在哪里?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|iOSHacker

GMT+8, 2019-11-15 11:17 , Processed in 0.057159 second(s), 20 queries .

iOS安全论坛

© 2017-2019 iOS Hacker Inc.

快速回复 返回顶部 返回列表