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

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

 找回密码
 立即注册
查看: 6206|回复: 16

如何检测frida,禁止frida对app进行逆向

[复制链接]

41

主题

109

帖子

609

积分

高级会员

Rank: 4

积分
609
发表于 2020-10-11 17:22:06 | 显示全部楼层 |阅读模式
frida这个工具非常强大,
如何检测frida,禁止frida对app进行逆向。在越狱情况下如何反Frida?在非越狱情况下如何反Frida?
回复

使用道具 举报

119

主题

580

帖子

2607

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2607
发表于 2020-10-11 17:50:18 | 显示全部楼层
可以检测端口,frida-server 会开启默认端口,用 lsof 可以查看,在 apt.ioshacker.net 源上可以下载,比如 lsof -i tcp 查看所有TCP端口,你看一下 frida 的端口号
回复

使用道具 举报

41

主题

109

帖子

609

积分

高级会员

Rank: 4

积分
609
 楼主| 发表于 2020-10-13 09:46:48 | 显示全部楼层
exchen 发表于 2020-10-11 17:50
可以检测端口,frida-server 会开启默认端口,用 lsof 可以查看,在 apt.ioshacker.net 源上可以下载,比 ...

我想在自己的app中检测frida,网上只看到看雪上有人翻译老外的文章,使用内存检索关键字的方案。
我在lldb当中使用 image list -o -f 可以得到所有加载模块,这其中可以看到frida,但是不知道如何在自己代码中实现该功能。
回复

使用道具 举报

119

主题

580

帖子

2607

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2607
发表于 2020-10-13 12:32:02 | 显示全部楼层
_dyld_get_image_name 这个函数可以遍历动态库,书中有讲解过的。
回复

使用道具 举报

41

主题

109

帖子

609

积分

高级会员

Rank: 4

积分
609
 楼主| 发表于 2020-10-14 09:27:15 | 显示全部楼层
exchen 发表于 2020-10-13 12:32
_dyld_get_image_name 这个函数可以遍历动态库,书中有讲解过的。

这个函数和image list -o -f 显示的不一样,例如dylib,frida使用dyld_get_image_name是显示不出来的。
dyld_get_image_name只能显示加载的动态链接库,dylib和frida,这种应该怎么叫,我不知道,叫模块么?
回复

使用道具 举报

119

主题

580

帖子

2607

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2607
发表于 2020-10-14 10:28:16 | 显示全部楼层
dyld_get_image_name 获取的应该是和 image list -o -f 一样的啊,下面这个代码你试一下。
  1. #import <mach-o/dyld.h>

  2. uint32_t count = _dyld_image_count();
  3. for (uint32_t i = 0 ; i < count; ++i) {
  4.    
  5.     const char *name = _dyld_get_image_name(i);
  6.     NSLog(@"name: %s", name);
  7. }
复制代码


回复

使用道具 举报

119

主题

580

帖子

2607

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2607
发表于 2020-10-14 10:36:21 | 显示全部楼层
你在 image list -o -f 看到的 frida 模块是叫什么名字?一会我也试一下。
回复

使用道具 举报

41

主题

109

帖子

609

积分

高级会员

Rank: 4

积分
609
 楼主| 发表于 2020-10-15 10:08:06 | 显示全部楼层
这个是lldb得到数据的结果
(lldb) image list -o -f
[  0] 0x0000000004b00000 /Users/sorke/Library/Developer/Xcode/DerivedData/testOpen-bubwyliyuporlthhugwnbxxxdhph/Build/Products/Debug-iphoneos/testOpen.app/testOpen
[  1] 0x0000000104ea8000 /Users/sorke/Library/Developer/Xcode/iOS DeviceSupport/12.3 (16F156)/Symbols/usr/lib/dyld
[  2] 0x0000000039140000 /Users/sorke/Library/Developer/Xcode/iOS DeviceSupport/12.3 (16F156)/Symbols/System/Library/Frameworks/Foundation.framework/Foundation
[  3] 0x0000000039140000 /Users/sorke/Library/Developer/Xcode/iOS DeviceSupport/12.3 (16F156)/Symbols/usr/lib/libobjc.A.dylib
一下是同一个位置得到通过代码得到的内容
2020-10-15 10:03:53.531032+0800 test[3623:320232] name: /Library/MobileSubstrate/MobileSubstrate.dylib
2020-10-15 10:03:53.531189+0800 test[3623:320232] name: /Developer/usr/lib/libBacktraceRecording.dylib
2020-10-15 10:03:53.531330+0800 test[3623:320232] name: /Developer/usr/lib/libMainThreadChecker.dylib
2020-10-15 10:03:53.531676+0800 test[3623:320232] name: /Developer/Library/PrivateFrameworks/DTDDISupport.framework/libViewDebuggerSupport.dylib
2020-10-15 10:03:53.531840+0800 test[3623:320232] name: /System/Library/Frameworks/Foundation.framework/Foundation
2020-10-15 10:03:53.531996+0800 test[3623:320232] name: /usr/lib/libobjc.A.dylib
2020-10-15 10:03:53.532145+0800 test[3623:320232] name: /usr/lib/libSystem.B.dylib

_dyld_get_image_name只能得到dylib这种动态链接库的信息,而dyld,Foundation,还有守护进程什么的,貌似都显示不出来。

回复

使用道具 举报

119

主题

580

帖子

2607

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2607
发表于 2020-10-15 10:14:31 | 显示全部楼层
image list -o -f 和 _dyld_get_image_name 是一样的,上面 Foundation 不是也获取到了吗?另外你是不是没搞清楚,守护进程是另一个进程,image list -o -f 和 _dyld_get_image_name 肯定都获取不到啊,它们俩都是获取进程加载的模块,你只能枚举进程才能获取守护进程。
回复

使用道具 举报

41

主题

109

帖子

609

积分

高级会员

Rank: 4

积分
609
 楼主| 发表于 2020-10-15 17:03:05 | 显示全部楼层
exchen 发表于 2020-10-15 10:14
image list -o -f 和 _dyld_get_image_name 是一样的,上面 Foundation 不是也获取到了吗?另外你是不是没 ...

Symbols/usr/lib/dyld.
dyld算是进程吧,是APP父线程,我这么理解的。
那么我想,枚举进程,或者列出app,虚拟内存结构,可以看到很多系信息。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|iOSHacker

GMT+8, 2021-9-28 16:14 , Processed in 0.021875 second(s), 19 queries .

iOS安全论坛

© 2017-2020 iOS Hacker Inc. 京ICP备17074153号-2

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