Android逆向移花接木之添加注册机制
来源:互联网 发布:淘宝q币充值在哪 编辑:程序博客网 时间:2024/05/09 10:37
前言
我们知道借助apktool对apk的反编译几乎是无损源码级别的,所以要想在无源码的情况下,让某个软件实现想要的显示或者功能,只需要先写个简单的具有该显示和功能的DEMO,然后将关键的代码镶嵌到目标的软件即可。相信,一些简单的添加AlertDialog、Toast等大家都会。今天,我就带大家一起为一个小程序添加注册机制。
准备DEMO:追魂Call3
对象:SuperChm
目的:让SuperChm实现追魂Call3具有一样的注册机制。
组件分析
首先得了解,一个Android程序由一个或多个Activity以及其他组件组成,每个Activity都是Android程序的一个展示“页面”,负责数据的处理和展示工作。并且每个Android程序有且仅有一个主Activity(隐藏程序没有主Activity)它是程序启动的第一个Activity。知道了这些,我们就看看追魂Call3的第一个“页面”即是展示注册机制的Activity包含了哪些元素。
然后打开追魂Call3的VerifyActivity.smali,其instance fields已经显示出所引用的组件:
//两个按钮.field private a:Landroid/widget/Button;.field private b:Landroid/widget/Button;//一个浏览文本.field private c:Landroid/widget/TextView;//一个编辑框.field private d:Landroid/widget/EditText;//验证注册的本地SharedPreferences.field private e:Landroid/content/SharedPreferences;//获取手机通讯状态相关的方法,这个会涉及到系统权限.field private f:Landroid/telephony/TelephonyManager;//提示框.field private g:Landroid/app/ProgressDialog;VerifyActivity中各种的方法:
1、在a()方法中有引用DESUtil.smali的encryptDES解密方法。
invoke-static {v0}, Lcom/call3/DESUtil;->encryptDES(Ljava/lang/String;)Ljava/lang/String;
注意:这里面也有启动主Activity
2、在onclick()方法中有一个资源ID:0x7f070014
:pswitch_data_0 .packed-switch 0x7f070014 :pswitch_0 :pswitch_1 .end packed-switch3、在onCreate()方法中资源ID有:0x7f030001、0x7f070012、0x7f070014、0x7f070015、0x7f070013。
还有一个启动主功能MainActivity
new-instance v0, Landroid/content/Intent; const-class v1, Lcom/call3/MainActivity; invoke-direct {v0, p0, v1}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V invoke-virtual {p0, v0}, Lcom/call3/VerifyActivity;->startActivity(Landroid/content/Intent;)V对于DESUtil.smali,它又引用了Base64.smali文件中的encode方法:
invoke-static {v0}, Lcom/call3/Base64;->encode([B)Ljava/lang/String;这样,答题的流程我们就知道了:首先在AndroidMainfest.xml中配置主Activity为VerifyActivity,然后导入layout布局文件activity_main.xml,同时还要引用DESUtil.smali和Base64.smali。同时要注意TelephonyManager有关权限的增加。
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.CALL_PHONE"/> <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>好了,我们开始动工吧。
开始操作1、将SuperChm程序的主Activity修改为VerifyActivity,原主Activity变为一般;
2、在原主Activity的文件夹下导入:VerifyActivity.smali、DESUtil.smali和Base64.smali。在layout布局文件夹下,导入activity_verify.xml。
3、将VerifyActivity.smali、DESUtil.smali、Base64.smali文件中的“Lcom/call3/”全部替换成“Lcom/jrzheng/superchm/Activity/”。
更改VerifyActivity.smali中启动的主Activity,即:
const-class v1, Lcom/call3/MainActivity;改为:
const-class v1, Lcom/jrzheng/superchm/Activity/MainActivity;4、开始最艰辛的一个过程,设置资源ID。自行对比吧。
添加color:colors.xml、public.xml、R$color.smali; 添加“btn_verify”:ids.xml、public.xml&id、R$id; 添加“activity_verify”:public.xml&layout、R$layout; 添加“tv_imei”:ids.xml、public.xml&id、R$id; 添加“btn_close”:ids.xml、public.xml&id、R$id; 添加“et_pwd”:ids.xml、public.xml&id、R$id; 添加“tv_title”,ids.xml、public.xml&id、R$id;
0x7f070014->btn_verify的ID0x7f030001->activity_verify的ID0x7f070012->tv_imei的ID0x7f070015->btn_close的ID0x7f06007f->et_pwd的ID
这个追魂Call3的注册机制还有一个好处就是注册成功以后,再打开就不再显示注册界面。
相关下载
包括追魂Call3、注册机、SuperChm、SuperChm_Verfiried
下载地址:链接: http://pan.baidu.com/s/1mgBjJhY 密码: ffyk
0 0
- Android逆向移花接木之添加注册机制
- Android逆向移花接木之添加启动Splash
- Android逆向移花接木之添加AlertDialog
- Android之广播机制—静态注册
- Android之广播机制—动态注册
- VB变态应用之“移花接木”
- 加密狗突破之移花接木
- 【原创工具】Android逆向注入注册系统
- Android Binder机制浅析之注册MediaPlayerService(1)
- Android Binder机制浅析之注册MediaPlayerService(2)
- 六、Android Binder机制浅析之注册MediaPlayerService(1)
- 六、Android Binder机制浅析之注册MediaPlayerService(2)
- Android逆向之静态分析
- Android逆向分析之APKTool
- Android逆向分析之Cydia
- android逆向分析之反编译
- Android逆向之smali注入
- android逆向神器之firda
- 第二十七周工作日志
- java静态方法和实例方法的区别
- Android面试通过一个控件展示自己水平
- ZOJ3818-Pretty Poem(暴力枚举)
- 机房收费系统总结
- Android逆向移花接木之添加注册机制
- java异常
- C++程序设计(9)之运算符重载
- WIN32和_WIN32的区别
- java多线程
- 【软考】向上转型 VS 简单工厂
- 以php开发服务器后台的android即时通讯app的一种实现思路
- 【LeetCode】Permutations II
- log4j配置祥解