Med (Linux Memory Editor) 3.0 released.
Recently I did a great revamp. Remove most of the old code which was not rightly designed. And previously I wrote a ByteManager, which I guess it causes a lot of trouble and crash, together with the memory value locking using multi-threading.
As a result, I spent some times to do a revamp. Remove the ByteManager and use the
shared_ptr instead. Because C++ doesn’t have garbage collection. It is hardly for this application to manage the dynamically allocated memory, because the scanned address needs to be hold awhile, or stored for saving, or hold for editing. By using
shared_ptr, the memory will be freed automatically when it has no reference.
Secondly, I use only one single background thread for memory value locking. (Previously, each value locking will create a background thread.) For the UI component, only a single background thread to refresh the values. This reduces unnecessary race condition and accessing error memory and causes crash.
Furthermore, I wrote an object, namely
MemIO, to perform memory read/write. So that the mutex will make sure only one thread can access the process memory at one time.
For the 3.0, I remove the “scan unknown” feature. As it was wrongly implemented and causes a lot of crash. Will re-implement this feature in future.