Med (Linux Memory Editor) 3.0

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.

Coin Flip Conundrum

I watched this video,

Very interesting.

So, I managed to prove it through some scripting.

And I get some result like this,

Target: [0, 1] average steps = 3.987
Target: [0, 0] average steps = 5.9505

P/S: Wrote a robust flip coin script, which can accept the coin tossing sequence with any length. [here]