smali逆向修改从超长的local缩短所遇到的问题

.https://note.youdao.com/s/3Dz7Ahjv

end method
.method protected onCreate(Landroid/os/Bundle;)V
 # .registers 22    
.registers 5

   # invoke-super/range {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V
  invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V
   
 invoke-static {p0}, Lcom/qiyi/video/StartActivity;->a(Landroid/content/Context;)V


 # invoke-virtual/range {p0,p0}, Lcom/qiyi/video/StartActivity;->showbaiduad()V
  invoke-virtual {p0,v0}, Lcom/qiyi/video/StartActivity;->showbaiduad()V

之前注册22个 ,那么 我不知道 调用静态了,那么怎么办呢,直接全部改成5个就好了,反正垃圾代码全部删除了。红色的代表被修改的,

插入toast的方法

.end method
.method public static a(Landroid/content/Context;)V
    .locals 2

    .prologue
    .line 138
    const-string v0, "\u60c5\u8fc1\u7834\u89e3\u4e8c\u6b21\u5783\u573e\u6821\u9a8c..qq694886526\u5185\u7f6e\u62a2\u7ea2\u5305\u63d2\u4ef6\u62a2\u7ea2\u5305\u7b49\u4f60\u4e0b\u8f7d\uff01"

    const/4 v1, 0x0

    invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;

    move-result-object v0

    invoke-virtual {v0}, Landroid/widget/Toast;->show()V

    .line 139
    return-void
.end method
.method protected onCreate(Landroid/os/Bundle;)V
    .registers 5
 # .registers 22
   # invoke-super/range {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V
       invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V
    invoke-static {p0}, Lcom/qiyi/video/StartActivity;->a(Landroid/content/Context;)V
# 由于就在这个文件toast所以这里改成这个当前所在的静态类就好了
 invoke-virtual {p0,v0}, Lcom/qiyi/video/StartActivity;->showbaiduad()V

上面打错了

p0,v0是错误的因为没有参数 v0要删除了

invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V
  
 
 invoke-virtual {p0}, Lcom/qiyi/video/StartActivity;->showbaiduad()V
   invoke-static {p0}, Lcom/qiyi/video/StartActivity;->a(Landroid/content/Context;)V

虽然能通过smali签名但是无法跑起来

修改闪退又看不到错误怎么办
输入你修改的类的名称查看log
31660-31664/? W/dex2oat: void com.qiyi.video.StartActivity.onCreate(android.os.Bundle) failed to verify: void com.qiyi.video.StartActivity.onCreate(android.os.Bundle): [0x3] Rejecting invocation, expected 2 arguments, found 1
04-11 23:14:39.032 2408-2514/? I/HwLauncher: Launcher.IconC

搞不懂放弃了

.end method
.method protected onCreate(Landroid/os/Bundle;)V
    .registers 22

    invoke-static/range {p0 .. p1}, Lcom/qiyi/video/StartActivity;->a(Landroid/content/Context;)V
    invoke-super/range {p0 .. p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V
      invoke-virtual/range {p0 .. p0}, Lcom/qiyi/video/StartActivity;->showbaiduad()V

这里马上结束的显然不能放在这里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值