eax, ecx
1002: mov bl, 4
1004: div bl
1006: xor ecx, ecx
1008: mov cl, al
100a: mov edi, esi
100c: lodsd eax, dword ptr [esi]
100d: rol eax, 3
1010: xor eax, 0x3f5bce84
1015: stosd dword ptr es:[edi], eax
1016: loop 0x100c
int 0x80
получить бинарную строку типа:
"\x89\xc8\xb3\x04\xf6\xf3\x31\xc9\x88\xc1\x89\xf7\xad\xc1\xc0\x03\x35\x84\xce\x5b\x3f\xab\xe2\xf4"
Строку сдизассемблил, а вот как обратно сделать не могу найти..
думал затащить в отладчик и там уже составить строку (но не уверен что можно)
но у меня даже скомпилировать не получается программу, только начал знакомство с асмом.
и вообще может есть путь проще это сделать?
Зачем тебе эта строка нужна?
Для использования в Python в модуле unicorn, если кратко))
В отладчике x64dbg выделяешь нужную область дизассемблированного листинга, ПКМ и "скопировать", там будет где-то "C-byte string"
Это шифровальщик какой то небольшой
да точно, мне уже подсказали как дешифровщик сделать, только с биинарником запарился
спасибо сейчас попробую поискать!
Деньги вымогать будете? 😀
😂 нет просто решаю задачку.. на дешифрование...ну или типо этого..неожиданно понял, что нужно ассемблер,теперь еще будет интересно и ассмблер изучить😅
Так простейший цикл с rol/xor наверно можно и на питоне реализовать легко. Скорость тут не важно наверно, т.к. максимальный размер данных всего 1024 байта.
Так ты можешь просто прочитать машинный код оттуда, откуда ты его дизассемблил. Офсет тебе дизассемблер показывает, надеюсь? with open('file.exe', 'rb') as fp: fp.seek(offset_откуда); code = fp.read(0x101a), и всё, и никаких строк, и уже можно начинать дрессировать единорогов.
Обсуждают сегодня