apk安卓软件反汇编的一些经验和总结

2025-06-02 20:34:28

1、有米去除 smail 代码invoke-virtual {v2, v0, v1}, Landroid/widget/LinearLayout;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V

2、菜单删除 直接删除invoke-interface {p1, v1, v3, v3, v0}, Landroid/view/Menu;->add(IIILjava/lang/CharSequence;)Landroid/view/MenuItem;

3、添加一些信息 <PreferenceCategor鲻戟缒男y android:title="汉化信息及免责声明"> &造婷用痃lt;Preference android:summary="本汉化软件仅为技术共享等制作,作品不用于任何商业目的,如果您喜爱此APP,请支持正版!" /> <PreferenceScreen android:layout="@layout/about_logo" android:key="about_logo"> <intent android:action="android.intent.action.VIEW" android:data="http://bbs.hiapk.com" /> </PreferenceScreen> </PreferenceCategory><PreferenceCategory android:title="汉化信息"> <PreferenceScreen android:title="安智汉化组 Tomi汉化" android:summary="主页:http://www.anzhi.com\n论坛:http://bbs.anzhi.com"> <intent android:action="android.intent.action.VIEW" android:data="http://bbs.anzhi.com" /> </PreferenceScreen> </PreferenceCategory>

4、安 沃去广告重点 http://r2.adwo.com/adweb http://r2.adwo.com/adfs解开apk,搜索所有文件里的http:字样(用UltraEdit搜),带ad字样的多半是广告链接,用空符替换,比如“http://ad.***”就改成“”就阻止了广告联网了,此时广告控件仍在,只是没内容。然后在manifest.xml里删除Adview控件那几行代码。空白控件就不会出现了。貌似有所谓的广告杀手软件能干这事,没试过。还有些广告是自定义的,并未使用adview,这种有的直接“http://ad.***”就改成“”后就可能不再显示了,不过只是少数。另外那些软件手动去广告很麻烦的。

5、对话框反编译apk,在.method public onCreate(Landroid/os/Bundle;)V (即窗口创建子弛贾班隧程序 一般在AndoroidMainfest.xml中会有声明)下添加以下代码即可const-string v0, "这里是弹出的提示" const/4 v1, 0x1 invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast; move-result-object v0invoke-virtual {v0}, Landroid/widget/Toast;->show()V复制代码说明:a. const-string v0, "这里是弹出的提示",字串常量,对应Toast.makeText(EX05_01.this ,"Toast", Toast.LENGTH_LONG).show();的第二个参数。b. const/4 v1, 0x1 16进制,对应Toast.LENGTH_LONG常量c. invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText,调用. makeText()方法, 这个很重要了d. move-result-object v0 调用结果返回值为v0e. invoke-virtual {v0}, Landroid/widget/Toast;->show()V 调用show()方法

6、网址骇螺搭翳跳转 .line 15 new-instance v0, Landroid/content/Int髫潋啜缅ent; // 这里是定义Intent 对象 const-string v1, "android.intent.action.VIEW" // 这个是设置Intent的Action_View .line 16 const-string v2, "http://bbs.urenkz.com" // 这里为网页地址,http:// 大家都懂 invoke-static {v2}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri; // 这里是用URI把链接转义 move-result-object v2 .line 15 invoke-direct {v0, v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;Landroid/net/Uri;)V // 这里为实例化一个跳转的intent对象,v0,v1,v2 ,v0是对象,v1,v2是参数 .line 17 .local v0, intent:Landroid/content/Intent; const-string v1, "com.android.browser" // 这是系统浏览器的包名 .line 18 const-string v2, "com.android.browser.BrowserActivity" // 系统浏览器的主类,也就是启动类 .line 17 invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent; //把设置好的v1,v2,用对象v0设置好ClassName .line 19 invoke-virtual {p0, v0}, Lcom/tencent/pao/BreezeGame;->startActivity(Landroid/content/Intent;)V // 这里是关键,启动跳转, Lcom/tencent/pao/BreezeGame 这个要替换成你项目的smali 的反编译格式的包路径</span>

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢