average usermode enjoyer
-
Автор темы
- #1
Всем привет!
Перед релизом платной версии мы решили сделать бесплатную версию Milfusactor, бесплатная версия читает .MAP файл и накрывает весь код мутацией, возможно для кого-то она покажется знакомой, ведь идея самой реализации бралась из одного популярного чита на CS:GO
Все минусы обусловлены ленью и тем, что обфускатор бесплатный.
Так как мы работаем плодотворно над платной версии, то мы достаточно мало тестов проводили для бесплатной версии, поэтому принимаются все баг-репорты по поводу работоспособности самого милфускатора или уже накрытой программы. Писать в тг: @nelfo или @netherrealmdev
Перед релизом платной версии мы решили сделать бесплатную версию Milfusactor, бесплатная версия читает .MAP файл и накрывает весь код мутацией, возможно для кого-то она покажется знакомой, ведь идея самой реализации бралась из одного популярного чита на CS:GO
Perses работает по принципу всех протекторов, создает доп. секцию в конце файла и туда пихает код под обфускацией, а после этого затирает оригинальный код .text секции и вставляет джамп в свою секцию.
Милфускатор же полностью ребилдит PE файл, изменяет и дополняет уже существующий код .text секции тем самым её расширяя, никаких доп. секций он не создает.
Персес схож только в одном, он сохраняет и ресторит ефлаги в каждом блоке обфускации. Делает он это чтобы не сломать логику программы (ему это не помогает кстати), без этого, увы, даже наш обфускатор обойтись не может (кому нужен обфускатор который ломает код?).
Милфускатор же полностью ребилдит PE файл, изменяет и дополняет уже существующий код .text секции тем самым её расширяя, никаких доп. секций он не создает.
Персес схож только в одном, он сохраняет и ресторит ефлаги в каждом блоке обфускации. Делает он это чтобы не сломать логику программы (ему это не помогает кстати), без этого, увы, даже наш обфускатор обойтись не может (кому нужен обфускатор который ломает код?).
Недавно мы столкнулись с не очень приятной ситуацией, дело в том, что из-за одного поста многие люди могут подумать, что наш проект основан полностью на другом проекте, а именно: Perses. Но для людей, которые действительно так считают я рекомендую перечитать спойлеры в этой теме, а в особенности спойлер "Почему это не perses".
Мы решили протестировать сам Perses, чтобы далее показать существенную разницу между Milfuscator Free и Perses. На удивление мы столкнулись с критическими ошибками после накрытия семплов, оказалось так, что Perses ломает стек поинтер, из-за чего после исполнения инструкции RET код уходит в ебеня на невалидные адреса памяти, либо же крашится из-за инструкции push qword ptr ds:[eax]
Теперь перейдем к самим результатам теста, я решил протестить код, работающий с мьютексом.
Теперь посмотрим как выглядит накрытый семпл фри версии милфускатора и perses в декомпилированном виде:C++:#include <iostream> #include <mutex> std::mutex g_Mutex; void ThreadStarter( ) { std::thread::id CurrentThreadId = std::this_thread::get_id( ); g_Mutex.lock( ); std::cout << "Thread " << CurrentThreadId << " blocked!\n"; g_Mutex.unlock( ); std::cout << "Thread " << CurrentThreadId << " active!\n"; std::this_thread::sleep_for( std::chrono::seconds( 1 ) ); } int main() { ThreadStarter( ); while ( true ); }
Посмотреть вложение 207419
Прибавляем ко всему этому факт, что семпл накрытый Perses нерабочий, потому что сломан стек поинтер.
Кто хочет глянуть семплы, скачать можно тут ->Пожалуйста, авторизуйтесь для просмотра ссылки.
Надеюсь, что подозрений в пастинге больше не возникнут
No, this is not your writeJcc function that I see for the first time, this is a switch from the transfer loop of the entire PE file to asmjit. While I'm transferring the entire file, I fix all the jumps and calls that my code analyzer found along the way.
It could coincide due to the fact that I took all the mnemonics for the switch in order from the mnemonics enum, which you could do, obviously, in your switches where you checked for some jumps.
Below is the code from the milfuscator
Посмотреть вложение 207604
The fact that there are coincidences, by the way, I described in the first message of the topic. There is a coincidence that you also save and restore flags (you save them to the stack, and I to the stack and then TIB). Of course, you can not believe me, but I didn’t even look into perses to steal the ingenious way to fix flags, initially I did without it at all, it was added as a crutch due to the fact that the decrypt instructions broke the flags, for some reason I did not immediately predict this. Already after the release of the free version and the accusations that we stole something from Perses, I was very surprised when I saw that you also use this crutch. Also, regarding ror / rol / bswap, they are used not because I saw it in perses, but because in general these instructions are quite popular for decrypting some values, I don’t see anything unusual in this.
The private version is not quite ready for use, but the free one should have been uploaded now, so there was no other way out. The use of the private version is in one crackme, which I posted recently on this forum, you can download it and look at the obfuscation, and once again make sure that no one needs your p3rs3s.
Скрытое содержимое
By the way, an advice for your obfuscator, always keep the stack pointer aligned, movaps instructions don't work with unaligned pointers.
- Поддержка только 32-битных .exe файлов
- Нет выбора обфускации пользовательского кода
- Вырезает все директории кроме импортов
- Нет выбора обфускации пользовательского кода
- Вырезает все директории кроме импортов
Так как мы работаем плодотворно над платной версии, то мы достаточно мало тестов проводили для бесплатной версии, поэтому принимаются все баг-репорты по поводу работоспособности самого милфускатора или уже накрытой программы. Писать в тг: @nelfo или @netherrealmdev
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Последнее редактирование: