mirror of
https://github.com/sampletext32/ParkanPlayground.git
synced 2025-05-18 19:31:17 +03:00
45 lines
1.3 KiB
C#
45 lines
1.3 KiB
C#
using X86Disassembler.X86;
|
|
|
|
namespace TestDisassembler;
|
|
|
|
public class Program
|
|
{
|
|
public static void Main(string[] args)
|
|
{
|
|
// Test the specific byte sequence that's causing issues
|
|
byte[] codeBytes = HexStringToByteArray("816B1078563412");
|
|
|
|
// Create a disassembler with the code
|
|
Disassembler disassembler = new Disassembler(codeBytes, 0x1000);
|
|
|
|
// Disassemble the code
|
|
var instructions = disassembler.Disassemble();
|
|
|
|
// Print the number of instructions
|
|
Console.WriteLine($"Number of instructions: {instructions.Count}");
|
|
|
|
// Print each instruction
|
|
for (int i = 0; i < instructions.Count; i++)
|
|
{
|
|
Console.WriteLine($"Instruction {i+1}: {instructions[i].Mnemonic} {instructions[i].Operands}");
|
|
}
|
|
}
|
|
|
|
private static byte[] HexStringToByteArray(string hex)
|
|
{
|
|
// Remove any non-hex characters
|
|
hex = hex.Replace(" ", "").Replace("-", "");
|
|
|
|
// Create a byte array
|
|
byte[] bytes = new byte[hex.Length / 2];
|
|
|
|
// Convert each pair of hex characters to a byte
|
|
for (int i = 0; i < hex.Length; i += 2)
|
|
{
|
|
bytes[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16);
|
|
}
|
|
|
|
return bytes;
|
|
}
|
|
}
|