Сейчас на форуме: -Sanchez- (+9 невидимых)

 eXeL@B —› Основной форум —› Активность приложения.
<< . 1 . 2 .
Посл.ответ Сообщение


Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 25 июня 2019 22:11 · Поправил: difexacaw
· Личное сообщение · #1

Как тему назвать лучше я не придумал

Идея следующая --> Link <--

Смысл в том, что бы автоматикой обнаружить новую активность апп после некоторых событий. Тоесть к примеру найти обработчик события по нажатию кнопки. Для этого нужно выделить всю активность до нажатия и определить которой там небыло.

Для этого нужно определить механизмы - что сохранять и как. Так как сохранять трассы/графы затея тёмная, так как не ясно что да как, да и затратно по ресурсам. В простейшем случае я использовал следующее.

В самом простом случае сохранение инструкции это маркер её исполнения, тоесть используется битовая карта, где каждый адрес соотвествует биту и взводится посе исполнения инструкции. Для хранения всего кода апп нужны сложные структуры(для экономии памяти), поэтому в простейшем случае можно рассматривать только основной образ апп и карту для него равную ImageSize/8.

Если искать новую инструкцию просто по этим маркерам, то это не всегда решение, так как не даст ветвление на эту инструкцию. Тоесть необходимо найти ветвление на новый адрес(маркер которого сброшен в карте). Я использовал следующий критерий отличия событий: если маркер текущей инструкции сброшен и маркер предыдущей инструкции взведён, при этом предыдущая инструкция - ветвление, это новая активность.

В первом тесте я использовал winhex, у которого ограничение на размер сохраняемого дампа. Что бы найти место проверки вначале сохраняется файл меньшего размера и при этом строится карта активности. Далее находится новый код по критерию выше при сохранении файла большего размера. В результате в лог выводятся инструкции подходящие под критерий. Место проверки сразу найдено:



Для более сложного теста я использовал апп накрытое Armadillo-й:



Строится карта, я ввожу данные в форму. Затем начинается проверка критерия, я жму на ввод. Справа начало лога. Сразу оказываемся в крипто-функции, судя по константам это BLAKE" как утверждает вики. 4B53EB как и 4B534C в логе из за особенностей построения карты - маркировка и проверка происходит после исполнения инструкции, тоесть новое ветвление есчо до проверки маркируется. Лог не полный, так как активность только для образа. Вот это место под отладчиком, это крипто-функция имени:



Как видно метод отлично работает. Интересны мысли по сабжу.

0b51_25.06.2019_EXELAB.rU.tgz - br.7z

Добавлено спустя 2 часа 24 минуты
Нашёл тему --> Link <--

Интереса ради решил взглянуть. Для блокнота 7-ки есть дебаг символы. Вот лог нажатия "=":

Code:
  1. calc.00CEDE77
  2. calc.00CEE766
  3. calc.00CE5E36
  4. calc.00CE51C4
  5. calc.00CE51D0
  6. calc.00CE51E5
  7. calc.00CE51EE
  8. calc.00CE51F4
  9. calc.00CE51FD
  10. calc.00D05306
  11. calc.00D0530D
  12. calc.00D05314
  13. calc.00D05320
  14. calc.00D0532C
  15. calc.00D0533B
  16. calc.00D05340
  17. calc.00CE6524
  18. calc.00D05355
  19. calc.00CE680B
  20. calc.00D05368
  21. calc.00D05374
  22. calc.00CE20D1
  23. calc.00CE209F
  24. calc.00CE20EC
  25. calc.00CE2148
  26. calc.00CE20EC
  27. calc.00CE2148
  28. calc.00D0543A
  29. calc.00CE22E2
  30. calc.00D0501E
  31. calc.00D05024
  32. calc.00D05036
  33. calc.00D0503C     <
  34. calc.00CE20D1
  35. calc.00CE209F
  36. calc.00CE20EC
  37. calc.00CE2148
  38. calc.00CE20EC
  39. calc.00CE2148
  40. calc.00CE20D1
  41. calc.00CE209F
  42. calc.00CE20EC
  43. calc.00CE2148
  44. calc.00CE20EC
  45. calc.00CE2148
  46. calc.00CF0F10 <




CF0F10:
Code:
  1. .text:01010F10                 call    ?powrat@@YGXPAPAU_rat@@PAU1@@Z ; powrat(_rat * *,_rat *)


b001_26.06.2019_EXELAB.rU.tgz - calc.7z

-----
vx





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 27 июня 2019 23:04
· Личное сообщение · #2

dma

Тут ты уже планов своих расписал на десяток лет. А что ты можешь по факту.)

-----
vx




Ранг: -12.6 (нарушитель), 11thx
Активность: 0.050.03
Статус: Участник

Создано: 27 июня 2019 23:22
· Личное сообщение · #3

difexacaw пишет:
А что ты можешь по факту.)


Ну кое что, как бы вы этого не хотели, я все же уже могу, а вот до знания ядра nt на вашем уровне - мне конечно же, как тут однажды выразился один начальник антивирусной компании, как до Китая раком. Так что сказки о себе про "коньков-горбунков" вы от меня пока не дождетесь.




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 28 июня 2019 01:37 · Поправил: difexacaw
· Личное сообщение · #4

Вот пробная сборка SDE --> Link <--

Это то, что я сделал за сегодня. pinvm изменён - впрыснута секция кода, она вызывается при выборке инструкций, в сурках пина это fetchIns().

Что бы это запустить нужно зарегать Олли как jit. Там есть сурки с обработкой, она проста.

Можно увидеть что обработка не корректна - поток инструкций не последователен. Событие выбрано наугад - копирование инструкций, пока я не знаю нужное место, что бы получить полноценный колбек.

Сам SDE работает как годный юзер руткит, те кроме кернел отладчика его вызовы не получится отследить, если только те два, которые можно найти в статике(2e). Если использовать опцию -debugtrace то будет вывод трассы в файл, но источник без виндебаг вы не найдёте.

Если узнать нужное место, то можно будет сделать норм рабочий тулз.

ps: зачем бинарям .def файлы я хз, но без них не работает. Что бы не париться я залил всё, поэтому такой размер.

-----
vx


| Сообщение посчитали полезным: plutos


Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 28 июня 2019 06:28 · Поправил: plutos
· Личное сообщение · #5

difexacaw пишет:
Вот пробная сборка SDE


не мог бы ты запилить небольшой мануальчик к этому проэкту?
Хотя бы в самых общих чертах.
Заранее спасибо!

-----
Give me a HANDLE and I will move the Earth.





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 28 июня 2019 12:15
· Личное сообщение · #6

SDE у меня тупо стартует пин.

Code:
  1. C:\WORK\Compiler_course\sde-external-8.35.0-2019-03-11-win\sde-external-8.35.0-2019-03-11-win\ia32\pin -p32 C:\WORK\Compiler_course\sde-external-8.35.0-2019-03-11-win\sde-external-8.35.0-2019-03-11-win\ia32\pin -p64 C:\WORK\Compiler_course\sde-external-8.35.0-2019-03-11-win\sde-external-8.35.0-2019-03-11-win\intel64\pin -logfile C:\WORK\Compiler_course\sde-external-8.35.0-2019-03-11-win\sde-external-8.35.0-2019-03-11-win\pin-log.txt -xyzzy -bridge-save-mxcsr 0 -bridge-set-mxcsr 1 -use_sahf 0 -follow-execv -t64 C:\WORK\Compiler_course\sde-external-8.35.0-2019-03-11-win\sde-external-8.35.0-2019-03-11-win\intel64\sde-mix-mt.dll -t C:\WORK\Compiler_course\sde-external-8.35.0-2019-03-11-win\sde-external-8.35.0-2019-03-11-win\ia32\sde-mix-mt.dll -logfile C:\WORK\Compiler_course\sde-external-8.35.0-2019-03-11-win\sde-external-8.35.0-2019-03-11-win\pin-tool-log.txt -work-dir C:\WORK\Compiler_course\sde-external-8.35.0-2019-03-11-win\sde-external-8.35.0-2019-03-11-win -chip-check ICELAKE -debugtrace -cpuid-in C:\WORK\Compiler_course\sde-external-8.35.0-2019-03-11-win\sde-external-8.35.0-2019-03-11-win/misc/cpuid/icl/cpuid.def -- cmd.exe


Т.е. походу всё сводится к пониманию работы Pin.

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 3.5 (гость), 1thx
Активность: 0.030
Статус: Участник

Создано: 28 июня 2019 12:34 · Поправил: fedik
· Личное сообщение · #7

лол инди ida lighthouse придумал!
но инди! у них рабочий инструмент!




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 28 июня 2019 17:40 · Поправил: difexacaw
· Личное сообщение · #8

fedik

Это какие то скрипты для сравнения дампов, а не инструмент, тысячи их для иды - турбодиффы всякие. Ида не предназначена для снятия трассы в реалтайме, как и любой юзер отладчик, разве что всё тем же пином. Было бы рабочее, давно бы все юзали.

Та сборка пина что в сде не пригодна для снятия трассы, её просто нет, точнее она идёт частями, некоторые блоки пропускаются. А пин прикрутить для трассировки тоже не просто, он слишком толстый, нужна куча времени что бы разобраться. Да и не всё под ним можно крутить eg:



Добавлено спустя 6 часов 23 минуты
Свой мотор собрал, пришлось пол дня вычищать лишний функционал.

--> Link <-- vx

Там понятно всё, видос в архиве. Массива собирает два - условных ветвлений и cal/ret/jmp. Без тлс, они общие для потоков.

Добавлено спустя 7 часов 49 минут
Пару крякми глянул для теста.

Ввведение в крэк.. Олли, 25:



Введение в реверс.. Ида, 19:



Добавлено спустя 8 часов 44 минуты
Захотел посмотреть что получится с вмп если крутнуть. Обработал семпл выше(дефолтные настройки), варился 7 минут:



Если бы не имена секций, то не узнал бы что там слой протектора лол

Олли не отображает параметры апи как на крине выше, так как импорт захвачен протектором.

6585_29.06.2019_EXELAB.rU.tgz - vmp33.7z

Добавлено спустя 9 часов 2 минуты
Кстате может кому интересно, расскажу про очень хитрый трюк, так была найдена запись в файл в сде(пине) без использования кернел дебаг.

Пин общается с ядром через int2e шлюз; не зная адрес, этот интерфейс в юз обнаружить невозможно(иным способом). Я включил трассировку описателей(ProcessHandleTrace), затем закрыл описатель файла(Олли их отображает). И как следствие сработала ловушка при первом референсе на описатель, которая никогда больше не срабатывает - ядро кидает спец фаулт на мало известный адрес(KiRaiseUser), на стеке все нужные адреса. Так что есть способы и без км дебаг

-----
vx


| Сообщение посчитали полезным: dma


Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 30 июня 2019 20:50
· Личное сообщение · #9

Накрытый safengine крэкми:




Разница в обработке карты. В первом случае в лог идут события, если предыдущая инструкция(ветвление) выполняется повторно, во втором случае если впервые(те ветвления в новом коде). На размер лога это мало влияет, те разница не значительна.

-----
vx





Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 01 июля 2019 18:05
· Личное сообщение · #10

asprotect 2.78:



86ed_01.07.2019_EXELAB.rU.tgz - asp1.7z

-----
vx



<< . 1 . 2 .
 eXeL@B —› Основной форум —› Активность приложения.
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати