Hyperpwn是一个基于Hyper实现的gdb调试插件,用于改善调试过程的结果显示。Hyperpwn在前辈们的基础上更进一步,将调试过程中的gef、pwndbg、peda等调试插件的结果显示进行自动化窗口布局,从而让整个调试过程更人性化。
同时,Hyperpwn引入了调试状态记录功能,对动态调试过程中的每一个状态进行了保存,从而解决逆向调试人员使用手工记录每一个调试状态的寄存器信息、内存信息等内容的繁琐过程。在调试过程中只需要使用ctrl+shift+pageup快捷键便可以查看上一个调试状态信息,使用ctrl+shift+pagedown就可以查看下一个调试状态信息,非常的方便,从而真正做到解放双手。
具体的介绍和安装过程可以去gayhub查看。
脱壳的简单实践">二、使用Hyperpwn进行动态调试并脱壳的简单实践
1、将NDK中提供的gdbserver推送入手机,对应在NDK的目录:prebuilt/android-arm/gdbserver以及prebuilt/android-arm64/gdbserver
adb push gdbserver /data/local/tmp,并给予可执行权限:chmod 777 /data/local/tmp/gdbserver
(这里要注意gdbserver的32位和64位的区别)
2、开启端口转发:adb forward tcp:1234 tcp:1234
3、以调试模式开启app,使用gdb-server附加app进程,首先使用ps命令获取待调试的app的进程id,/data/local/tmp/gdbserver :1234 --attach pid
4、接下来就可以使用Hyperpwn愉快的开始对app的debug了。(这里要注意需要使用ndk中提供的gdb,而不是系统的gdb),首先打开Hyper,然后cd到NDK中的gdb目录当中,然后执行./gdb,接下来就可以连接gdbserver进行远程调试了。