Quantcast
Channel: 睿论坛 - 最新话题
Viewing all 5725 articles
Browse latest View live

Tweak 安装成功 但是没有效果

$
0
0

@baiqian wrote:

需求: 参考练习的DEMO是 https://blog.csdn.net/pspg1987/article/details/78957715,按照示例进行编写,并且已经成功安装到手机上 ,但是没有效果,如何才能知道插件是否随微信一起加载,以及是否hook住该方法

日志:
通过socat 检测到微信启动的日志如下

但是没有看见 NSLog日志的输出

**代码:

操作步骤: 代码编写完成后,直接通过Make package install 命令进行打包安装,在Cydia中已经存在该插件
其他描述: (描述问题的现象,等等)
运行环境是 IOS 10.1.1系统, 5S机型

Posts: 2

Participants: 2

Read full topic


运行dylib时ssh_askpass这个错误一直过不去

$
0
0

@shanshandaocao wrote:

错误日志
ssh_askpass: exec(/usr/X11R6/bin/ssh-askpass): No such file or directory

Permission denied, please try again.

ssh_askpass: exec(/usr/X11R6/bin/ssh-askpass): No such file or directory

root@192.168.2.11: Permission denied (publickey,password,keyboard-interactive).

Failed to create directory /var/root/iOSOpenDevPackages on device 192.168.2.11

Command PhaseScriptExecution failed with a nonzero exit code

操作步骤:
** 任何其他描述: 红色错误 Command PhaseScriptExecution failed with a nonzero exit code
** 环境: (Mac iOSOpenDev,越狱iphone 5c 10.3.3)

Posts: 1

Participants: 1

Read full topic

Ios12越狱 有人脱壳成功了吗

$
0
0

@a378151881 wrote:

cd /private/var/mobile/Documents # save place to work in
ldid -e which bash > ent.xml # Get the ent from bash and save it
ldid -Sent.xml which dumpdecrypted # sign dumpdecrypted with the ent. “-Sent.xml” is the correct usage
inject which dumpdecrypted # inject into trust cache

尝试了这个方法还是会报only launchd is allowed to spawn untrusted binaries 也试过su mobile

Posts: 2

Participants: 2

Read full topic

Ios逆向学习路线

$
0
0

@cabinzhao wrote:

我是一名 ios APP开发,对逆向比较感兴趣,也想知道开发中会存在哪些安全问题,刚开始接触逆向,想知道一下逆向学习顺序,需要先学好arm汇编吗?还是直接开始撸书?

Posts: 5

Participants: 3

Read full topic

请教个问题

$
0
0

@shizu2019 wrote:

一直不明白一个问题,我看网上有很多做加固的公司,基本上都是直接传打包出来的ipa或者apk给他们,他们就可以做混淆加固处理,他们是怎么做到的?用到的是什么工具链?应该不是二进制符号解析吧?

我本身是做ios开发的,平常使用张总的混淆器的也是在xcode中运行后达到混淆代码的效果,
所以一直不明白这种加固是怎么做出来的。。。

小菜问题,大牛请指教

困扰很久了,,,

Posts: 3

Participants: 2

Read full topic

求助:cycript安装遇到问题,安装失败

$
0
0

@shqq wrote:

环境:iOS12.1.1
问题:iOS12可以越狱了,发现cydia中搜不到cycript,ssh到手机执行ap t-get install cycrypt也安装失败。拷贝cycript_0.9.461_iphoneos-arm.deb和libffi_1-3.0.10-5_iphoneos-arm.deb到手机执行 dpkg -i后提示 /usr/bin/cycript: Bad CPU type in executable。cpu type我寻思也都是arm64呀。萌新求大佬指导

Posts: 1

Participants: 1

Read full topic

求助:idfa 手动改了字符串后,无法通过appsflyer

$
0
0

@chandler wrote:

idfa 手动改了字符串后,无法通过appsflyer
使用一键新机工具生成的idfa 可以通过 appsflyer.
这是为什么呢

Posts: 1

Participants: 1

Read full topic

书上51页 Theos 开发的tweak 示例

$
0
0

@baiqian wrote:

需求: SpringBoard重启之后弹出框
**日志: 没有系统日志输出

**代码:

** 任何其他描述: 重启之后,没有显示结果,但是Cydia中已经显示安装成功
** 环境: 5C 8.0系统

Posts: 2

Participants: 1

Read full topic


字节跳动 招聘iOS开发工程师

$
0
0

@leowyy wrote:

资深iOS开发工程师 北京 / 社招 / 经验3-5年 / 学历本科及以上

职位描述:

1、负责字节跳动效率工具的 iOS 端研发;

2、负责高质量的设计和编码;

3、和产品经理配合,深度参与手机产品需求讨论,功能定义等;

4、承担重点、难点的技术攻坚。

职位要求:

1、良好的设计和编码品味,热爱写代码能产出高质量的设计和代码;

2、对稳定性和性能有超乎寻常的关注;

3、熟悉 Swift 语言,熟练掌握 Xcode 等相关开发工具,熟悉 iOS SDK,熟悉 SQLite 等数据库;

4、熟悉 iPhone 应用开发,熟悉 iPhone 平台应用软件的测试,有实际 iPhone App 开发经验;

5、有良好的产品意识,积极乐观,认真负责,乐于协作;

6、计算机及其相关专业,本科及以上学历,相关领域三年以上工作经验。

有意向者请将简历发送至:wuyuanye@bytedance.com

Posts: 2

Participants: 2

Read full topic

iOS11 在SpringBoard中通过system函数运行root进程,进程setuid(0)失败,getuid()为501

$
0
0

@tonyIronMan wrote:

问题背景:有个root权限的后台服务想让它死掉后能重启,于是想到让SpringBoard检查服务的心跳,心跳超时就让SB通过system()执行shell来重启服务,iOS10上是可以的。

遇到的问题:如题,iOS11 上重启后服务就丢失root权限了,

环境:iPhone 6 s ,iOS11.1.1 ,最新的electra进行越狱.
shell脚本daemonX_launch的内容
#!/bin/bash
exec /usr/bin/daemonX “$@”

daemonX和shell脚本文件权限都是:-rwsrwsrwx 1 root wheel

测试结果:ssh root@localhost 到手机然后 /bin/bash /usr/bin/daemonX_launch 是root权限。
SB中system("/bin/bash /usr/bin/daemonX_launch")就为mobile了。

不知道有没有大佬遇类似的问题,愿意分享下经验,多谢!!:grinning::grinning::grinning:

Posts: 1

Participants: 1

Read full topic

Use of undeclared identifier '$AppDelegate_registerPush_register'; did you mean '$AppDelegate_registerPush$_register'?

Hook bundleID 一直Couldn't register xxx.UIKit.migserver with the bootstrap server

$
0
0

@codingdoge wrote:

大佬们,请问下重签了个app,需要微信登录,然后hook了NSBundle和NSDictionary几个返回bundleID的方法返回app的bundle,包括:
[NSBundle bundleIdentifier]
[NSBundle objectForInfoDictionaryKey]
[NSBundle infoDictionary]
[NSDictionary objectForKey]
[NSDictionary valueForKey]
[NSDictionary objectForKeyedSubscript]

但是运行就报Couldn’t register xxx with the bootstrap server. 的错,具体错误为:


有遇到过或者知道怎么解决吗😭
试过重启iPhone、Mac,clean Xcode,清除Mac缓存,重装app都没用

Posts: 4

Participants: 2

Read full topic

基于IPA的加固混淆方案的实现

$
0
0

@godshield wrote:

背景:

鉴于目前市面上大部分的加固方案都是基于ollvm并做成toolchain的方式针对源码编译,这样操作不是方便,然后就有了如下方案,我看这位哥们其实也稍微实现了只是针对了.a(APP开启bitcode,生成.xcarchive文件,对.xcarchive文件做混淆加固),张总也给出了答复,我这里就再详细一点吧,给出相应的源码,就当再抛砖引玉一下吧。再次申明这是针对带Bitcode的IPA的安全解决方案底层也是基于ollvm的,在这里感谢ollvm的作者们做出这么优秀的项目,当然也感谢张总的光, 我这边的clang用的是ollvm做的示范,当然此解决方案不仅支持iPA也支持SDK(framework、.a)的安全加固。

大致思路如下:

  • 1.解析iPA、.xcarchive、.a、等各种格式
  • 2.提取Xar
    xar -d - -f input
  • 3.解析Xml
    用python的ET.fromstring(xmlfile)去解析
  • 4.提取所有的.o文件、提取所有的clang 的编译命令和ld的链接命令参数
  • 5.给每个.o加上混淆参数生成混淆后的.o
  • 6.链接生成最终的混淆后的iPA

流程图如下

最后

具体源码传送门:iPAObfuscator源码 里面有详细的使用说明

同时欢迎到我们官网进行详细的免费试用:http://www.god-shield.com

也欢迎各位加qq群进行讨论:786457705

Posts: 5

Participants: 3

Read full topic

Nday漏洞从挖掘到利用

$
0
0

@Peterpan0927 wrote:

0x00.漏洞挖掘

这算是我的一个小练手吧,写的不是很好,主要是思路分享

queryCompletion in AVEBridge

由于com.apple.AVEBridge这个模块中的函数比较少,于是我就写了一个比较小的C语言脚本来Fuzz一下,这个比较简单,所以一下子就找到了:

mov rdi, [rdi+rsi*8+168]
...
call qword ptr [rax+0x1c8]

这里rsi是我们可控的一个参数,这里相当于我们可以劫持控制流做ROP进行提权,但还需要一个信息泄漏作为配合。

ReadRegister32

这是我在另一个模块AppleIntelFramebufferAzul中找到的一个漏洞,因为我的目的很明确,就是需要信息泄漏,所以我就从有类似特征的函数进行入手了,如函数名位Readxxx,有memcpy类似的函数。

这个函数也十分简单:

__int64 __fastcall AppleIntelAzulController::ReadRegister32(...){
    ...
    return *(a2 + a3);
}

通过逆向和调试我找到了这个函数的最上级调用是从IntelFBClientControl::actionWrapper函数开始的,通过调试我们发现传到ReadRegister32的参数a3是用户空间可控的,且没有做任何边界检查,也就是说这个是一个越界读,并且在它的上级函数中发现:

case 0x852:
	*(a5+2) = AppleIntelAzulController::ReadRegister32(*(this+2), *a3);

而这个a5正好是IOConnectCallMethod中要传回用户空间的那个outputStruct的地址,也就是说这是一个信息泄漏

getDisplayPipeCapability

这个是我通过类似的pattern去找到的,也是一个信息泄漏的问题,同样在AppleIntelFramebufferAzul中,首先来看看一部分代码:

//a1是this指针
v5 = *(a1+ 8 * *a2 + 0xf60);
if ( v5 ){
    if( *( v5 + 0x1dc ) && ( ! *(*(v5 + 0x3f70 ) + 0x100 ) ) ){
        memcpy(a3, (v5 + 0x2170), 0x1d8);
        *v3 = *v4
        result = 0;
    }
    else{
        ...
    }
}
else{
    ...
}
return result;

其中a2是我们可控数据且没有做大小检查,a3outputStruct地址,也就是说如果我们进入memcpy分支,同样可以做到一个信息泄漏。

0x01.漏洞利用

这里我用来做提权的有两个漏洞,queryCompletion我们可以通过参数来控制越界call,这个的利用就比较简单,直接通过堆喷构造数据然后泄漏kslide做ROP即可,但是我们在10.13上需要寻找新的gadget,上一次还用的是project-zeropwn4fun上用的一个,一开始我的思路有问题,总想着有这样一个pattern

push rax
...
...
;... is no pop
pop rsp
...
...
;... didn't change rsp
ret

但是这样毫无疑问是自己把自己给框住了,事实上可以存在这样的一种pattern

push rax
pop rsp
...
...
;... didn't change rsp
ret

而且我们的出发点可以放在二进制搜索上,直接从切入一段机器码,不需要理会其上下文,比如我们可以在ida中搜索:

50 5c

然后通过ida的undefinecode来找到我们需要的gadget,这样的话很快就能找到了,但是我因为思路问题卡了两天。

接下来就是需要一个info leak来泄漏kslide了。

我一开始找到的一个infoleakReadRegister32,但是这个限制比较多,只能从一个很靠后的地址往后读,后面基本没有什么有效信息了,也不会有对象来给我们计算kslide。所以我在尝试了一段时间后放弃了

后来我又找到了一个,这个的利用条件相对来说也比较苛刻(我们可以控制*a2):

//a1是this指针
v5 = *(a1+ 8 * *a2 + 0xf60);
if ( v5 ){
    if( *( v5 + 0x1dc ) && ( ! *(*(v5 + 0x3f70 ) + 0x100 ) ) ){
        memcpy(a3, (v5 + 0x2170), 0x1d8);
        *v3 = *v4
        result = 0;
    }
    else{
        ...
    }
}
else{
    ...
}
return result;

从上面可以看到我们需要满足以下几个条件才可以进入memcpy的分支:

  1. v5有效
  2. *(v5+0x1dc)不为0
  3. *(v5 + 0x3f70 )是一个有效内核地址
  4. *(*(v5 + 0x3f70 ) + 0x100 )为0

并且要想泄漏kslide还需要满足一个条件,那就是从(v5 + 0x2170)(v5 + 0x2170 + 0x1d8)的地址上存在着有效数据供我们使用。

我刚一看,就有两个想法:

  1. 在这个对象内部来找,看看有没有合适的,这是最简单的一种做法,后来我在一次实验中在偏移0x1398处找到了符合条件的,当时十分高兴:

    infoleak

    后来想到一个问题,如果这个值超出了对象,那就是我们不可控的了,而且还有一个问题就是就算在对象内,有这么多次的解引用也不一定每次都能满足,我重启后果然失效了,我后来看了一下这个对象的大小就是0x1f60,果然不出所料

  2. 另外一个就是做堆喷,来调偏移,这里我是通过mach_msg来实现的,泄漏分为两步:

    第一次先读回来一个数据,里面泄漏了到底是哪一个消息

    我们释放这个消息,通过一个内核对象占住,第二次读回来,泄漏对象虚表

target on MacOS 10.13 or 10.13.1

exp

poc

具体的还有一些细节问题在poc的注释中做了一些解释

代码放在我的github上了

0x02.参考链接

labs_mwrinfosecurity

mac OS X internals 第九章

NirvanTeam

Posts: 1

Participants: 1

Read full topic

CaptainHookTweak和MonkeyHook生成的Dylib有什么区别


Wxid 怎么用

通过电脑安装ipa时提示appexbundleidnotprefixed

$
0
0

@aomderl wrote:

我修改ipa内的info内应用名称跟唯一标识之后 用爱思或者PP安装失败 提示appexbundleidnotprefixed。 有些应用可以安装 有些不行。
已经安装AFC2和appsync并成功运行
ios12系统 已越狱

Posts: 1

Participants: 1

Read full topic

如何让自己的app在切换到后台后,继续保持运行

$
0
0

@hushilin wrote:

正常情况下,root app 和普通app 打开后 切换到后台,系统就会挂起暂停运行。

那如何让自己的App在切换到后台后,还能继续运行 不暂停挂起呢?

大神给点思路!

Posts: 1

Participants: 1

Read full topic

MonkeyDev 反反调试求解

Hikari编译项目时报redefinition of 'strstr'

$
0
0

@qokelate wrote:

需求:
解决错误~~

**日志:

❌  /Library/Developer/Toolchains/■■■■■■.xctoolchain/usr/include/c++/v1/string.h:104:13: redefinition of 'strstr'

const char* strstr(const char* __s1, const char* __s2) {return __libcpp_strstr(__s1, __s2);}
      ^

❌  /Library/Developer/Toolchains/■■■■■■.xctoolchain/usr/include/c++/v1/string.h:106:13: redefinition of 'strstr'

      char* strstr(      char* __s1, const char* __s2) {return __libcpp_strstr(__s1, __s2);}

**代码:
OC和C++混编, 文件类型为.mm,调用C++的stdio

操作步骤:
使用xcodebuild -toolchain com.naville.■■■■■■ -workspace xxx.xcworkspace -scheme xxx编译

** 环境:
macos/10.13.4 (17E199)
xcode/9.4.1

Posts: 1

Participants: 1

Read full topic

Viewing all 5725 articles
Browse latest View live