Определите код сборки и создайте для него скрипт на Python - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь понять этот ассемблерный код и создать скрипт на Python, чтобы изменить его, но у меня есть несколько вопросов по этому поводу ...

После попытки понять код в IDA, Код ассемблера

enter image description here

Я думаю, что происходит следующее:

Изображение слева - предыдущая часть перед входом в функциюсправа.Я отметил интересующую часть в RED.

Сначала он загружает адрес важной части DLL-файла (который шифруется, ida не распознает) в R4, затем перемещает R4 в R0.И входит в функцию, которая мне интересна (прямо на картинке).

Я думаю, что эта часть делает некоторую расшифровку кода.

Исправьте меня, если я ошибаюсь, но я думаю, что естьцикл for в этой функции, где R1 - это управление.

R3 - адрес памяти + R1 (смещение?)

R2 - код, который необходимо расшифровать, он сдвигается влево по битам набайт, то R2 добавляется R3.(эта часть меня смущает.) Данные сопровождаются адресом в одном регистре?Это правильно?

, а затем R1 устанавливается на минус 1. Это для цикла останавливается, когда R1 <0.Таким образом, он выполняется 4 раза. </p>

Кажется, что он расшифровывает код 4 байта за раз.

Я хотел бы построить функцию Python, куда я отправляю данные, и он возвращает расшифрованный код.

Пример скремблирования: 0xFF2B0092, 0x700055, 0x610064, 0x650074FB, 0xFF065300

Спасибо.

...