/* 40250 client src */
#define NANOBEGIN __asm _emit 0xEB __asm _emit 0x03 __asm _emit 0xD6 __asm _emit 0xD7 __asm _emit 0x01
#define NANOEND __asm _emit 0xEB __asm _emit 0x03 __asm _emit 0xD6 __asm _emit 0xD7 __asm _emit 0x00
I am curious how this works. Why are the bytes inserted after function preamble and before function end ? And why these specific bytes.
I believe it protects the bin from reverse engineering by inserting these bytes (perhaps arbitrarily chosen). There is literally no other logical explanation why would anyone stack allocate 10 bytes that do nothing in every function.
This is what happens when looking at the bin
...
RANDOM BYTES
VALID BYTES
RANDOM BYTES
VALID BYTES
...
Am I correct ?