{ FIT-HACK#2017 } - Binary 200 - Omikuji
Binary 200 - Omikuji
Pour ce challenge, nous allons devoir reversé un .jar. C'est parti, on l'ouvre avec jd-gui pour décompiler le code : Et on obtient une fonction flag():
public void flag()
{
int i = 1024;
int y = 0;
String c = "flag";
byte[] j = { 51, 32, 66, 105, 108, 108, 105, 111, 110, 32, 68, 101, 118, 105, 99, 101, 115, 32, 82, 117, 110, 32, 74, 97, 118, 97 };
for (int k = 0; k <= 8; k++) {
y = k + y;
}
if (y % 2 == 0) {
k = c + "error";
} else {
k = "0eba0d68a699907bc3d765072c0735ce";
}
try
{
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(c.getBytes());
byte[] d = md.digest();
StringBuilder sb = new StringBuilder(2 * d.length);
for (byte b : d) {
sb.append(String.format("%02x", new Object[] { Integer.valueOf(b & 0xFF) }));
}
sb.reverse();
String a = "FIT{" + sb + "}";
System.out.println(a);
}
catch (Exception e)
{
e.printStackTrace();
}
try
{
m = new String(j, "US-ASCII");
}
catch (Exception e)
{
String m;
e.printStackTrace(); return;
}
String m;
System.out.println(m);
}
On s'aperçoit rapidement que le flag est le sha256("flag") reversé. On écrit ca en python et on obtient le flag :
import hashlib
k3y = "flag"
hash = hashlib.sha256(k3y)
hash_dig = hash.hexdigest()
print("FIT{" + hash_dig[::-1] + "}")
FLAG : FIT{78b4c64c4477e3705c221401639fdfaa0286f46658d4d81502b4c7eacbf0d708}
Commentaires
Enregistrer un commentaire