对Andorid逆向工具XXB Demo版本的修改——初尝试

国际新闻 浏览(1354)

这篇文章是为了阅读雪论坛的优秀文章

目前,只有演示版本提示框被删除,演示版本不能使用保存功能的限制也被取消。以前没有基于JVM的应用程序的反向破解。以下是使用的工具和方法。这篇文章仅用于学习和交流。

目标环境信息JDK 1.8 xd bdemo-3 . 11 . 1 rth as 3 . 1 . 7

JD-CLI 1 . 0 . 1 .最终分析过程首次运行演示,需要生成要使用的密钥。由于是演示版本,每次运行时都会弹出演示版本限制提示窗口:。将接口留在这里,使用arthas附加到运行的演示中,通过查看函数调用堆栈找到播放该窗口的函数:,查看所有线程:接口通常在主线程中运行。在这里看主线程的函数调用栈:从打印的函数调用栈,我看到了可能的弹出函数,用jad反编译了这个类,并分析了它的代码:

似乎是这个函数显示的弹出窗口。为了确认,再次分析这个函数的调用者:

看到这些,就确定是这个函数。弹出窗口只能通过删除相关代码来删除,并在删除后重新编译:可以使用redefine命令直接热补丁来检查修改的效果,但是这个函数不适合这个方法,因为调用时间是在我们附加之前,并且可以在下面的javaagent模式下编写。接下来,分析保存功能的限制,打开一个apk,然后单击保存。将出现限制功能的提示框:与上述方法相同。我们将做同样的事情:找到可能的函数,反编译它。看看它:发现另一个功能像判断注册码被调用。反编译请参见:这个文件包含许多由build_type判断的函数,这一次它只是一个初步的尝试,所以在这里我改变了表面相对较小,我只是改变了一个完整的build函数的返回值为真,重新编译后,热补丁被添加:

see effect: ok,ok。在这里写一个破解代理我用java代理替换目标类的字节码来修补这两个函数。该过程是匹配目标类的名称,然后返回修补后的字节码。被替换的字节码被实验中的热点补丁验证。在这里,我将字节码转换成base64代码,并将其写入代码。代码如下:再次运行命令修改:最终效果如我所料,没有演示弹出和保存功能的限制。-End-

*这篇文章最初是由Yougar写的,一个观察雪的论坛。请注明它来自观雪社区。

推荐文章

好书推荐65

公共标识:伊康雪

官方微博:雪安商务合作:wsc

-