安卓逆向系列教程 4.10 玄奥八字
这次要破解的软件是这个: http://www.xazhouyi.com/android/soft/bazi.html
首先分析其行为,打开软件:
按照以往的经验,程序有个字段用于维护注册状态,我们可以通过字符串快速定位到它。我们将其载入 AK:
搜索“软件未注册”,在 string.xml 中找到:
然后在 public.xml 中找到,字符串的 ID 是 0x7f060003 。之后搜索这个数字。
我们在 main ,也就是入口的 MyInit 函数中找到了这个数值:
我们猜想 :cond_b 是失败分支,我们往上找:
我们可以得出 ChkNumA/B/C 是三个关键判断。下面的 if-eqz 是关键跳。成功各分支将 m_regFlag 设为 1,说明它是保存注册状态的字段。
我们可以将这三个 if-eqz 都给注释掉,但是我们可以采取另一种方式,在最后一个 if 的下面添加 :goto_100 标签,然后在第一个 if 上面添加 goto :goto_100 。
重新打包、安装软件后,打开软件,我们发现不再弹出注册提示了。访问菜单->更多->注册之后,在注册界面中我们可以看到“已注册”。
首先分析其行为,打开软件:
按照以往的经验,程序有个字段用于维护注册状态,我们可以通过字符串快速定位到它。我们将其载入 AK:
搜索“软件未注册”,在 string.xml 中找到:
然后在 public.xml 中找到,字符串的 ID 是 0x7f060003 。之后搜索这个数字。
我们在 main ,也就是入口的 MyInit 函数中找到了这个数值:
我们猜想 :cond_b 是失败分支,我们往上找:
我们可以得出 ChkNumA/B/C 是三个关键判断。下面的 if-eqz 是关键跳。成功各分支将 m_regFlag 设为 1,说明它是保存注册状态的字段。
我们可以将这三个 if-eqz 都给注释掉,但是我们可以采取另一种方式,在最后一个 if 的下面添加 :goto_100 标签,然后在第一个 if 上面添加 goto :goto_100 。
重新打包、安装软件后,打开软件,我们发现不再弹出注册提示了。访问菜单->更多->注册之后,在注册界面中我们可以看到“已注册”。
1个回答易知研学网专题活动