某天测试app时,需要注册码才能进入应用,二话不说开始进行破解…
详细过程
运行app时会弹出先输入注册码的弹框,只有输入正确的注册码才可进入。
共采用了3种尝试方式
1.暴力hook
搜索字符串“请输入注册码”,定位到几个可疑函数。
条件当a为true时才可进入注册成功的函数
所以尝试hook函数a,使其能够返回1.
但是没有触发,尝试hook上层函数也没有被触发。
仔细一看,字符串不一样…一个有!另一个没有。证明不是这个函数。再继续寻找字符串对应的函数,发现找不到合适的函数
2.抓包后修改response
随便输入一个注册码点击确定。获取到数据包,发现response为-401,代码中存在当为-401时为卡密错误的字样
继续寻找case中的函数,当case为1的时候,返回ok
修改fiddler的reponse值进行测试
在AutoResponse中添加拦截规则,想要结果返回1,所以文本中内容为1
测试结果
结果是被改变了,弹窗同时也改变了…但是想要的结果并不是这样的
3.再次定位代码修改response
再返回到代码进行逆向,main函数中,在初始化函数之前有个函数比较可疑,进行查看。
存在一个校验函数,当长度为32位时,flag才为1。
根据上文推出,当为1时返回ok,当为32位时,返回1.
所以尝试32个1,修改fiddler的response。
成功注册。