Skip to content

Commit

Permalink
Add more assembler tests
Browse files Browse the repository at this point in the history
  • Loading branch information
ZehMatt committed Nov 3, 2021
1 parent 01e901a commit c18d872
Showing 1 changed file with 82 additions and 0 deletions.
82 changes: 82 additions & 0 deletions src/Dotx64DbgManagedTests/Tests/TestAssembler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,87 @@ public void TestEncodeXorRaxRax()
AssertEq(0x31, data[1]);
AssertEq(0xC0, data[2]);
}

[Test]
public void TestEncodeLeaBasic64()
{
var assembler = new Dotx64Dbg.Assembler();
assembler.Lea(Rax, QwordPtr(Rax));
assembler.Finalize();

var data = assembler.GetData();
AssertEq(4, data.Length);
AssertEq(0x3E, data[0]);
AssertEq(0x48, data[1]);
AssertEq(0x8d, data[2]);
AssertEq(0x00, data[3]);
}

[Test]
public void TestEncodeLeaBasic32()
{
var assembler = new Dotx64Dbg.Assembler();
assembler.Lea(Eax, DwordPtr(Eax));
assembler.Finalize();

var data = assembler.GetData();
AssertEq(4, data.Length);
AssertEq(0x3E, data[0]);
AssertEq(0x67, data[1]);
AssertEq(0x8D, data[2]);
AssertEq(0x00, data[3]);
}

[Test]
public void TestEncodeMemSegment64()
{
var assembler = new Dotx64Dbg.Assembler();
assembler.Mov(Rax, QwordPtr(0x60).WithSegment(Gs));
assembler.Finalize();

var data = assembler.GetData();
AssertEq(9, data.Length);
AssertEq(0x65, data[0]);
AssertEq(0x48, data[1]);
AssertEq(0x8B, data[2]);
AssertEq(0x04, data[3]);
AssertEq(0x25, data[4]);
AssertEq(0x60, data[5]);
AssertEq(0x00, data[6]);
AssertEq(0x00, data[7]);
AssertEq(0x00, data[8]);
}
#else
[Test]
public void TestEncodeLeaBasic32()
{
var assembler = new Dotx64Dbg.Assembler();
assembler.Lea(Eax, DwordPtr(Eax));
assembler.Finalize();

var data = assembler.GetData();
AssertEq(3, data.Length);
AssertEq(0x3E, data[0]);
AssertEq(0x8D, data[1]);
AssertEq(0x00, data[2]);
}

[Test]
public void TestEncodeMemSegment32()
{
var assembler = new Dotx64Dbg.Assembler();
assembler.Mov(Eax, DwordPtr(0x30).WithSegment(Fs));
assembler.Finalize();

var data = assembler.GetData();
AssertEq(6, data.Length);
AssertEq(0x64, data[0]);
AssertEq(0xA1, data[1]);
AssertEq(0x30, data[2]);
AssertEq(0x00, data[3]);
AssertEq(0x00, data[4]);
AssertEq(0x00, data[5]);
}
#endif

[Test]
Expand All @@ -39,5 +120,6 @@ public void TestEncodeXorEaxEax()
AssertEq(0x31, data[0]);
AssertEq(0xC0, data[1]);
}

}
}

0 comments on commit c18d872

Please sign in to comment.