В исходном коде
Code:
.text:00491EF1 push offset ptrString ; <<<<<<<<<<<<<<< string pointer
.text:00491EF6 push offset byte_5C51D0
.text:00491EFB call sub_481AF6
при старте выводится строка 'It seems that there is nothing interesting here...'
Патчем подменяем указатель на строку, указателем на буфер, где будет находиться распакованный флаг
.text:00491EBC FlagBuffer db 27h, 7Fh, 56h, 7Bh, 6Ch, 7Bh, 2Ah, 56h, 6Ch, 27h, 70h ....
Адрес этого буфера в little-endian и есть содержание нашего патча '\xbc\x1e\x49\x00'.
Или питоном можно весь алго курить, кроме получения CRC
Code:
b = open('crack.exe','rb').read()
xx = b[0x152bc:0x152ef]
crc = 0x10
o = ''
for i in range(len(xx)):
o += chr((ord(xx[i])-7)^crc)
print o