Base16

Материал из InformationSecurity WIKI
Перейти к: навигация, поиск

Hex кодирование (или Base16) является одним из самых известных тк удобен для изучения файла пользователем.

Чем выделяется

В нем может присутствовать следующий "алфавит":

    0123456789ABCDEF

Проще говоря любой байт кодируется двумя "цифрами". И как вы можете заметить десятичные цифры в нем преобладают.


Где часто используется

Встретить кодирование вы можете в форенсике, вебе, криптографии ,PWN и стеганографии. Проще говоря почти везде.

Forensics

В том же WireShark пакет предоставляется как байты в HEX.

Примеров много, но я не могу припомнить.


Web

crypto

  • Все хеши предоставляются нам строками, закодированными в hex.
  •  ???


Скрипты

python

  1. "7061756c".decode("hex")
  2. "cool".encode("hex")

perl

encode

  1. $string = "6162636465666a68696a6b6c6d6e6f707172737475767778";
  2. $string =~ s/([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg;
  3. print "$string\n";

decode

  1. $string = "abcdefjhijklmnopqrstuvwx";
  2. $string =~ s/(.)/sprintf("%x",ord($1))/eg;
  3. print "$string\n";


ruby

encode

  1. class String
  2.   def to_hex
  3.     "0x" + self.to_i.to_s(16)
  4.   end
  5. end
  6.  
  7. "116".to_hex
  8.    => "0x74"

decode

  1. $string = "6162636465666a68696a6b6c6d6e6f707172737475767778";
  2. $string =~ s/([a-fA-F0-9][a-fA-F0-9])/chr(hex($1))/eg;
  3. print "$string\n";

java

decode

  1. public static void main(String[] args) {
  2.     String hex = "75546f7272656e7";
  3.     StringBuilder output = new StringBuilder();
  4.     for (int i = 0; i < hex.length(); i+=2) {
  5.         String str = hex.substring(i, i+2);
  6.         output.append((char)Integer.parseInt(str, 16));
  7.     }
  8.     System.out.println(output);
  9. }

encode

  1. public String toHex(String arg) {
  2.     return String.format("%040x", new BigInteger(1, arg.getBytes(/*YOUR_CHARSET?*/)));
  3. }


Утилиты

Cryptool



Райтапы

What the Hex

ASIS Quals CTF 2015: Simple Algorithm

Tyrannosaurus Hex – 10 picoctf 2014 writeup

Полезные ссылки

Hex to string converter

String to Hex converter

Официальная вики статья