Commit Graph

  • 032030169e Added comprehensive test cases for SUB instructions with complex addressing modes bird_egop 2025-04-13 17:55:29 +03:00
  • b11b39ac4e Implemented 16-bit SUB instruction handlers and fixed test data bird_egop 2025-04-13 17:51:54 +03:00
  • d1d52af511 Added CSV test files for various instruction types and enabled comments in CSV files bird_egop 2025-04-13 17:17:28 +03:00
  • 3f4b9a8547 Optimized HexStringToByteArray method using spans for better performance bird_egop 2025-04-13 17:07:09 +03:00
  • 2cdd9f1e83 move tests to csv bird_egop 2025-04-13 17:02:46 +03:00
  • 565158d9bd Fixed immediate value formatting in Group1 instruction handlers bird_egop 2025-04-13 16:00:46 +03:00
  • 2c85192d13 Fixed byte order handling in SUB instruction handlers and updated tests bird_egop 2025-04-13 14:25:27 +03:00
  • 44c73321ea move handlers to respective folders bird_egop 2025-04-13 04:13:44 +03:00
  • e8a16e7ecd Moved AND instruction handlers from ArithmeticImmediate to dedicated And namespace for better organization bird_egop 2025-04-13 04:11:06 +03:00
  • af94b88868 Added comprehensive test coverage for arithmetic and logical instructions. Implemented AND instruction handlers and added tests for ADC, SBB, and arithmetic unary operations. bird_egop 2025-04-13 04:07:37 +03:00
  • b215908d76 fixups bird_egop 2025-04-13 03:56:39 +03:00
  • 611dce32e5 Fixed operand order in MOV instructions and updated tests to match disassembler output bird_egop 2025-04-13 03:56:09 +03:00
  • b2929c38e9 Replaced all Assert.Contains with strict Assert.Equal in tests for better validation bird_egop 2025-04-13 03:38:50 +03:00
  • 0d271abdcb Replaced Assert.Contains with strict Assert.Equal in tests for better validation bird_egop 2025-04-13 03:33:51 +03:00
  • b718745d7a Fixed MovRm32Imm32Handler to properly handle instruction boundaries bird_egop 2025-04-13 03:25:20 +03:00
  • 17ef78a7a7 Fixed instruction boundary detection and added JGE instruction handler bird_egop 2025-04-13 03:19:42 +03:00
  • e12f5b5bdf Fixed instruction boundary detection for complex instruction sequences bird_egop 2025-04-13 03:08:37 +03:00
  • 33b151d856 Fixed instruction boundary detection by improving MovRm8Imm8Handler bird_egop 2025-04-13 03:00:31 +03:00
  • 465056dd9a Fixed instruction boundary detection for the specific sequence at address 0x00001874 bird_egop 2025-04-13 02:51:51 +03:00
  • 618ee641a8 Added OrRm8R8Handler for decoding OR r/m8, r8 instruction (opcode 0x08) bird_egop 2025-04-13 02:35:48 +03:00
  • d46d03ce65 Added AddEaxImmHandler for decoding ADD EAX, imm32 instruction (opcode 0x05) bird_egop 2025-04-13 02:31:08 +03:00
  • d0667950f8 Added proper REPNE prefix handling and comprehensive string instruction tests bird_egop 2025-04-13 02:26:49 +03:00
  • 79bf419c07 Consolidated string instruction handling by enhancing StringInstructionHandler to handle both regular and REP/REPNE prefixed instructions bird_egop 2025-04-13 02:23:27 +03:00
  • efd9141b39 Made StringInstructionHandler self-contained by removing dependency on OpcodeMap bird_egop 2025-04-13 02:20:49 +03:00
  • bdd691a021 Inlined local methods in StringInstructionHandler for better readability bird_egop 2025-04-13 02:19:19 +03:00
  • 410211fcc6 Converted StringInstructionDecoder to StringInstructionHandler for better consistency with handler pattern bird_egop 2025-04-13 02:18:12 +03:00
  • 9dfa559045 Refactored instruction decoder to improve modularity. Created StringInstructionDecoder and updated PrefixDecoder. Fixed handler registration in InstructionHandlerFactory. bird_egop 2025-04-13 02:16:12 +03:00
  • c14a92bf04 Added support for string instructions with REP prefix, specifically F3 A5 (REP MOVS) bird_egop 2025-04-13 02:10:48 +03:00
  • bfaeba0d5f Fixed segment override prefix handling for 0x64 (FS) opcode with tests bird_egop 2025-04-13 01:39:38 +03:00
  • b4a85d2839 fix duplicated code bird_egop 2025-04-13 01:36:11 +03:00
  • 52841237c1 Added CmpRm32R32Handler for CMP r/m32, r32 instruction (0x39) with tests bird_egop 2025-04-13 01:34:56 +03:00
  • 28ba47bfab add factory tests bird_egop 2025-04-13 01:30:58 +03:00
  • c701fdb435 Added CmpAlImmHandler for CMP AL, imm8 instruction (0x3C) with tests bird_egop 2025-04-13 01:30:42 +03:00
  • 9cad5ff95c fixup bird_egop 2025-04-13 01:11:45 +03:00
  • 8123ced2d6 Removed duplicate OR instruction handlers and files to fix handler organization bird_egop 2025-04-13 01:11:20 +03:00
  • 03aa51d13c Removed Group1 folder and fixed handler organization. Organized handlers by instruction type instead of abstract groupings. bird_egop 2025-04-13 01:08:49 +03:00
  • b8a37e626c Implemented Group1 instruction handlers for CMP r/m8, imm8 and fixed OR r/m8, imm8 bird_egop 2025-04-13 01:02:37 +03:00
  • 402cdc68fb Added support for INC r32 instructions (0x40-0x47) with tests bird_egop 2025-04-13 00:55:20 +03:00
  • 7d23af32fa Added support for MOV r/m8, imm8 (0xC6) and ADD r/m32, r32 (0x01) instructions with tests bird_egop 2025-04-13 00:50:23 +03:00
  • 266fdfeee5 Added support for CALL r/m32 (0xFF /2) and ADD r32, r/m32 (0x03) instructions with tests bird_egop 2025-04-13 00:45:53 +03:00
  • 393aac5bf6 Added support for DEC r32 instructions (0x48-0x4F) with tests bird_egop 2025-04-13 00:41:36 +03:00
  • 439b6576b7 Added support for CMP r32, r/m32 (0x3B) and MOV r/m32, imm32 (0xC7) instructions with tests bird_egop 2025-04-13 00:38:38 +03:00
  • 70f2acd3d1 Added support for LEA instruction (opcode 0x8D) with tests bird_egop 2025-04-13 00:34:03 +03:00
  • 79bb19df6b Reorganized OR instruction handlers into a dedicated folder bird_egop 2025-04-13 00:28:12 +03:00
  • 94a61a17a1 Added complete set of OR instruction handlers with tests bird_egop 2025-04-13 00:26:13 +03:00
  • 3ffaaf0057 Added support for OR r8, r/m8 instruction (opcode 0x0A) with tests bird_egop 2025-04-13 00:23:11 +03:00
  • 7063a4a5a8 fix float bird_egop 2025-04-13 00:21:01 +03:00
  • 016e1ee54f Reorganized instruction handlers into more descriptive folders (ArithmeticImmediate and ArithmeticUnary) bird_egop 2025-04-12 23:46:05 +03:00
  • f658f4384c cleanup bird_egop 2025-04-12 23:40:48 +03:00
  • 3cc6d27e33 Split FloatingPointHandler into specialized handlers for each instruction type and fixed FLDCW instruction formatting bird_egop 2025-04-12 23:33:40 +03:00
  • 82653f96f2 split float handlers bird_egop 2025-04-12 23:24:42 +03:00
  • bb695cf3bb move handlers, remove bases bird_egop 2025-04-12 23:03:07 +03:00
  • acccf5169a Fixed FnstswHandler test by registering the handler in InstructionHandlerFactory bird_egop 2025-04-12 22:34:02 +03:00
  • c027adc113 split and move handlers bird_egop 2025-04-12 22:18:46 +03:00
  • 0cc03c2479 Added test for INT3 instruction handler bird_egop 2025-04-12 22:16:12 +03:00
  • 3ea408d088 Improved XCHG instruction test to be more flexible about operand order bird_egop 2025-04-12 22:10:01 +03:00
  • d5bcd56774 Added tests for previously untested DataTransferHandler methods and fixed NOP instruction handling bird_egop 2025-04-12 22:05:51 +03:00
  • 759d28f9a7 Added comprehensive tests for instruction handlers bird_egop 2025-04-12 22:00:15 +03:00
  • 5ede2bd3c6 remove comments bird_egop 2025-04-12 21:54:06 +03:00
  • a0e40c8a52 Fixed instruction handlers and tests for Group1, Group3, and XOR instructions bird_egop 2025-04-12 21:48:41 +03:00
  • f107b8e763 Added comprehensive tests for various instruction handlers. Created test files for Jump, Return, XOR, Group1, Group3, and Call instructions. Fixed ConditionalJumpHandler test to use 'jz' instead of 'je' since they are equivalent in x86. bird_egop 2025-04-12 21:38:47 +03:00
  • 794b56c6b5 move handlers bird_egop 2025-04-12 21:34:16 +03:00
  • a6b6cc1149 Removed two-byte instruction handling from FloatingPointHandler. Simplified the code by removing the TwoByteInstructions dictionary and related methods since we now have dedicated handlers for specific instructions. bird_egop 2025-04-12 21:29:43 +03:00
  • 6ed6a7bd00 Fixed floating point instruction handling. Removed redundant FNSTSW AX check from FloatingPointHandler and added dedicated test for FnstswHandler. bird_egop 2025-04-12 21:27:17 +03:00
  • fe0b04f5a1 Fixed TEST instruction handlers and tests. Updated TestImmWithRm8Handler and TestImmWithRm32Handler to properly check opcode in CanHandle and validate reg field in Decode. Improved test cases to use InstructionDecoder directly. bird_egop 2025-04-12 21:21:03 +03:00
  • bf5fcdd2ff Fixed ConditionalJumpHandler to correctly implement x86 architecture specifications bird_egop 2025-04-12 21:09:41 +03:00
  • bd251b6c06 Improved ConditionalJumpHandler with better documentation and clearer code bird_egop 2025-04-12 21:02:52 +03:00
  • 0925bb7fef Fixed ConditionalJumpHandler to correctly display jump offset and added X86DisassemblerTests project to solution bird_egop 2025-04-12 21:00:32 +03:00
  • 87e0c152e2 Fixed disassembler regression by adding handlers for TEST r/m8, r8 and TEST r/m8, imm8 instructions bird_egop 2025-04-12 20:32:38 +03:00
  • dbc9b42007 Removed obsolete handler classes and restored InstructionHandlerFactory bird_egop 2025-04-12 20:25:29 +03:00
  • 1442fd7060 Removed obsolete Group1Handler and Group3Handler classes bird_egop 2025-04-12 20:14:28 +03:00
  • e4b8645da0 Implemented individual handlers for Group1 and Group3 instructions bird_egop 2025-04-12 20:13:01 +03:00
  • 58a148ebd8 Refactor instruction handlers to use single instruction per handler pattern bird_egop 2025-04-12 19:57:42 +03:00
  • 82ffd51a3e Add support for RET instruction with immediate operand (0xC2) bird_egop 2025-04-12 19:36:46 +03:00
  • 0fb3fd7311 Add support for XOR instruction bird_egop 2025-04-12 19:35:25 +03:00
  • f3aa862a57 Add support for two-byte conditional jumps, including JNZ (0F 85) bird_egop 2025-04-12 19:30:13 +03:00
  • cedd7a931e Add support for TEST instruction bird_egop 2025-04-12 19:26:00 +03:00
  • ae1c4730d0 Add support for FNSTSW instruction bird_egop 2025-04-12 19:21:32 +03:00
  • dffc405c10 Refactored instruction decoder into smaller, more maintainable components using handler pattern bird_egop 2025-04-12 19:18:52 +03:00
  • 2e6e133159 Added support for 0x83 opcode (Group 1 operations with sign-extended immediate) bird_egop 2025-04-12 19:04:43 +03:00
  • 1a76bb4e77 Enhanced x86 instruction decoder to fully decode memory operands and match Ghidra output bird_egop 2025-04-12 18:55:54 +03:00
  • 3823121bea Added support for floating-point instructions including FISTP bird_egop 2025-04-12 18:52:55 +03:00
  • 60f63c2c06 clarify rva members bird_egop 2025-04-12 18:49:23 +03:00
  • d73cccd3c5 Fixed DLL name display and console input handling in the disassembler bird_egop 2025-04-12 18:44:51 +03:00
  • 9b5ec7e0d6 Implemented enhanced x86 disassembler with improved instruction decoding and display bird_egop 2025-04-12 18:41:40 +03:00
  • 6a69b0b91b Update code style to follow project rules with one-liner namespace declarations bird_egop 2025-04-12 18:23:18 +03:00
  • 53de948376 Refactor: Move classes to separate files with one-liner namespace style bird_egop 2025-04-12 18:11:07 +03:00
  • cf2d61915c Fix nullability warnings by initializing fields in constructors bird_egop 2025-04-12 18:05:31 +03:00
  • 79773b08aa Move Is64Bit method from OptionalHeaderParser to OptionalHeader class bird_egop 2025-04-12 18:01:43 +03:00
  • 49a0a9e3a3 Remove function list truncation to show all exported and imported functions bird_egop 2025-04-12 17:22:20 +03:00
  • e4adb45ed2 Move section code checking logic from SectionHeaderParser to SectionHeader class bird_egop 2025-04-12 17:20:51 +03:00
  • f1a2fca4f3 Refactor PEFormat into smaller classes following Single Responsibility Principle bird_egop 2025-04-12 17:12:18 +03:00
  • 61a86f6681 Separate construction from parsing in PEFormat class bird_egop 2025-04-12 17:05:23 +03:00
  • 666a592217 Reorganize PE format code into separate files in PE namespace bird_egop 2025-04-12 17:03:04 +03:00
  • bc572f5d33 Fix DLL name parsing in export directory to properly separate DLL name from function names bird_egop 2025-04-12 16:51:22 +03:00
  • 8dfc0b1a7b Fix import directory parsing to properly resolve all DLL names and functions bird_egop 2025-04-12 16:47:21 +03:00
  • f5bacc018c test bird_egop 2025-04-12 16:42:44 +03:00
  • a6057bf072 unfuck 565 and 4444 textures bird_egop 2025-03-11 04:36:05 +03:00
  • a419be1fce update NRES file with element count and element size, seen in ResTree .trf bird_egop 2025-03-09 22:56:59 +03:00
  • 8c4fc8f096 комментарии и дополнительные изыскания bird_egop 2025-03-05 18:15:48 +03:00