bugku Timer
查看代码,意思是要等到时间为0时才开始计算flag值,那么重点就在于修改time值
推荐工具 jeb ...下个jeb死活不知道为什么运行不起来,像是我JAVA版本 高了。
推荐博客
https://www.jianshu.com/p/28e50996b8c5
code
package net.bluelotus.tomorrow.easyandroid;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
int beg;
int k;
int now;
long t;
static {
System.loadLibrary("lhm");
}
public MainActivity() {
super();
this.beg = (((int)(System.currentTimeMillis() / 1000))) + 200000;
this.k = 0;
this.t = 0;
}
public static boolean is2(int arg4) {
boolean v1 = true;
if(arg4 > 3) {
if(arg4 % 2 != 0 && arg4 % 3 != 0) {
int v0 = 5;
while(true) {
if(v0 * v0 <= arg4) {
if(arg4 % v0 != 0 && arg4 % (v0 + 2) != 0) {
v0 += 6;
continue;
}
return false;
}
else {
return v1;
}
}
return false;
}
v1 = false;
}
else if(arg4 <= 1) {
v1 = false;
}
return v1;
}
protected void onCreate(Bundle arg7) {
super.onCreate(arg7);
this.setContentView(0x7F040018);
View v2 = this.findViewById(0x7F0C0050);
View v3 = this.findViewById(0x7F0C0051);
Handler v0 = new Handler();
v0.postDelayed(new Runnable(((TextView)v3), ((TextView)v2), v0) {
public void run() {
MainActivity.this.t = System.currentTimeMillis();
MainActivity.this.now = ((int)(MainActivity.this.t / 1000));
MainActivity.this.t = 1500 - MainActivity.this.t % 1000;
this.val$tv2.setText("AliCTF");
if(MainActivity.this.beg - MainActivity.this.now <= 0) {
this.val$tv1.setText("The flag is:");
this.val$tv2.setText("alictf{" + MainActivity.this.stringFromJNI2(MainActivity.this.k) + "}");
}
if(MainActivity.is2(MainActivity.this.beg - MainActivity.this.now)) {
MainActivity.this.k += 100;
}
else {
--MainActivity.this.k;
}
this.val$tv1.setText("Time Remaining(s):" + (MainActivity.this.beg - MainActivity.this.now));
this.val$handler.postDelayed(((Runnable)this), MainActivity.this.t);
}
}, 0);
}
public boolean onCreateOptionsMenu(Menu arg3) {
this.getMenuInflater().inflate(0x7F0D0000, arg3);
return 1;
}
public boolean onOptionsItemSelected(MenuItem arg3) {
boolean v1 = arg3.getItemId() == 0x7F0C005F ? true : super.onOptionsItemSelected(arg3);
return v1;
}
public native String stringFromJNI2(int arg1) {
}
}
最后flag {Y0vAr3TimerMa3te7}