I don't commonly see Dynamic Binary Modification (DBM) being used for reverse engineering and binary patching, which is a shame since it's quite a good tool for this sort of thing. Compared to regular binary patching, it has the advantage that the executable remains unmodified on disk and appears unmodified in memory at runtime.
more here...............https://github.com/lgeek/ioli_crackme_dbm_solution
more here...............https://github.com/lgeek/ioli_crackme_dbm_solution