![]() ![]() But, I have no idea if you can find one for the AVR/Arduino. ![]() There are also decompilers for converting machine code to C or C++. And, I don't know if there's a disassembler for the AVR or if you'd have to write it yourself or do it by hand. There are no variables, labels, or comments in machine code, so variables & labels will be simply replaced by memory addresses and there will be no comments in the disassembled code. That is, every assembly language instruction has a corresponding machine language instruction so it's fairly trivial to disassemble the machine language and convert it to assembly language. There is a one-to-one relationship between assembly language and machine language (the hex file). So, if you find a readable string you can read it, or you can change it with the hex editor. ![]() You can open any file in a Hex Editor and the Hex Editor will show the ASCII character for any values that can be converted to text (including values that don't represent text). In other words, the hex code is meaningless unless you know what the machine language is. C/C++ is portable (with some limitations) so you can compile a C/C++ program to run on an Arduino, PC, or Mac, but the machine language hex code only runs on the machine it's intended for. (Or, they steal the source code or simply copy the hex code.) Realistically, when people do "reverse engineering", they usually figure-out what the code is doing and they start-over and write a new program that does he same thing. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |