1
0

obf.c 486 B

1234567891011121314151617181920212223242526
  1. #include "obf.h"
  2. #include <stdbool.h>
  3. #define LOWER_HALFBYTE(x) ((x) & 0xF)
  4. #define UPPER_HALFBYTE(x) (((x) >> 4) & 0xF)
  5. void deobfuscate_str(char *str, uint64_t val)
  6. {
  7. uint8_t *dec_val = (uint8_t *)&val;
  8. int i = 0;
  9. while (*str != 0) {
  10. int pos = i / 2;
  11. bool bottom = (i % 2) == 0;
  12. uint8_t *ch = (uint8_t *)str;
  13. uint8_t xor = bottom ? LOWER_HALFBYTE(dec_val[pos]) : UPPER_HALFBYTE(dec_val[pos]);
  14. *ch ^= xor;
  15. if (++i == sizeof(uint64_t) * 2)
  16. i = 0;
  17. str++;
  18. }
  19. }