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

关于重签名合法性的问题

$
0
0

@yangyan888 wrote:

需求: 公司是做EMM的,持有企业级开发者账户。重签名的目的主要是为了进行用户行为监测和控制。

操作步骤: 目标用户是一些大企业。这些企业购买我的安全监测平台,在平台上对他们开发好的一些企业级应用进行代码注入,注入一个监测用的动态库,随后通过脚本语言进行重签名。问题在于,重签名脚本里面用到的描述文件是唯一的。给多个应用进行重签名,并通过MDM进行批量分发的话,会不会出现苹果封杀证书的问题?
类似的问题出现在了某公众号的重签名迅雷上面,如果我按照上面的签名逻辑进行操作,会不会也有证书被吊销的风险呢?

Posts: 9

Participants: 4

Read full topic


请好心人行行好告诉我接下来该怎么做

iOS13越狱机器上面的ipa包,不需要砸壳就可以class-dump

是否有可能跨进程更改shareExtension获取到的_hostBundleId?

$
0
0

@jwfstars wrote:

iOS ShareExtension开发中,被打开extension的App可以通过读取parentViewController的私有属性_hostBundleId,来知道是被哪个App所吊起。但反过来,是否有办法在吊起方,修改某些值,使得被吊起方获取到被篡改的bundleId?

@implementation ShareViewController

  • (void)willMoveToParentViewController:(UIViewController *)parent
    {
    // parent: _UIViewServiceViewControllerOperator
    NSLog(@"%@", [parent valueForKey:@"_hostBundleId"]);
    }

吊起方的UIActivityViewController 持有一个 _UIRemoteViewController实例,然后通过XPC进行跨进程通信传递数据,但没有找到方式可以更改另一个进程所接收到的bundleId,怀疑bundleId不是传过去的而是通过进程id找到的。

求解是否有什么办法可以解决这个问题?在吊起方篡改接收方取到的_hostBundleId?

Posts: 1

Participants: 1

Read full topic

如何高效找到越狱检测函数?

$
0
0

@EdwardChan wrote:

需求: 绕过一款app的越狱检测.

现状: 打开app以后,页面空白,然后跳到safari页面,上面写了越狱设备不支持使用,重回app界面又会打开此页面. 我的思路有俩个但是行不通:

  1. 找出带有jailbreak字眼的函数进行hook. 但是没有进入我hook的函数
  2. 打开页面用的应该是 open函数, 用fishhook 进行hook,然后打印调用栈. 但是我不知道入口函数是哪个, 现在注入的这个也是没有生效的.

代码如下

// See http://iphonedevwiki.net/index.php/Logos

#import <UIKit/UIKit.h>

#include "fishhook.h"
#import <dlfcn.h>

%hook AppsFlyerUtils

- (bool) isJailBreakon
{
    %log;
    NSLog(@"Hey, appsflyer jailbreak ");
    return NO;
}

%end

%hook SmartBeatUtil

- (bool) isJailbroken
{
    %log;
    NSLog(@"Hey, smartbeatutil jailbreak ");
    return NO;
}

%end

static int (*orig_close)(int);
static int (*orig_open)(const char *, int, ...);

int my_close(int fd) {
    NSLog(@"Calling real close(%d)\n", fd);
    return orig_close(fd);
}

int my_open(const char *path, int oflag, ...) {
    va_list ap = {0};
    mode_t mode = 0;
    
    if ((oflag & O_CREAT) != 0) {
        // mode only applies to O_CREAT
        va_start(ap, oflag);
        mode = va_arg(ap, int);
        va_end(ap);
        NSLog(@"Calling real open('%s', %d, %d)\n", path, oflag, mode);
        return orig_open(path, oflag, mode);
    } else {
        NSLog(@"Calling real open('%s', %d)\n", path, oflag);
        return orig_open(path, oflag, mode);
    }
}

%hook OliverAppController
- (void)didFinishLaunching {

    // fishfook use
    struct rebinding binds[2];
    // orig_close是一个函数指针,(void *)&orig_close 是一个返回参数,所以用取地址,(void *)&orig_open也是类似的
    struct rebinding bind1 = {"close", (void *)my_close, (void **)&orig_close};
    binds[0] = bind1;
    binds[1] = (struct rebinding){"open", (void *)my_open, (void **)&orig_open};

    // rebind_symbols((struct rebinding[2]){{"close", my_close, (void *)&orig_close}, {"open", my_open, (void *)&orig_open}}, 2);
    // 转换为:
    rebind_symbols(binds, 2);

    return %orig;
}

%end


大佬们帮我看下我的思路有没有问题,以及入口函数怎么找(来自萌新的提问)

Posts: 3

Participants: 2

Read full topic

C++ lldb调试

$
0
0

@CheaterHu wrote:

逆向游戏,在lldb调试的时候遇到问题,不知道怎么打印相关的值。
c++类的部分定义如下:
F713DE97-4152-48D4-B3A9-9313F51A2E3F
在hook到该类的一个成员函数之后,拿到this指针,但是对于像string这种类型的数据始终打印不出对的数据,想_id这种uint类型的就能打印,感觉是我的命令错了,我开始用的这个命令:

po *(char *)(obj+0x10)

感觉也能打印,但是打印的好像就只有一个字节的数据,请问下应该怎么样才能打印出string的这个数据。
下面是我打印的数据:
25AD4214-610B-44C5-A40D-2A55B69E8F21

E428AA0A-6759-4807-BEC6-CFD10F55DC8B

Posts: 1

Participants: 1

Read full topic

执行命令frida -U -f com.xxx -l hook.js –no-pause,报错

$
0
0

@211Yang wrote:

需求:
用frida注入hook js,■■研究加密签名

**代码:
frida -U -f com.xxx -l hook.js –no-pause

操作步骤: 安装frida环境后用ios11.4的越狱iPhone5s连接电脑,执行命令frida -U -f com.xxx -l hook.js –no-pause

** 任何其他描述:
执行objection --gadget “com.xxx” explore命令也报错Unable to connect to the frida server: unable to launch iOS app: The operation couldn’t be completed. (FBSOpenApplicationErrorDomain error 1.)
执行frida -n 众家联 -l hook.js命令报错 Failed to spawn: unable to find process with name ‘众家联’,(众家联是我开发的app)
执行frida -n QQ -l hook.js、或frida -n 微信 -l hook.js都正常

** 环境:
Mac os 10.14.4系统
python3.7
frida12.8.1
ios11.4

Posts: 1

Participants: 1

Read full topic

iOS11完美越狱不请自来

$
0
0

@Halo-Michael wrote:

直接上地址


应该是在36c3里面演示了的
还没看原理 不过应该之后会有介绍原理的文章

Posts: 1

Participants: 1

Read full topic


Lldb不走断点

$
0
0

@syx wrote:

1
1:lldb运行的这个两个地址和 hopper这个首地址能够对上,能不能说明这个hopper里面的地址是没问题的


在这个地方下了一个断点,点击按钮程序不运行这个地方,用cycript已经确认按钮是响应的这个事件,可能存在哪些方面的原因导致不运行断点

iphone5s 9.3.2 hopper里面反编译的是arm64的machO

Posts: 1

Participants: 1

Read full topic

商业项目需求:请教如何禁用APP移动网络和WIFI

$
0
0

@yangyan888 wrote:

需求:公司是做DLP数据防泄漏的。竞品有禁止使用移动网络跟禁止使用wifi功能。我们这边也要做,大部分是基于CaptainHook做的。
竞品功能列表如下:


我们也是类似的平台。做个动态库,根据图中的配置,配置动态库里的功能,植入到APP中,达到数据防泄漏的目的。
想请教大家的就是如何做到禁止使用移动网络跟禁止使用wifi功能。
小弟的想法是先判断网络类型,然后根据需求直接禁用网络请求框架NSURLSession 的resume方法,不让它发起请求。老的网络请求也用这逻辑HOOK。还得禁用UIWEB和WKWEB的加载方法。
总是觉得不是很缜密,因为对网络层知之甚少。TCP,HTTP,socket理解的也不很深入,觉得自己的思路有所疏漏。想请教一下各位比较完美的切入点来实现禁用使用移动网络跟WIFI的功能。烦请赐教。

Posts: 4

Participants: 2

Read full topic

如何获取屏幕当前获取到焦点的输入框,然后写入文字

$
0
0

@Tandrow wrote:

使用的背景是:在游戏中,点击输入框使其获得焦点后,调用函数,能自动填充函数中传过来的文字。
目前我的问题是:1、我是hook的SpringBoard,是否能获取到游戏中获得焦点的输入框
2、有没有方法能自动写入文字到当前聚焦的输入框的
有没有大佬做过类似的功能,望指点一二,万分感谢

Posts: 2

Participants: 2

Read full topic

楼主好,借宝地一用

$
0
0

@goodcyg wrote:

本人逆向小白一个,遇到问题自己研究,发现阻力很大,得不到正确的引导,进步缓慢,特此建立一个qq群:237747934,希望和逆向技术爱好者进行交流,共同进步。本群为高级群,禁止一切广告,进则请准守群规。特此接宝地一用,望楼主见谅。多谢。

Posts: 1

Participants: 1

Read full topic

Unity游戏逆向讨论

$
0
0

@CheaterHu wrote:

首先unity游戏HTTP请求相当少,多是socket发包,这个协议■■难度比较大,而对于UI分析来说又不能拿到具体的控件,整个就只有一个xxxunityview, 比如去掉游戏里面的弹窗,感觉都没办法实现。除了用il2cpp分析出代码,然后hook代码之外,还能做什么。

Posts: 1

Participants: 1

Read full topic

B站直播间特效表情文件的获取

$
0
0

@tbag wrote:

小破站今年的跨年晚会很是不错,在跨年夜总算给本阿宅一点点精神慰藉。在用手机看直播的时候,大家刷的礼物特效不停出现,我比较钟爱其中的“打call”,想着加到聊天软件里做个表情,以后兄弟们分享文章的时候可以商业互吹一番。搜了一圈没有发现现成的,今天空下来,随即手撸了一下找到表情文件,简单记录一下过程。

准备

老套路,越狱iPhone,AppStore里下载B站客户端,打开 FLEXible 开关,搬出 FLEX 看看这个特效表情是个啥子东西。设置好后,进入客户端,在首页找到 直播 入口,然后里面选个人气高的直播间进去,耗费巨资手刷一个打call表情,待显示时候,查看FLEX的Views结构如下:

可疑的类为 BBLiveBaseSVGAAnimationViewSVGAPlayer , 我们知道SVG是可以作为矢量图像的,点进去看一下,发现里面有个 SVGAVideoEntity ,进一步查看,确认这个就是表情文件了,里面的images字典就是是图片帧各个部分的元素的碎图。

到此,我们定位到了特效文件的显示对象。

获取

按惯例,先广撒网一下,Google一下 SVGAPlayer ,居然有意外收获: SVGAPlayer 是YY的UED团队出品的一个特效方案,类似于airbnb的Lottie,可以将AE或Flash动画导出到客户端所用。网站http://svga.io/中有详细介绍,并且含有一个svga文件的在线预览页面

根据其iOS端使用手册,验证 SVGAParser 类 确实也在B站客户端中有引用,hook一下它的几个parseWith函数,运行后顺利拿到初始化特效文件的日志:

SVGAParser parseWithData, <789c4cba 05505c5b d3358cbb bbbb0577 ... b6d054d7 e309d1ff 01424fd4 86>, cacheKey 14EAD217D8A29CA4B7320F1CCF549584

789c4cba开头的应该为动画的Data数据,数据有点大,这里截断显示了。

根据cacheKey在app的存储目录下搜索一番, find . -name "*14EAD217D8A29CA4B7320F1CCF549584*" 无结果,说明没这个文件,不用灰心,换grep再撸一遍, grep -rn "14EAD217D8A29CA4B7320F1CCF549584" ./ ,这次有意外收获:
(多余的目录前缀已删掉)

Binary file ./Library/Caches/live/animation/manifest.sqlite-wal matches

匹配了两个sqlite的wal文件。顺带说一嘴这个是什么?WAL是 Write-Ahead Logging 的意思,是实现原子提交和回滚的一种机制。How WAL Works

检查一下 animation 文件夹下还有什么? data manifest.sqlite manifest.sqlite-shm manifest.sqlite-wal trash ,在data文件夹下找到一堆类似md5命名的文件,大小为几百K,拷贝到Mac上 file一下:

file ./Library/Caches/live/animation/data/b84008c716944e598887d43b3ff89514
./Library/Caches/live/animation/data/b84008c716944e598887d43b3ff89514: Apple binary property list

很显然了,是plist文件。改后缀名为plist后打开查看:

将数据部分提取出来保存为文件:
/usr/libexec/PlistBuddy -c 'Print :"$objects:1"' b84008c716944e598887d43b3ff89514.plist > 1.svga

用svga文件在线预览工具 打开刚才保存的 1.svga,播放成功。

吼,剩下的就是跑shell脚本从这些plist文件中提取一下svga的过程了,最后,终于找到了心爱的打call表情,最后的最后,无奈录屏转为GIF了…

提取的一些svga文件记录

56

Posts: 2

Participants: 2

Read full topic

[IOS控制台]有关后台定位刷新问题

$
0
0

@Jkwin wrote:

需求:越狱手机上开发后台位置获取控制台程序,即时位置获取和实时位置获取。
问题:位置获取之后再次获取不会刷新,位置一直是第一次获取的位置信息。
代码:
// 初始化
self.location
.swpLocationMode(SwpLocationRequestAlwaysAuthorization)
// 打开定位
.swpLocationOpenChain()
// 定位失败回调
.swpLocationErrorChain(^(SwpLocation *swpLocation, NSError *error){
NSLog(@“定位失败:%@”, error);
})
// 定位成功,获取定位信息回调
.swpLocationReverseGeocodeChain(^(SwpLocation *swpLocation, SwpLocationModel *model, NSError *error){

       if (!model.locationAddress) {
           
           NSLog(@"定位失败:%@", @"获取蜂窝数据权限问题,数据获取为空,请点击重新定位");
           return;
       }
       
       
   NSLog(@"位置:%@%@%@%@%@%@%@",model.country,model.administrativeArea,model.subAdministrativeArea,model.locality,model.subLocality,model.thoroughfare,model.subThoroughfare);
       
   });

Posts: 1

Participants: 1

Read full topic


Agora.io/声网 招 iOS/macOS 逆向/崩溃分析相关的人才 20k~30k 薪资可谈

$
0
0

@guohai wrote:

公司信息

www.agora.io 实时互联网行业领军技术供应商

职位名称

工具开发工程师
开发工具分析行业信息,开发工具解决疑难杂症

职位要求

1、熟悉 iOS 客户端对抗知识,掌握软件逆向静态分析、动态调试、代码跟踪等
2、熟悉 iOS 开发环境,掌握 Objective-C/C++ 开发调试技巧,熟练分析偶现崩溃等
3、有其他平台逆向经验优先,开发经验优先

联系方式
微信 guohai
邮箱 guohai@agora.io

工作地点
中国.上海.杨浦

Posts: 2

Participants: 2

Read full topic

IDA7.2分析libwechatnormsg.so卡死

Ios framework被加密

$
0
0

@CheaterHu wrote:

对于App Store的包,都是被加密的,这是没有疑问的,可以对App Store的包进行砸壳,得到不加密的包,这样就可以放到monkeydev进行调试,其实有些砸壳工具砸壳之后就会遇到砸壳不完全的问题,这样就会导致framework目录下面的一些framework还是处于加密状态。我想问的是,对于像PP助手这样的市场下载的包不是说没有加密么,但是调试的时候某些APP还是会提示xxx.framework 未解密,otool查看也确实是处于加密状态,那么它这种只加密framework是怎么实现的,加密之后,自己由怎么调用呢?二进制都没加密,framework却被加密了。大佬们给点提示呢。

Posts: 2

Participants: 2

Read full topic

IOS13.2.3获取微信小游戏/小程序资源文件+代码

$
0
0

@makdbb wrote:

有时候看别的小程序/小游戏有些功能不知道如何实现,想参考下,但是没有源码,或者看到一些游戏的资源做的不错,想拿下来改改。怎么办?
今天就来看看怎么拿到资源文件和代码(虽然代码是加密过的),不过一般js的加密也就是混淆压缩,做了变量名替换,资源文件就没有压缩的了。
(之前网上也有很多人写过怎么弄,但是实际上很多都不可用了,所以自己也记录下。)

  1. 先试玩一下觉得可以的小游戏或者小程序,让微信先把包下下来。
    一般情况下开发微信小游戏/小程序的时候,会把一个包上传到微信服务器,但是这个包有一定的大小限制,一般都在几MB,但是微信给了一些动态加载资源的方式,自己可以从自己的服务器或者cdn上面去拉取新的资源包来更新自己的小程序/小游戏,这个就俗称热更新。当然代码中也会去加载一些动态的资源。

简单总结下一共有三种资源需要获取:

  • 基础包中资源(微信服务器拉到微信本地)
  • 热更新加载包中的资源(从开发者服务器拉到微信本地)
  • 动态资源(从开发者服务器拉到微信本地)
2. ssh到越狱手机获取
1ssh root@localhost -p 2222
3. 进入cydia调试微信
1cyrun -b com.tencent.xin -e
4. 找到微信沙盒Library目录
1[[NSFileManager defaultManager] URLsForDirectory:NSLibraryDirectory inDomans:NSUserDomainMask][0]2我的手机是这个目录:3file:///var/mobile/Containers/Data/Application/38BF9699-C8DE-4570-95CF-09876BE91D41/Library/
5. 退出cydia,进入沙盒Library目录find一下wxapkg文件
1cd /var/mobile/Containers/Data/Application/38BF9699-C8DE-4570-95CF-09876BE91D41/Library/; find -name "*.wxapkg";
6. 退出手机,scp把wxapkg拉回来。
1scp -P2222 root@localhost:/var/mobile/Containers/Data/Application/38BF9699-C8DE-4570-95CF-09876BE91D41/Library/WechatPrivate/9454ac8b05a1983e8255ea94d91cc7b2/WeApp/LocalCache/release/wxb92d4d650d51eda8/117.wxapkg .
7. 拉回来的是一个wxapkg文件,其实也只是一种文件格式。git上找个工具解析出来就行。
1php ./parse.php 117.wxapkg

我看git上有用php写的也有用go写的,我本地有php所以就用php了,自己也可以用go来弄个下。
给一个git连接:https://github.com/Clarence-pan/unpack-wxapkg
源码有兴趣可以看看。其实也就是按照固定格式解析二进制文件。
最终获得的文件有这些:

2. ssh到越狱手机获取
1ssh root@localhost -p 2222
3. 进入cydia调试微信
1cyrun -b com.tencent.xin -e
4. 找到微信沙盒Library目录
1[[NSFileManager defaultManager] URLsForDirectory:NSLibraryDirectory inDomans:NSUserDomainMask][0]2我的手机是这个目录:3file:///var/mobile/Containers/Data/Application/38BF9699-C8DE-4570-95CF-09876BE91D41/Library/
5. 退出cydia,进入沙盒Library目录find一下wxapkg文件
1cd /var/mobile/Containers/Data/Application/38BF9699-C8DE-4570-95CF-09876BE91D41/Library/; find -name "*.wxapkg";
6. 退出手机,scp把wxapkg拉回来。
1scp -P2222 root@localhost:/var/mobile/Containers/Data/Application/38BF9699-C8DE-4570-95CF-09876BE91D41/Library/WechatPrivate/9454ac8b05a1983e8255ea94d91cc7b2/WeApp/LocalCache/release/wxb92d4d650d51eda8/117.wxapkg .
7. 拉回来的是一个wxapkg文件,其实也只是一种文件格式。git上找个工具解析出来就行。
1php ./parse.php 117.wxapkg

我看git上有用php写的也有用go写的,我本地有php所以就用php了,自己也可以用go来弄个下。
给一个git连接:https://github.com/Clarence-pan/unpack-wxapkg
源码有兴趣可以看看。其实也就是按照固定格式解析二进制文件。
最终获得的文件有这些:
1578503504247

为了避免麻烦,每次还得上手机,我写了一个脚本,连上手机直接拉,拉完直接抽文件,哈哈,请允许我卖弄一下。(记得把parse.php放到脚本同目录下)代码如下:

 #########################################################################
 # File Name: get_wxapkg.sh
 # Author: 小马的爸爸
 # mail: 我还没有伊妹儿
 # Created Time: 2020-01-09
 #########################################################################
 #!/bin/bash
 wxapkgs=`ssh root@localhost -p2222 "find /var/mobile/Containers/Data/Application/ -name '*.wxapkg'"`
 for wxapkg in $wxapkgs;
do

    echo "COPYING $wxapkgs"
    scp -P2222 root@localhost:/$wxapkg .
    php ./parse.php ./${wxapkg##*/}
done

最后,我今天编辑文章用的一个在线的markdown编辑器,share一下~
最后希望能和大家多多交流,有兴趣可以加我微信一起学习讨论哈。nicholas_mcc

Posts: 4

Participants: 2

Read full topic

求 iOS 13.2越狱方案

Viewing all 5658 articles
Browse latest View live


Latest Images