使用frida进行hook(一)

前面已经接触了frida这个hook工具,因此利用ctf题进行进一步的学习,此处参考https://bbs.pediy.com/thread-227233.htm。
首先分析题目逻辑:
使用frida进行hook(一)_第1张图片
VERIFY按钮的逻辑为
使用frida进行hook(一)_第2张图片
首先获取输入的license的值,将其与给定的url拼接向服务器进行请求,获得的回应如果为"LICENSEKEYOK",就将其与getMac的返回值进行xor运算,并运算的结果作为键值为"KEY"的value值放入sharedpreference中。
getMac方法如下:获取本机的Mac地址
使用frida进行hook(一)_第3张图片
PREMIUM CONTENT按钮响应如下:将本季MAC地址与上一步获得的键值为"KEY"的value传入到MainActivity中
使用frida进行hook(一)_第4张图片
MainAcitivity中利用native方法对这两个字符串进行了处理并将结果也就是Flag打印。
使用frida进行hook(一)_第5张图片
那么首先需要得到两个数值,1是mac,2是xor运算后的key。mac其实可以从手机状态信息获取到,这里为了学习使用frida进行hook。
首先hook getMac方法获取Mac地址:
使用frida进行hook(一)_第6张图片
在这里插入图片描述
学习了看雪前辈的new实例然后直接调用java方法,并直接调用native函数返回结果:
使用frida进行hook(一)_第7张图片

使用frida进行hook(一)_第8张图片

hook结果如下:
使用frida进行hook(一)_第9张图片
据此可知Mac = “bc:f5:ac:fa:75:31”,key为“ .*y#{i$(?.q{|yv”;最终的结果为“AHE17{pr3mium4ctiv4ted}”。

你可能感兴趣的:(逆向)