随笔分类 - app逆向
摘要:这静态看代码,看了半天,愣是没看出来哪里用了system.loadlibrary。
用这个grep找到的是这个so,其实并不是
这里继续用yang神的hook_RegisterNative.js,一顿输出,直接找到这个so:
很nice。
卧槽,跑完直接把我手机干关机了。有点6
阅读全文
摘要:但是有个问题就是,那个network类,需要在构造方法里定义一下:
另外,这个方法的签名,怎么拿到,用jadx的smali代码查看:
这里就直接有了,复制过去就可以用,注意最后的【;】也要带上。
5.验证是否可用
试试刚才的两种调用的结果,能不能拿来请求,然后正常返回呢?
ok,两个都可以 ,说明主动调用,整个过程,很成功
结语
整个过程很轻松加愉快。除了最后的dvmObject数组的转换,其他没啥需要记录的。
阅读全文
摘要:下载完,解压,放到目录里即可,mac的话
然后直接执行adb即可用,你为了方便可以把adb配置上bash_profile里。
还有个比较简单的方法就是直接brew安装:
brew cask install android-platform-tools
安装完了之后,手机打开设置,设置里面,关于本机,然后狂点系统版本号5次,开启开发者模式,点击进入开发者模式,开启usb调试
阅读全文
摘要:不能搞。过程我就不细说了,结果就是我帮她找回来了并给了她。
然后她顺便跟我说了整个被骗的过程,就是在Q群,微信群,有所谓的兼职,工作是快递单号填写,打字员之类的,你加完qq去聊,他先跟你说保证绝对免费之类的,玩的就是各种话术了,最后大部分人都会被骗的,其中他们是用某语音在聊天,然后这个app只会保存几天的消息(现在改没有就不知道了),聊天记录时间长了就会自动清除,所以你如果报警,聊天记录已经不好提供了(截图的话,我听说是不太具有可信度的,因为可以p图)
然后这个某语音app就是今天的目标了,当时我同学是很想举报这个软件的,这个app网上搜,应用市场里的评论基本都说是骗子啥的,大部分被骗案例在那段时间里也确实用的这个软件,我个人觉得,当时来看,这个软件的归属者一定有责任的,该平台没有举报中心,没有审核机制,谁都可以在里面发消息,发的诈骗消息他们也不管的。
如今突然想起来这个app,当时的我还不会app逆向,再看它,感觉整改过了,所以还得多亏有关部门这几年来的严厉打击网络犯罪啊
阅读全文
摘要:继续跟着龙哥的unidbg学习:SO逆向入门实战教程六:s_白龙~的博客-CSDN博客
还是那句,我会借鉴龙哥的文章,以一个初学者的角度,加上自己的理解,把内容丰富一下,尽量做到不在龙哥的基础上画蛇添足,哈哈。感谢观看的朋友
分析
首先抓个包看看:
阅读全文
摘要:不过这里,unidbg并没有打印出来我们要的方法和地址
2.ida找地址
这时候就需要用ida找地址了
阅读全文
摘要:public static void main(String[] args) {
roadbook test = new roadbook();
System.out.println(test.xPreAuthencode());
}
public String xPreAuthencode(){
List
阅读全文
摘要:1.看so的调用逻辑,如果有loadlibrary的同时有调用某个方法,unidbg模拟执行的时候也要先调用这个方法
2.如果加载so文件的时候,给定的第二个参数是false,加上so文件有字符串加密和混淆的话就会乱码,所以这里最好给为true,ida里,shift+F7,可以看
3.补环境的时候,要根据报错,最核心的部分进行补环境,同时也要结合实际的执行逻辑
4.构造context,用vm.resolveClass("android/content/Context").newObject(null)
5.dvmObject.getObjectType()可以获取当前类的class
6.emulator.getPid(),获取pid
阅读全文
摘要:6.setJNIload方法只有动态注册方法的时候才执行,静态注册的不用执行
7.keystone,是将汇编语言转成地址的。capstone是将地址转成汇编语言的
8.在线汇编和地址互转的网站:https://armconverter.com/
9.参数的基本类型,比如int,long等,其他的对象类型一律要手动 addLocalObject,其中context对象用:
DvmObject context = vm.resolveClass("android/content/Context").newObject(null);// context
list.add(vm.addLocalObject(context))
10.找准一行汇编,Alt+G快捷键,查看架构类型,值为1则是thumb,为0则是arm,如果ida解析有误,可以手动修改这个值
11.RM调用约定,入参前四个分别通过R0-R3调用,返回值通过R0返回
12.unidbg的项目可以打包成java包执行
阅读全文
摘要:原文地址:SO逆向入门实战教程一:OASIS_so逆向学习路线_白龙~的博客-CSDN博客
分析
首先拿到这个app,安装啥的就不多说了。
进入到注册界面:
点击获取验证码,然后这边抓包工具抓到的包:
然后,这里面的【sign】就是今天的重点了。
用神秘的工具脱壳完之后,有如下的dex:
把这些dex,全部选中,拖进jadx
快速定位
接下来开始找sign所在的位置,先看看抓包工具这边的参数,根据这些键名,一顿搜,总能找到一些
先搜下【sign】,虽然搜出来的结果不多,但是感觉有很多干扰项
进最后那个,到这里,
这些参数看着很像,用frida hook,得知,发现并没有走到这里
搜【ua】
进到这里,发现很可疑,好多参数都对上了
啥都不说,先用objection hook下,然后app端点击【重新发送】看看:
阅读全文
摘要:然后hyper库的开发者,如下链接回复:
https://github.com/python-hyper/h11/issues/113
大概意思是这个不是一个问题,而是http请求的严格性判断问题,请求头的协议,按国际标准,是不能出现 “[Cache-Control]” 这种带有特殊符号作为响应头的键名的,所以报错
而requests却可以,或许是因为requests的校验不严格,直接就放过了:
阅读全文
摘要:使用场景
用sekiro部署了一个主动调用方案
需要某个app常驻监听某个活动,比如app作为服务端
app需要在某个时间段定时启动
shell代码
在给代码之前,你需要知道,你要启动的app的activity名字,用以下终端命令可知
adb shell dumpsys window | findstr mCurrentFocus # windows
adb shell dumpsys window | grep mCurrentFocus # linux,macos
阅读全文
摘要:了,还得是那句,先走基本流程在抓包工具里搜一下看是不是直接返回的
阅读全文
摘要:我当时突然就想到才没几天搞定的一个app,也有webview部分的操作,因为是用uni打包的,所以实际走的还是webview。而uni相关的其实之前发过一篇 对uni-app开发的某app逆向分析
不过今天这个app有点不同,我感觉是值得记录的,所以准备再写一篇有关这个的
阅读全文
摘要:受人所托,需要对他们的产品进行反爬测试,所以就有了以下内容,不过,我知道,针对这方面的文章太多了,是真的多,而且好早就有了,但是目前为止,很多app的防护基本也还是用的ssl pinning检测证书。
因为,目前的app要嘛不用ssl,要嘛用就是一般的ssl,基本就是在手机上装个相关软件 的代理即可,而且这个代理基本就是fiddler,charlels,burpsuite三个抓包软件自带的ssl证书,然后即可抓到ssl(https)的请求
以上这些,基本可以解决大部分的app(其实很多使用ssl的网站也是这样处理)
但是因为很多app为了防止数据被分析爬取,会做ssl pinning验证
阅读全文