Jump to content
Tuts 4 You

UnivDisasm an Open Source disassembler for x86


SMP3

Recommended Posts

Posted (edited)

Hi guys,


 


I'm happy to announce the release of my new disassembler called UnivDisasm.


It support both x86 and x86-64 ,Intel and AMD.


It support mostly all instructions  found in Intel and AMD doc,including:


FPU,MMX,SSE,SSE2,SSE3,SSSE3,SSE4.1,SSE4.2,SSE5,3DNOW,AVX,AVX2 ,FMA,FMA4.

*AES, MPX, F16C, TSX, VME, BMI, BMI2 …

*AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512ER, AVX512PF, AVX512VBMI, AVX512IFMA.

 

-REX,DREX,VEX,EVEX,XOP encoding support.

-Intel enhancement syntax: Masking, Zeroing, Rounding, Broadcasting.


-Support for VSIB memory addressing.

-Support Compressed displacement called disp8*N.

 


-Customized: UnivDisasm has an open architecture allowing for easy to extend for others syntax. You can have your own assembler syntax with less code writing!

-And many others features that i'm not going to talk about.

 

I hope that you may give it a try and let me know about how the user experience is.

 

The door is open to participate.

 


Edited by SMP3
  • Like 4
Posted

From the first glance, you're using stuff I haven't even heard about, like "record helper for" :)  Which version of Delphi is required to compile that? 

Posted

From the first glance, you're using stuff I haven't even heard about, like "record helper for" :)  Which version of Delphi is required to compile that? 

Record helper are a powerful enhancement for pascal language .It let you use/define functions inside record.

I think that where introduced with Delphi 2010.

Because the uses of Generics ,you may need XE3 to compile without errors.

Dragon Palace
Posted

do you have snapshot??


Posted

do you have snapshot??

Right now, the only way to get the source is from GitHub. You may want to download it as a zip. Just locate "Download ZIP" button in the main page. 

Posted

Just added a sample GUI for UnivDisasm:


GUI.PNG


Posted

Good job!


Tested (compiled with Delphi XE8)


  • 9 months later...
Posted

Great job SMP3,

I am interested in disassemblers aswell.

What I am wondering is the following.

Let's say I have an .exe to be disassembled and I have an Virtual Listview which will be filled with the disassembled instructions.

First question which occurs is how to determine the ItemCount for the virtual listview. I could disassemble the entire file and store all addresses inside an array.
Based on the amount of items written inside the array I can set the ItemCount, but I am wondering if this is the best way to go.

 

 

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...