NOPReorder is a project developed to reordering and insert NOP (No Operation) instructions into RISC-V Assembly code, aiming to optimize execution, fix alignment issues, or improve the overall structure of the code. This process is useful in reverse engineering, performance analysis, or embedded systems that require precise control over code execution.
- Instruction Reordering: Reorders assembly code instructions for more efficient execution, considering alignment and flow.
- NOP Insertion: Inserts
NOPinstructions to optimize code execution or fix alignment issues. - Code Analysis and Modification: Reads and modifies Assembly code with intelligent NOP insertion, without affecting the final execution result.
- Reading the Assembly Code: The project starts by reading an RISC-V Assembly code file in hexadecimal format.
- Instruction Analysis: The code is analyzed to find reordering points or alignment issues.
- Reordering and NOP Insertion: The algorithm reorders instructions and inserts the necessary NOPs to ensure the code is executed optimally and efficiently.
- Output of Modified Code: The modified code is then generated, ready to be used in its original application.
To use this project, you only need to download it and run it!
-
Clone the repository:
CMD: git clone https://github.com/MathMoura18/NOPReorder.git
-
Execute NOPReader:
Run the file: NOPReorder.exe
Contributions are welcome! If you have suggestions or improvements, feel free to open an issue or submit a pull request.
- Fork this repository.
- Create a branch for your feature (git checkout -b my-feature).
- Commit your changes (git commit -am 'Adding new feature').
- Push to your fork (git push origin my-feature).
- Open a pull request.