+ фикс callout section кода в flow disasm: если он встречается делается выход из функции и если это был рекурсивный вход, то проверки не будет
Решение: добавить проверку возвращаемого кода при рекурсивном вызове

Важно: если это не фиксить, то надо проверить как он поведет при мутаторе (?? почему, не помню что мне тогда в голову упало UPD: а ну да, тогда предполагалось, что мутация будет сделана после проверки что файл заражен, но она сделана была по итогу по успеху заражен или нет )

- заражение .NET, UPD: доля дотнета очень мала и не вот уж прямо критично не заражать это говно для домохозяек в юбочке
- заражение ISO, RAR, ZIP
- HLLC заражение всяких джепегов - при встречи джпега какого-то, то заражение системного APP с гарантированной передаче управления (msiexec, например), замена этим APP джпега и добавление джпега в оверлей зараженного апп, при запуске анпак и запуск
- рефакторинг добавления мусора после стартап кода: перенести из класса инфектор в codegen.cpp туда где добавляются нынче нопы, потому что это уебанство: неисполнимый код должен добавляться в кодогенераторе, а не инфекторе, к тому же нам не нужны нопы если есть неисполнимый код
+ рефакторинг кода запуска процессов - сделать как в Azrael интерфейс для разных методов и итерацию по ним, вместо процедурного стиля
+ ВАЖНО! Сделать синхронизацию мьютексами в DebugChannel ибо если несколько создано, то предыдущий проваливается
- мутация ДНК-кода после составления списка вызовов, так, чтобы мы могли проверить заражен файл уже или еще нет. Мутация только если файл не заражен.
UPD: неактуально делать мутацию ДНК после составления списков вызовов, потому что делается она при достижении счетчика количества заражений на критической массе
- сделать следование jnz short если rel > 0 (то есть прыжок вперед, а не назад, во избежание циклов). Это увеличит вероятность верного перехвата call, так как jnz часто является проверкой на ошибки и rel указывает на истинную ветвь
  Но также добавить зависимость от счетчика перехода на случай зацикливания при неожиданных паттернах. UPD: как оказалось - итак достаточно часто переход делается
+ cid конвертится из ascii в wchar через црт функцию строковую - отвязать для размера

- named-pipe и модули-миграторы:
: запомни плиз важный функционал
: когда все сделаем будем грузить
: появится в августе Windows 365 - Cloud PC
: туда в том числе с mstsc можно подрубаться
: mstsc инфектор с админ правами заражает...
: короче было бы хорошо изнутри mstsc отправлять данные подключения - пассы и тд
: вводимые
: для этого нужен модуль перехвата
: нО!
: по текущей архитектуре бот стартует лишь в 1 процессе каждой сессии и это вряд ли mstsc
: значит придумал идею для послед реализации
: сделать надо будет модуль-сервер named pipe, который входные пакеты пересылает в админку, а ответ админки обратно - резидентный модуль
: таким образом можно будет делать модули-резидентные-миграторы, которые стартуют в боте, ждут нужный процесс и мигрируют в него, а обратно стучат на резидентный модуль named pipe server, отправляя свои данные
: а значит чтобы мигрировать нам также понадобится важная штука - в ядро инфектора сделать поднятие named pipe все байты на вход которой от клиентов будут исполняться в памяти
: то есть чтобы не палиться инжектом
: просто мигрировать через ipc pipe
: если такого нет то просто инжектор
: и потом в последствии можно будет даже сделать банкбот
: модуль веб инжектов
: и важный ремарк - бэкдор на исполнение кода должен по паблик ключу проверять подпись бинарного кода, если невалид то не запускать, нехуй кому попало юзать
: а приват ключ при сборке модуля подписывать будет
: парампампам

