一个简单的apk破解
来源:互联网 发布:网络娱乐骰宝 编辑:程序博客网 时间:2024/05/16 10:23
我们来看看要破解的apk打开后是个什么样的界面并且有什么功能,这个是我自己编写的一个简易程序,下面我会放出源码。
在这里我们可以看见这个app是一个输入密码然后输入正确下面就会出现登录成功的提示,否则下面就会有登录失败的提示,在这里我们要求让这个软件无论密码正确还是不正确都让它提示登录成功。
下面我们先用ApkIDE这个工具打开这个apk
我们来于都这个smali发现有一个if的判断跳转语句,如下图
这里的意思是如果v2等于v0跳转到:con_0执行,要不然继续往下执行不进行跳转,然后我们在右边搜索登陆成功,这里记住要转换成Unicode码再进行搜索。
这里我们可以看见:cond_0后面执行的是登陆成功的代码,所以我们要让它进行无条件的跳转到:cond_0执行,那么这里在if判断语句的前面让它直接跳转到:cond_0的位置执行。
1.在if eq v0, v2, :cond_0的上面加上代码goto :cond_0就可以直接跳转到:cond_0处执行。
2.还有就是把if eq v0, v2, :cond_0改成if ne v0, v2, :cond_0
3.我们还可以把Toast显示内容修改了,把登陆失败修改成登陆成功,这里记住要把字符转换为Unicode码,最后实现效果。
最后保存后编译生成apk。
下面是这个程序的源代码:
布局源代码
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="match_parent" android:layout_height="200dp" android:id="@+id/TextView" android:textSize="55dp" /> <EditText android:id="@+id/editText" android:layout_width="300dp" android:layout_height="70dp" android:layout_marginLeft="45dp" android:layout_marginTop="40dp" /> <Button android:id="@+id/Button" android:layout_width="110dp" android:layout_height="60dp" android:layout_gravity="center" android:layout_marginTop="40dp" /></LinearLayout>java源代码
package com.example.zhangrenjie.test;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity { private TextView tv; private EditText et; private Button bt; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.test); TextView tv = (TextView) findViewById(R.id.TextView); final EditText et = (EditText) findViewById(R.id.editText); Button bt = (Button) findViewById(R.id.Button); tv.setText("请输入正确的密码,否则无法成功进入程序"); bt.setText("确定登陆"); bt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String str = et.getText().toString(); int num; num=Integer.valueOf(str); if (num != 123456789) { Toast.makeText(getApplicationContext(), "登陆失败",Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getApplicationContext(), "登陆成功",Toast.LENGTH_SHORT).show(); } } }); }}
后面还要更加精彩的文章哦
阅读全文
1 0
- 一个简单的apk破解
- 一个简单的apk破解
- apk破解(二) 简单修改一个so文件
- 一个简单的破解示例
- apk破解(一)从最简单的判断开始
- 一个android apk的破解和抓包
- apk代码的破解
- 一个.net程序的简单破解
- 提供一个简单的破解MyEclipse过期的简单方法
- apk破解的基本步骤
- OllyICE的简单实用及一个小cracker的破解
- 在一个apk中 最简单的AIDL实现:
- 用BAT写一个简单的APK安装器
- 【Android 初学者】写一个简单的 拨号 apk
- 提供一个简单的.DLL文件破解反编译方法!!!
- 记录一个简单的ASM程序破解过程
- 一个简单的HTTP暴力破解、撞库攻击脚本
- apk破解
- CentOS虚拟机NAT方式无法上网
- RSA签名和验签过程
- es6 babel转码器安装配置
- 什么是低耗蓝牙BLE以及与经典蓝牙的优劣
- Android弹幕实现:基于B站弹幕开源系统(6)带用户头像且头像从网络加载
- 一个简单的apk破解
- Learning Data Mining with Python-《Python数据挖掘入门与实践》学习后的分享
- 每个服务器必备的三个工具
- 雪花的快乐!
- 人工智能一点思考
- 无法获得锁 /var/lib/dpkg/lock的解决办法
- JsonFormat 标签使用
- git commands summary
- C语言逗号运算符用法