obcode anti-debugging library 1.0.6 reviewDownload
This library defines set of data types and artithmetic operators, which can be used to code procedures with the intent to produce bin
This library defines set of data types and artithmetic operators, which can be used to code procedures with the intent to produce binary code which is difficult to analyse and reverse engineer.
This is achieved by moving all the calculations to yet another layer, which produces messy binary code being difficult to read and figure out, what calculations are actually performed and on which data.
The library provides arithmetic and logic operators to work with those data types. For example, addition performed in OBCODE would be coded as follows:
struct obyte ob1;
struct obyte ob2;
struct obyte obsum;
unsigned char sum;
obcode_init(0); /* Initialise obyte random */
obyte_set(&ob1, 12); /* Normal number 12 to obyte */
obyte_set(&ob2, 33); /* Normal number 33 to obyte */
obyte_add(&ob1, &ob2, &obsum); /* Perform OBCODE addition */
sum = obyte_get(&obsum); /* Return to normal world */
If those numbers were already encoded as obytes, people reverse engineering the code would never see 12 and 33, only messy operations on long, random looking data streams, eventually giving the product of 45.
This library is still work in progress. It contains bugs and the operators set is very limited. Suggestions and improvements are welcome.
What's New in This Release:
Code and documentation cleanups.
obcode anti-debugging library 1.0.6 keywords