Cydia for Android2
使用cydia框架编写cydia hook插件的时候由于initialize方法是无参的静态方法,所以不能获取上下文因此很多事情直接在initialize方法里就干不了,比如toast,发送广播等。由于hook是改变其他的类的API的执行结果。所以可以使用HOOK的那个类来获取context从而达到可以使用toast等的目的。
办法:
1 MS.hookMethod(arg0, toast, new MS.MethodAlteration() { 2 3 @Override 4 public Object invoked(Object arg0, Object... arg1) 5 throws Throwable { 6 Toast.makeText(((Activity)arg0).getApplicationContext(), "test", Toast.LENGTH_LONG).show(); 7 invoke(arg0, "hook before"); 8 invoke(arg0, arg1); 9 invoke(arg0, "hook end"); 10 return null; 11 } 12 });
参数arg0就是最后HOOK的那个类的一个实例,利用她可以获取她里面的方法,由于我这里HOOK的类是Activity类型,所以可以获取Context.
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。