最近会帮朋友搞一些ios破壳和逆向、外挂的功能,也算是涨了见识。下面列举一些常见的黑产需求:
杂谈:
时间久了,到现在记得的一些逆向过程中印象比较深的事情。
游戏启动的时候要验证授权,没有授权直接kill。
程序启动的时候,有6、7个方法判断是否是越狱手机,是越狱手机kill,加大逆向成本。
修改程序中的所有连接域名,换壳。
还有逆向的较量,别人加的外挂防破解,而你又要去破解他的外挂,逆向之防逆向。
最近的需求时在别人破解过的包中再次破解。
原始App是一个保险销售使用的销售软件,被人破解,加入随时随地指定坐标打卡。但是加了一个授权码,收费使用。
而我的需求就是在已破解的情况下,再次绕过授权码。
通过抓接口,找到验证接口域名,然后确定是每个动态库 的作用。(以为是已经破解的,所有 framwork 目录下已经有了5,6个自定义的dylib)。
如下:其中真实名字已隐藏,毕竟搞别人的app不太地道。
经确定控制验证的库为 custom3.dylib,然后用hopper找验证函数。
其中 !@#$*@#(!@^#(!@^#(!@^# 为key,我就想着直接在启动时写入正确的激活码就可以了。但是并不是一帆风顺,key其实和设备有绑定关系,这个被我忽略了,走了挺多弯路才知道。所以我还需要修改设备的标示,继续找。
额,然后在想办法在 UUIDManager getUUID 返回已经绑定过的UUID就可以。
这个算是通过了。但是要有一些dylib打包的错误。这个都是小问题了。
如果是做ios开发的话,对逆向有了解的话,对开发和安全都会有提高,比如上面的key就可以不用写成明文。
1/进入目录
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
找到手机对应版本,点开dmg;拷贝debugserver备用
/usr/bin/debugserver
2/修改权限
导出权限
修改内容
编辑后将其合入debugserver【注意-S后面不要空格】
3/将编辑完成的文件放入手机的/usr/bin目录
电脑端 *** 作->
手机端 *** 作->如果有过 *** 作,需要删除debugserver
在Mac上打开命令行窗口,让10011端口与10011端口映射、10010与22端口映射
在Mac上新建命令行窗口,然后SSH登陆到手机
登录到手机后,启动手机的debugserver服务,让其与App建立交互
在Mac上新建命令行窗口
使用LLDB命令c,先让程序继续运行
测试
breakpoint使用
1、下断点
或
打印:
断点位置信息,执行便能在该处断住。
连续下多个断点:
运行 c 继续运行, n 单步执行, s 进入函数内部执行,finish执行到函数尾部。
2、查看断点列表
打印:
3、禁用断点
4、启用断点
5、删除所有断点
删除只能删除一组,不能单个删除
6、设置 selector
将为所有该方法设置断点
7、设置文件中的 selector 断点
8、设置带有相同字符串的方法断点
打印:
如上也给其他带有 Game 字符的类下了断点。
给某一个文件下的带有相同字符串的方法下断点:
bt、frame命令
1、查看函数相关信息,使用 p、down 追踪函数的调用和被调用关系
使用 bt 命令查看函数调用堆栈
2、查找方法的调用者及方法名称
methods、pviews
1、 methods 打印当前对象的属性和方法
2、 pviews 打印当前视图的层级结构
以上两个命令是 lldb 插件名中的命令。 chisel安装
……
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)