真对你无语,工欲善其事,必先利其器啊,看看哥反编译后的Java代码,你就都明白了[Java] 纯文本查看 复制代码 package com.uc.uc_crackme;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
public class MainActivity extends Activity {
Button mButton;
EditText meditText;
class C00011 implements OnClickListener {
C00011() {
}
public void onClick(View v) {
String v3 = MainActivity.this.meditText.getText().toString();
String v5 = MainActivity.this.cccccc();
String v4 = MainActivity.this.gagagfffafa();
String v2 = null;
try {
v2 = MainActivity.bytesToAliSmsCode(v5, v3.getBytes("utf-8"));
} catch (UnsupportedEncodingException v1) {
v1.printStackTrace();
}
if (v4 == null || v4.equals("") || !v4.equals(v2)) {
Toast.makeText(MainActivity.this, "密码错误!登录失败", 0).show();
} else {
Toast.makeText(MainActivity.this, "恭喜你!登录成功", 0).show();
}
}
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(C0002R.layout.activity_main);
this.meditText = (EditText) findViewById(C0002R.id.edit);
this.mButton = (Button) findViewById(C0002R.id.button);
this.mButton.setOnClickListener(new C00011());
}
private static String bytesToAliSmsCode(String table, byte[] data) {
StringBuilder v1 = new StringBuilder();
for (byte b : data) {
v1.append(table.charAt(b & 255));
}
return v1.toString();
}
protected String cccccc() {
String v6 = null;
InputStream v3 = null;
String v5 = "";
try {
v3 = getResources().getAssets().open("abcdefghddddd");
int v4 = v3.available();
byte[] v0 = new byte[v4];
v3.read(v0, 0, v4);
byte[] v1 = new byte[768];
System.arraycopy(v0, 89473, v1, 0, 768);
v6 = new String(v1, "utf-8");
} catch (Throwable e) {
e.printStackTrace();
}
try {
v3.close();
return v6;
} catch (IOException e2) {
return v6;
}
}
protected String gagagfffafa() {
String v6 = null;
InputStream v3 = null;
String v5 = "";
try {
v3 = getResources().getAssets().open("abcdefghddddd");
int v4 = v3.available();
byte[] v0 = new byte[v4];
v3.read(v0, 0, v4);
byte[] v1 = new byte[18];
System.arraycopy(v0, 91265, v1, 0, 18);
String v62 = new String(v1, "utf-8");
if (v3 == null) {
v6 = v62;
return v62;
}
v6 = v62;
try {
v3.close();
v5 = v6;
} catch (IOException e) {
v5 = v6;
}
return v5;
} catch (Throwable e2) {
e2.printStackTrace();
}
}
}
简单分析一下,就是从ASSERT下的一个文件里面读出一个Table和一个结果值,然后根据输入的内容,从Table里面取出内容,跟这个结果值进行比较,最后的结果是:581026,什么注册机,完全扯淡啊 |