APP逆向实战
常规hook是被动,hook的函数/方法要被动等待触发,不能主动调用要hook的代码。而rpc可以主动调用要hook的代码。
rpc:
# rpc
rpc.exports = {
var sig = "";
get_hello: function(str){
Java.perform(
function(){
var some = Java.use('XXXX');
sig = some.get_sig()
}
)
}
}
# 可以使用python主动调用。
get_hello(str)
# 常规写法
Java.perform(
function(){
var some = Java.use('XXXX');
some.get_sig.implemtation = function(){
// do something
}
}
)
抓取分析思路:
先分析目标产品形态有几种(PC,H5,小程序,APP);对目标产品形态和各功能/界面使用和了解;确定抓取哪种产品状态。
常规抓取分析:
先抓包,找到要抓的目标URL(通常是列表URL和详情URL)。通过抓包要弄清楚:请求参数的差异和特点、搞清楚哪些参数是固定值,哪些是变化值,哪些可有可无、哪些参数是主要控制返回内容的、如何翻页等。
写简单程序模拟目标URL的请求(从抓包工具中复制信息和URL到程序中)。模拟请求分三种:
1、复制抓包header信息,模拟请求能成功。此时需要确定该header信息有无时效性,能否一直使用,时效性是多久。尝试五分钟/一小时/一天的时间间隔,使用header信息,再次模拟,检查是否请求成功。如果有时效性,可以结合抓包工具,使用定时更新header的方式进行抓取;如果没有时效性,一支可以用,则直接使用抓包的参数一直抓取。
2、模拟请求不成功。需要逆向分析APP
3、难度是在太大,分析APP其他版本的抓取难度(大型APP会分版本,lite版ÿ