Android逆向实例笔记—记一第一次为Android程序写注册机
很多同学反映轰炸机没用,我去看了哈,好像的确是,样本是论坛看到的。然后这都不是重点,重点是这个方式方法哈。然后注册机的版本是5.0的,我自己手机亲测可以用。至于你们没法用的话,代码我都给出来了,正是锻炼自己写程序的时候到了噻,对吧!!!本来很简单的一个app,直接搜验证码,一个爆破就OK了。但是看到下面里面评论的wnagzihxain大神说了句,爆破就不好玩了。于是细想一下,我还没弄过注册机呢。简单对这个app进行说明和写一个注册机app吧!就简单的分享一下我写的注册机app
废话不多说,直接看提示搜请输入6位验证码,一个结果,跳过来。
http://img.blog.csdn.net/20160927181835628?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
不浪费时间,看看伪代码吧。这里只上一些重要的代码public void SplashClick(View paramView)
{
switch (paramView.getId())
{
case 2131034171:
case 2131034172:
default:
return;
case 2131034169:
startActivity(new Intent(this, CallLoopActivity.class));
return;
case 2131034170:
startActivity(new Intent(this, SMSActivity.class));
return;
}
paramView = this.b.getText().toString().trim();
if ((TextUtils.isEmpty(paramView)) || (paramView.length() != 6))
{
Toast.makeText(this, "请输入6位验证码", 0).show();
return;
}
b(paramView);
}
我们看到这里
http://img.blog.csdn.net/20160927182012519?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
知道paramView非空非6位就弹出Toast。然后又去上面的bprivate void b(String paramString)
{
Object localObject1 = Calendar.getInstance();
int i = ((Calendar)localObject1).get(2);
i = ((Calendar)localObject1).get(5) * (i + 1) * 321;
Object localObject2;
if (i >= 1000000)
{
localObject2 = String.valueOf(i - i / 1000000 * 1000000);
if (paramString.equals(localObject2))
{
Toast.makeText(this, "激活成功", 0).show();
m.a().c();
findViewById(2131034171).setVisibility(8);
}
}
else
{
for (localObject1 = String.valueOf(i);; localObject1 = localObject1 + "0")
{
localObject2 = localObject1;
if (((String)localObject1).length() == 6) {
break;
}
}
}
Toast.makeText(this, "激活失败,请重试", 0).show();
}
我们在这里就可以清晰看到原作者的算法的意思了。就是获取当前的日期和月份,进行结算。
知道了这些,我无聊就去写了一个app做为注册机。上代码package com.sorgs.administrator.crazydemo;
import android.app.Activity;
import android.os.Bundle;
import android.text.format.Time;
import android.widget.EditText;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText et_input;//显示输出内容的显示屏
et_input = (EditText) findViewById(R.id.et_input);
Time t=new Time();
t.setToNow(); // 取得系统时间。
int month = t.month;//取得当前月份
int date = t.monthDay; //取得当前日期
String RegCode;
int i = date * (month+ 1) * 321; //当前日期*当前月份加1*321
if(i >= 1000000) {
RegCode = String.valueOf(i - i / 1000000 * 1000000);
et_input.setText(RegCode);
}
else {
et_input.setText(i+"0"); //在i的基础上直接添加0
}
}
}
http://img.blog.csdn.net/20160927182626794?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
后面就不多说了,有兴趣的同学可以自己动手去分析一下算法,然后写个注册机,这样提高会很快!
样本 :https://yunpan.cn/ck9ug7YCVQddB访问密码 ec55注册机:https://yunpan.cn/ck9ufqMBGnsVS访问密码 **** Hidden Message *****
bxzda123 发表于 2016-9-27 19:52
膜拜大神了谢谢 从学习机开始关注你的一如既往的支持
请不要这么说,比我大神的论坛里多的是呢。这些东西都是他们不屑写的,只是我觉得我记录一下自己的学习历程而已呢。多多你的关注呢:loveliness: 看看怎么样 学习一下,楼主的教程每次都很通俗易懂,谢谢了 好牛啊大神 好帖留名. 无卡能用吗 崇拜大神,谢谢分享 实在是不错的教学 这是注册机? 学习一下