Привет Indy_, где можно найти исходник Kite 1.0 ?! Файлы Kite приложенные к Dye не полные. В последней версии поменялись структуры, не мог бы ты выложить обновлённый Ep.asm. Что ещё поменялось кроме структур? Ещё вопрос, FtIsFile proc TestFile:HANDLE, File$:PSTR имеет такой прототип, но вызывается как invoke FtIsFile, D[Eax], без описания прототипа нельзя собрать, это ошибка? Что скрывается за GetTicks, переходник на GetTickСount()?
calidus, На сколько помню EP.asm это был сурец с критерием по определению общим способом точек входа через выборку, удивительно работало на любом тестовом модуле, не важно чем накрыт. Кайт это конструктор 2015 года, он формировал граф, затем после манипуляций с ним код билдился в буфера. В простейшем случае это перенос процедуры в буфер. Манипуляции с самим графом были довольно сложные из за столь запутанных структур его, но проще врядле можно сделать. > Что скрывается за GetTicks, переходник на GetTickСount()? Я не могу ничего ответить на это, тк десятки тысяч раз это пересобиралось, для каждого семпла своя сборка, обычно было с кл. Замеры приложением тайминга - на всё это стояли фильтры, он симулировался для апп. Где в этих сборках что искать я хз, это есть всё в бэкапах, но нужна точная инфа что бы конкретную сборку найти. В общем если где то раздабыл одну из последних старых сборок молодец, но сам разбирайся в мелочах, ссылка или указатель это на столько мелкие вопросы.. Rel, Не была использована бинарная трансляция, хотя это всё было реализовано. Тут есть эти темы, за это да, могут набутылить. Тк можно встраивать в малварь для решений в реалтайме - те же с-анклавы скрытие памяти обход вм.
Rel, net/com использует бин трансляцию для сборки, к тормозам не приводит, вообще с чего ты решил что нужно каждую инструкцию пропускать через буфер.. это было в первых реализациях тк просто для отладки самого мотора. https://wasm.in/threads/ukazatel-v-opisatel.33644/ - ключевая функция, улучшить никак нельзя, там синхронная адресная трансляция. Отобразив линейный адрес на буфер, можно рассыпать инструкции рандомом в памяти. Тогда как авер создаст сигнатуру, если она просто битовая маска, будет проходить в реалтайме ветвления в буферах ? Даже если это теоретически может быть реализовано, то диз сбить не составляет проблемы.
Не использует, COM вообще, а NET компилирует байткод в нативный с помощью JIT-компилятора. Из чистых интерпретаторов там, наверное, может быть только JScript или VBScript, да и то я не уверен в этом, в том же движке Chakra была JIT-компиляция. Причем тут дизасм и аверские сигнатуры - не понятно. Часть сигнатуры вполне может быть внутри инструкции.
Ты хочешь, чтобы я тебе нашел малварь, у которой сигнатура внутри инструкции начинается? Забавно, ты думаешь, что мне нужно что-то тебе доказывать? Ну я так то не прославился тем, что продал свои наработки блекушникам, как ты. Не создавал барыжных тем, где писал, что "заточен на малварь": https://jeyndoe.github.io/edump/pages/action=vthread&forum=6&topic=22203&page=0.html Так что я далеко не барыга, в отличии от тебя. --- Сообщение объединено, 17 июл 2021 --- https://www.google.com/search?q=n+grams+signature - вот можешь матчасти почитать, чтобы не позорится в будущем. Может быть важна конкретная последовательность байт, которая может начинаться и заканчиваться как вначале или в конце инструкции, так и внутри нее.
Что вы тут устроили в моей теме?! В личке решить это нельзя?! Проблема здесь, это строчка - Код (ASM): .if (G_Image.Base <= Eax) && (G_Image.Limit > Eax) или оригинальный Код (ASM): .if ([Esi].Tr.LaX.Ea == Eax) && (Eax < 7FFE0000H) ; LA != EA -> ~TEB; ~USD .if (G_iBase <= Eax) && (G_iLimit > Eax) mov edx,[esi].Tr.Ia.Ea.Flags and edx,(1 shl EA_DISP32) or (1 shl EA_SIB) or (1 shl EA_BASE) or (1 shl EA_STR) где G_iBase и G_iLimit были перенесены в структуру .. первый код это моя модификация. Кроме этого TFR struct не имеет больше структуры ЕА, которая находится теперь в Код (ASM): MDF struct Ea EA <> Fetch ULONG ? ; XED_OPERAND_ACTION_x LaX LADDR <> LaY LADDR <> MDF ends PMDF typedef ptr MDF MDF <> пришлось добавить в TFR struct, иначе собрать невозможно. А сама MDF нигде не используется. То, что сборки разные это понятно, но эти структуры в Hdr.inc же базовые, вижно, что обновилась структура двига, где старые модули просто не подключаются. Отсюда и вопрос, есть ли обновлённый EP.asm. Но если нет, то придётся вручную подбирать. В чём разница изменений внутри двига, если основные фильтры регистрируются отдельно/собираются отдельно? Можешь выложить оригинальный исходный код? Не хекс инклуд файл. .. invoke GetTicks .. из Ft.asm Код (ASM): SyCreateFile proc C assume ebx:PNT_CREATE_FILE Recall: comment ' invoke FtSysCall, sizeof(NT_CREATE_FILE) .if !Eax mov eax,[ebx].FileHandle invoke FtIsFile, D[Eax];, 0 .if !Eax invoke GetTicks %DBG "PID: 0x%p T: 0x%p FCREATE Access: 0x%X, Share: 0x%X, Disposition: 0x%X, Options: 0x%X", [Ebx].CreateOptions, [Ebx].CreateDisposition, [Ebx].ShareAccess, [Ebx].DesiredAccess, Eax, fs:[TEB.Cid.UniqueProcess] .endif xor eax,eax .else push eax invoke StLookupName, Eax push eax invoke GetTicks pop ecx ; %DBG "PID: 0x%p T: 0x%p FOPEN failed %s", Ecx, Eax, fs:[TEB.Cid.UniqueProcess] pop eax .if Eax == STATUS_SHARING_VIOLATION invoke Sleep, 100 jmp Recall .endif .endif jmp SySkip ' jmp SyCall SyCreateFile endp или Код (ASM): SyClose proc C assume ebx:PNT_CLOSE ;/////////////////////////////////////////////////////////////////////// invoke FtIsFile, [Ebx].Handle; <<< - FtIsFile proc TestFile:HANDLE, File$:PSTR - FtIsFile PROTO TestFile:HANDLE, File$:PSTR ?! .if !Eax invoke GetTicks; <<<- GetTickСount() %DBG "PID: 0x%p T: 0x%p FCLOSE", Eax, fs:[TEB.Cid.UniqueProcess] .endif ;/////////////////////////////////////////////////////////////////////// jmp SyCall SyClose endp Ясно, спасибо
calidus, Вот примеры. Общий критерий по EP работает везде, не важно даже какой протектор. В общем если говорить инструмент мощный и я первый раз вижу что его кто то нашёл и использовал --- Сообщение объединено, 18 июл 2021 --- calidus, Вот базовая сборка конструктора. С ней есчо шло несколько моторов для скрытия памяти, DYPEx", подробности нужно искать на rohitab.com
Привет Indy_, ещё один вопрос, ты сделал быстрый трансляционный кэш, не мог бы ты показать сводную таблицу таймингов или множитель падения скорости по вариациям: оригинальный блок, под Dye без кэша, под Dye с кэшированием. Пример - оригинальный блок: 0.0x под Dye без кэша: -4.7x под Dye с кэшированием: -2.1x
calidus, Привет. Я не могу статистику привести, её было много есть дамп кл тут гдето была. Мне придётся запускать вм, а там столько сборок.. прошлую задачу я пару дней решал - искал последнюю рабочую сборку. C трансляцией и быстрым кэшем работало это всё в реалтайме. Последний раз я это собирал когда был есчо кл, а это довольно давно было. Вот тут недавно был вопрос https://cracklab.team/index.php?threads/439/ - тс глупый, невозможно это решить отладчиком. Для этого необходим визор, бт либо виртуальная машина. Принципы работы вм на харде не позволяют получить все выборки и всю последовательность по IP.
На самом деле в этом меня интересует один вопрос. Вот есть Дий версии 4.2. А зачем ему в принципе версии давать, там минорные и мажорные, если его никто, кроме Индия не использует? Некому же за историей изменений и чейндж логами следить, никому это не нужно. Или это просто в качестве подражания взрослым разработчикам? Чтобы почувствовать себя типа настоящим разрабом?
Rel, это моя выдумка, такой версии нет, в каждой версии были дополнения и новые функциональные блоки, версия 4 по моему списку версий это пред версия до обработки кэша, 4.2 это мой мод. Каждая версия может быть со своим фильтром, поэтому я дополняю версию как 1.а, 1.b, после главной версии. Вспоминать все изменения непрофессионально.
Indy_, что такое ntst.obj и где взять оригинальный сорс? Там внутри секция ресурсов и дебаг символы: Код (ASM): _QUOTAS_FOIuCC+kRIMARY_TR@ANSPOR0NNE4FAIL2"AGEULTITION"DEM®_Z ERO COPY_ON_WR ITEGUARD_K@\_FÀ! CACHEB _AN'ARASH_@DUMPB8UFFs@`"SBl_OBJ6SOURCE_REQUIREMÀpS_CHANG A:LAÁ:QA]PLE/!DS_MEMBERSHIP_EVA8LUAd%Y Есть ли ещё Srw.inc в сорсах? Где: Код (ASM): ; (PRTL_SRWLOCK) ; SRW_INITIALIZE equ 0 SRW_ACQUIRE_SHARED equ 1 SRW_RELEASE_SHARED equ 2 SRW_ACQUIRE_EXCLUSIVE equ 3 SRW_RELEASE_EXCLUSIVE equ 4 SIG_ppZwWaitForKeyedEvent equ 12345678H SIG_ppZwReleaseKeyedEvent equ 87654321H SRWE: DB 085H, 0C0H, 00FH, 084H, 099H, 003H, 000H, 000H, 048H, 00FH ........
calidus, > что такое ntst.obj и где взять оригинальный сорс? avl-статусный дамп, NTSTATUS коды c быстрой их выборкой. Код (Text): STE struct Id ULONG ? Nam3 PSTR ? STE ends PSTE typedef ptr STE .code ; + ; StCompare proc Tree:PRTL_AVL_TABLE, First:PSTE, Second:PSTE mov eax,First mov ecx,Second mov eax,STE.Id[eax] mov ecx,STE.Id[ecx] .if Eax == Ecx mov eax,GenericEqual .elseif Eax < Ecx mov eax,GenericLessThan .else mov eax,GenericGreaterThan .endif ret StCompare endp StAlloc proc Tree:PRTL_AVL_TABLE, S1ze:ULONG invoke MmAlloc, S1ze ret StAlloc endp StFree proc Tree:PRTL_AVL_TABLE, Buffer:PVOID invoke MmFree, Buffer ret StFree endp .data G_StBase PVOID ? G_StTree RTL_AVL_TABLE <> .code ; + ; StInit proc uses ebx esi edi Local Rid[3]:PVOID Local Res:PIMAGE_RESOURCE_DATA_ENTRY Local Rbase, Rsize:ULONG Local Ldr:PLDR_DATA_TABLE_ENTRY Local Ste:STE Local StSize:ULONG invoke LdrFindEntryForAddress, addr StInit, addr Ldr .if !Eax mov ebx,Ldr mov Rid[0],256 mov Rid[4],1 mov Rid[2*4],0 mov ebx,LDR_DATA_TABLE_ENTRY.DllBase[ebx] invoke LdrFindResource_U, Ebx, addr Rid, 3, addr Res .if !Eax invoke LdrAccessResource, Ebx, Res, addr Rbase, addr Rsize .if !Eax invoke MmAlloc, 49010 .if Eax mov G_StBase,eax invoke RtlDecompressBuffer, COMPRESSION_FORMAT_LZNT1, G_StBase, 49010, Rbase, Rsize, addr StSize invoke RtlInitializeGenericTableAvl, addr G_StTree, addr StCompare, addr StAlloc, addr StFree, NULL mov edi,G_StBase mov ebx,StSize add ebx,edi .repeat mov eax,D[edi] lea ecx,[edi][4] mov Ste.Id,eax mov Ste.Nam3,ecx ; ~ "STATUS_" invoke RtlInsertElementGenericTableAvl, addr G_StTree, addr Ste, sizeof(STE), FALSE mov ecx,ebx add edi,4 xor eax,eax repne scasb .until Edi >= Ebx .else mov eax,STATUS_NO_MEMORY .endif .endif .endif .endif ret StInit endp ; + ; StLookupName proc Id:ULONG invoke RtlLookupElementGenericTableAvl, addr G_StTree, addr Id test eax,eax cmovnz eax,STE.Nam3[eax] ret StLookupName endp > Есть ли ещё Srw.inc в сорсах? Это рипнутые системные slim-блокировки, хороший механизм.