Binary Analysis Toolkit
Hex Viewer / Editor
<div class="input-area">
<label>Input (Text or Hex):</label>
<textarea id="hexInput" placeholder="Enter text or hex bytes (e.g., 48656c6c6f)">Hello, World!\x00</textarea>
</div>
<div class="action-btns">
<button class="btn btn-primary" onclick="viewAsHex()">View as Hex</button>
<button class="btn btn-secondary" onclick="clearHex()">Clear</button>
</div>
<div class="hex-viewer" id="hexDisplay">Hex dump will appear here...</div>
Assembly ↔ Machine Code
<div class="input-area">
<label>Architecture:</label>
<select id="archSelect" style="width: 100%; padding: 8px; border-radius: 4px; background: var(--md-code-bg-color); border: 1px solid var(--md-default-fg-color--lightest);">
<option value="x86">x86</option>
<option value="x64">x86-64</option>
</select>
</div>
<div class="input-area">
<label>Assembly Code:</label>
<textarea id="asmInput" placeholder="mov eax, 0x1 xor ebx, ebx int 0x80">mov eax, 0x1
xor ebx, ebx int 0x80
<div class="action-btns">
<button class="btn btn-primary" onclick="assemble()">Assemble</button>
<button class="btn btn-secondary" onclick="clearAsm()">Clear</button>
</div>
<div class="result-box" id="asmOutput">Machine code will appear here...</div>
<div class="input-area" style="margin-top: 30px;">
<label>Machine Code (Hex):</label>
<textarea id="machineInput" placeholder="b801000000 31db cd80"></textarea>
</div>
<div class="action-btns">
<button class="btn btn-primary" onclick="disassemble()">Disassemble</button>
</div>
<div class="result-box" id="disasmOutput">Assembly will appear here...</div>
Shellcode Generator
<div class="input-area">
<label>Platform:</label>
<select id="shellcodeType" style="width: 100%; padding: 8px; border-radius: 4px; background: var(--md-code-bg-color); border: 1px solid var(--md-default-fg-color--lightest);">
<option value="linux_x86">Linux x86 - execve(/bin/sh)</option>
<option value="linux_x64">Linux x64 - execve(/bin/sh)</option>
<option value="windows_x86">Windows x86 - WinExec(cmd.exe)</option>
</select>
</div>
<div class="action-btns">
<button class="btn btn-primary" onclick="generateShellcode()">Generate</button>
<button class="btn btn-secondary" onclick="clearShellcode()">Clear</button>
</div>
<div class="shellcode-box">
<div>
<label style="font-weight: 500; margin-bottom: 10px; display: block;">Raw Bytes:</label>
<div class="result-box" id="shellcodeRaw">-</div>
</div>
<div>
<label style="font-weight: 500; margin-bottom: 10px; display: block;">Python Format:</label>
<div class="result-box" id="shellcodePython">-</div>
</div>
</div>
<div>
<label style="font-weight: 500; margin-bottom: 10px; display: block;">C Format:</label>
<div class="result-box" id="shellcodeC">-</div>
</div>
<div style="padding: 12px; background: var(--md-code-bg-color); border-left: 4px solid var(--md-accent-fg-color); margin: 15px 0; border-radius: 4px;">
<strong>Warning:</strong> Shellcode chỉ để học tập và CTF. Không sử dụng cho mục đích bất hợp pháp.
</div>
Integer Overflow Calculator
<div class="input-area">
<label>Data Type:</label>
<select id="dataType" onchange="updateLimits()" style="width: 100%; padding: 8px; border-radius: 4px; background: var(--md-code-bg-color); border: 1px solid var(--md-default-fg-color--lightest);">
<option value="int8">int8_t (signed 8-bit)</option>
<option value="uint8">uint8_t (unsigned 8-bit)</option>
<option value="int16">int16_t (signed 16-bit)</option>
<option value="uint16">uint16_t (unsigned 16-bit)</option>
<option value="int32" selected>int32_t (signed 32-bit)</option>
<option value="uint32">uint32_t (unsigned 32-bit)</option>
</select>
</div>
<div class="overflow-calc" id="limits"></div>
<div class="input-area">
<label>Value 1:</label>
<input type="number" id="val1" value="2147483647">
</div>
<div class="input-area">
<label>Value 2:</label>
<input type="number" id="val2" value="1">
</div>
<div class="action-btns">
<button class="btn btn-primary" onclick="calcOverflow('add')">Add</button>
<button class="btn btn-primary" onclick="calcOverflow('sub')">Subtract</button>
<button class="btn btn-primary" onclick="calcOverflow('mul')">Multiply</button>
</div>
<div class="result-box" id="overflowResult">Result will appear here...</div>
Format String Vulnerability Tester
<div class="input-area">
<label>Format String:</label>
<input type="text" id="formatInput" placeholder="%x %x %x %s" value="%p %p %p">
</div>
<div class="input-area">
<label>Number of Arguments:</label>
<input type="number" id="formatArgs" value="3" min="1" max="20">
</div>
<div class="action-btns">
<button class="btn btn-primary" onclick="testFormat()">Test Format</button>
<button class="btn btn-secondary" onclick="clearFormat()">Clear</button>
</div>
<div class="result-box" id="formatOutput">-</div>
<div style="margin-top: 20px;">
<h4>Common Format Specifiers:</h4>
<div class="result-box">%p - Pointer address
%x - Hexadecimal %s - String %d - Decimal %n - Write to memory (dangerous!) %[number]$p - Access argument at position