{ 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

Posts les plus consultés de ce blog

Excel 4.0 macro Trojan Downloader

TROJAN AGENT TESLA – MALWARE ANALYSIS

{ UIUCT#2017 } - REV 350P - ARE WE OUT OF THE WOODS YET?