eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
обновлён 2 декабря!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: HaRpY (+2 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Основной форум —› Опять .net (part 2)
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . >>
Посл.ответ Сообщение


Ранг: 1996.4 (!!!!)
Статус: Модератор
retired

Создано: 12 сентября 2017 12:06 New!
Цитата · Личное сообщение · #1

Со времени создания топика много обсудили, во много м разобрались и много осталось за кадром. Решил подшить выкладываемый софт и линки

Инструменты:

dnSpy - бодрый декомпилятор и отладчик тут беты

Gray Wolf - DE-ObfuScatE / Edit IL(Live) / Add payloads / Edit attributes(public/privet) / Copy strong names signing on EXE/DLL
ReSharper 6.0 Build 2093 Pre-Release - Очень навороченый декомпилер, побробности --> ТУТ <--.
Рег-данные:
Code:
  1. User Name: ReSharper EAP User
  2. License Key: 0-A60kqsqDMPkvPrLC3bz1/jmns4/DAUV6
  3. which is valid until 31 March 2010

Reflector 8.3.3.115 - платный декомпилятор .NET 8.3.0.95 + (дополнение к нему)
Седьмая версия рефлектора - думаю все знают
Сборка Add-in'ов для Reflector - есть много полезных вещей
.Net ID 1.0.0.3 - определение защиты
DNiD by Rue - сигнатурный анализатор
Dotnet IL Editor (DILE)- Opensource дизассемблер и дебаггер
Xenocode Fox Code Analyzer- профайлер и дизассемблер
Reactor Decryptor 1.7 - что то декриптит, но что не понятно(с) zeppe1in
Simple Assembly Explor (SAE) - Assembler, Disassembler, Deobfuscator, IL editor and more...
DotNet Dumper 1.0 - Дампер .net'овских приложений. Подробное описание
Kurapica dotNET Tracer 1.1 - трейсер от известного автора инструментов для .net
ILSpy 1.0.0.481 - Opensource комбайн, на подобие SAE. Подробности тут
dotTrace Performance 4.0.665.4 - Неплохой трейсер для .Net приложений. Умеет делать трейсы не смешивая потоки как KDT. Умеет сравнивать трейсы двух запусков программы
Рег-данные:
Code:
  1. Name: exelab
  2. Serial: OLgDSHG0hJghkLdXYJh1IjM3ytMrqKcn

Universal Fixer 1.0 - fix dumps after dumping them whit Dotnet Dumper or other similiar tools and will also fix nasty things: multiple assembly/module definitions, wrong extends, etc.
iMPROVE .NET Deobfuscator - деобфускатор


ConfuserDumper
ConfuserDelegateKiller
CodeCrackerTools: ConfuserMethodsDecryptor, ConfuserDelegateKiller, ConfuserStringDecryptor, MegaDumper, etc.

Документация:
--> Microsoft <--
--> Metadata and File Format <--
--> CIL(опкоды с полным пояснениями) <--

Статьи с хабры:
Защита .NET приложений - Субъективная теоретическая муть с хабры, выдаваемая за обзор обфускаторов(только для фанатов)
Как обмануть NET.Reflector - вот это уже годная статья, в которой рассматривается ручная обфускация в стихах и картинках
Взлом программ для чайников - ну не знаю...прописные истины, но приятно, что все это есть на русском языке и нормально оформлено
Реверс-инжиниринг обфусцированной сборки .NET - один только заголовок чего стоит. По сути статья информативная
Инъекции MSIL кода в стороннюю сборку при помощи Mono.Cecil. Реализация принципов АОП в NET
Избавление .NET программы от регистрации на примере BEM
Снимаем дамп объектов с памяти .Net приложения

Другое:
.NET Reflector v7.0.0.198 (C# Source by wangshy)
String decryption with de4dot

Прошлый топик https://exelab.ru/f/index.php?action=vthread&forum=1&topic=16650&page=-1

-

Last edit: 2012-02-17, Links fixed. Jupiter

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



Ранг: 334.1 (мудрец)
Статус: Участник
born to be evil

Создано: 12 сентября 2019 15:17 · Поправил: ajax New!
Цитата · Личное сообщение · #2

Medsft
StrongNameSign... на диске либу проверят. он патчит в памяти. только что дебаггером проверил. нюанс в том, что к моменту LoadLibraryExW либа уже загружена. соотв-но хук со сравнением имени "пролетит"

Ранг: 323.0 (мудрец)
Статус: Участник
ILSpector Team

Создано: 12 сентября 2019 16:25 New!
Цитата · Личное сообщение · #3

api монитор говорит обратное, посмотрим запилит лоадер там видно будет. Учитывай что net dll не тоже самое что простой натив телам еще надос скомпилится, расположится в памяти и т.д.
Если он прав ломанем все)))

Добавлено спустя 20 минут
если ajax пишет: хук со сравнением имени "пролетит" создаю социальный заказ на универсальный генератор лоадеров для NET сборок)))

Ранг: 51.7 (постоянный)
Статус: Участник

Создано: 12 сентября 2019 21:04 New!
Цитата · Личное сообщение · #4

Medsft
вот посмотри
https://mega.nz/#!eAwGDCYZ!MATZZ0Wo7sJDgV7WOpRq9oZWhj_YXh0vWZDkzQitPw8
dll не mixed поэтому через LoadLibraryExW не чекается. сделал через костыль, как умею...я не такой профи как большинство здесь... но вроде работает. патч только одно байта

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


Ранг: 576.8 (!)
Статус: Модератор

Создано: 12 сентября 2019 21:10 New!
Цитата · Личное сообщение · #5

Для mixed длл зачастую можно подцепиться через цепочку зависимостей.
Думаю что тот семпл что ты дал можно через сторонний инжект сделать (CreateRemoteThread + DLL = patch) потому что у тебя по кнопке все. А вот если бы оно со старта вызывало протекченный код - было бы гораздо хуже. Впрочем, тоже решаемо.

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


Ранг: 51.7 (постоянный)
Статус: Участник

Создано: 12 сентября 2019 22:58 New!
Цитата · Личное сообщение · #6

r_e
было бы полезно узнать как отлавливать загрузку net моделей (не mixed), чтобы патчить их на старте
тот жуткий костыль что у меня в примере я иногда использую, но он мне самому не нравится. но на большее у меня не хватило фантазии


Ранг: 316.3 (мудрец)
Статус: Участник

Создано: 13 сентября 2019 03:46 New!
Цитата · Личное сообщение · #7

Исходить нужно из того, что это dll:

1. Образы на диске и в памяти различаются из за формата, в частности базовые поправки адресов и выравнивание секций.
2. Загрузчик(ntldr) не может загружать копию модуля. Как минимум для этого есть проверка на уровне ядра(NtAreMapped).

Это значит что в проверке загрузчик не участвует. Проверяющий код самостоятельно прочитает файл, напрямую или через проекцию. Тогда при открытии файла открыть оригинальный, либо если используются проекции - после отображения восстановить изменённые области(при этом так как проекция файловая, то можно менять её атрибуты на запись). Лучше второй способ, так как по описателям может быть запрос инфы про файл, например проверка что модуль и проекция из одного файла, теоретически.

NtMapView -> if MemoryMappedFilenameInformation(handle) == target_file: NtProtectVi(Base) -> fix_data.

Ранг: 323.0 (мудрец)
Статус: Участник
ILSpector Team

Создано: 13 сентября 2019 08:49 New!
Цитата · Личное сообщение · #8

zds пишет:
вот посмотри
ссылка не рабочая

Ранг: 51.7 (постоянный)
Статус: Участник

Создано: 13 сентября 2019 09:05 New!
Цитата · Личное сообщение · #9

Medsft
сорри
https://mega.nz/#!aAgiDCST!MATZZ0Wo7sJDgV7WOpRq9oZWhj_YXh0vWZDkzQitPw8

Ранг: 323.0 (мудрец)
Статус: Участник
ILSpector Team

Создано: 13 сентября 2019 10:12 New!
Цитата · Личное сообщение · #10

Признаю работает. 5 Вам) Щас усложню тест

Добавлено спустя 8 часов 27 минут
Такс усложню задачу.Теперь на форме 2 кнопочки и два разных метода проверки strongName с использованием стандартных апи.
Необходимо чтобы оба выдавали правильное сообщение
Патчить только 1 байтик

{ Атач доступен только для участников форума } - test.zip


Ранг: 316.3 (мудрец)
Статус: Участник

Создано: 13 сентября 2019 22:43 · Поправил: difexacaw New!
Цитата · Личное сообщение · #11

Medsft

Я немного покодил, получается вот что. Файл читается многократно(W7), отображается как Image два раза, затем отображается как не pe, при этом не разделяем, те эксклюзивное чтение. Из за этого попытки что либо сделать с образом приводят к нехватке прав, так как секция создана с недостаточными правами, которые задаются при открытии файла.

Что бы не возиться с секциями(возникают траблы с отображением на запись), проще вернуть описатель копии образа при открытии файла. Но и это не снимает основную проблему.

Каким образом определить что происходит валидация образа ?

Этот комовский рантайм сам проецирует файлы, при этом они не исполняемы(в com образы нет передач управления, те там NX).

Code:
  1. Entry
  2. \Device\HarddiskVolume1\Windows\System32\advapi32.dll
  3. \Device\HarddiskVolume1\Windows\System32\msvcrt.dll
  4. \Device\HarddiskVolume1\Windows\System32\sechost.dll
  5. \Device\HarddiskVolume1\Windows\System32\rpcrt4.dll
  6. \Device\HarddiskVolume1\Windows\Microsoft.NET\Framework\v4.0.30319\mscoreei.dll
  7. \Device\HarddiskVolume1\Windows\System32\shlwapi.dll
  8. \Device\HarddiskVolume1\Windows\System32\gdi32.dll
  9. \Device\HarddiskVolume1\Windows\System32\user32.dll
  10. \Device\HarddiskVolume1\Windows\System32\lpk.dll
  11. \Device\HarddiskVolume1\Windows\System32\usp10.dll
  12. \Device\HarddiskVolume1\Windows\System32\imm32.dll
  13. \Device\HarddiskVolume1\Windows\System32\msctf.dll
  14. \Device\Mup\vmware-host\Shared Folders\cit\medsft\p\5\20\WindowsFormsApplication2.exe
  15. \Device\Mup\vmware-host\Shared Folders\cit\medsft\p\5\20\WindowsFormsApplication2.exe
  16. \Device\HarddiskVolume1\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
  17. \Device\HarddiskVolume1\Windows\System32\msvcr100_clr0400.dll
  18. \Device\HarddiskVolume1\Windows\Globalization\Sorting\SortDefault.nls
  19. \Device\HarddiskVolume1\Windows\assembly\NativeImages_v4.0.30319_32\mscorlib\246f1a5abb686b9dcdf22d3505b08cea\mscorlib.ni.dll
  20. \Device\HarddiskVolume1\Windows\System32\ole32.dll
  21. \Device\HarddiskVolume1\Windows\System32\cryptbase.dll
  22. \Device\HarddiskVolume1\Windows\System32\uxtheme.dll
  23. \Device\HarddiskVolume1\Windows\Microsoft.NET\Framework\v4.0.30319\nlssorting.dll
  24. \Device\HarddiskVolume1\Windows\Microsoft.NET\Framework\v4.0.30319\sortdefault.nlp
  25. \Device\HarddiskVolume1\Windows\System32\cryptsp.dll
  26. \Device\HarddiskVolume1\Windows\System32\rsaenh.dll
  27. \Device\HarddiskVolume1\Windows\System32\rsaenh.dll
  28. \Device\HarddiskVolume1\Windows\Microsoft.NET\Framework\v4.0.30319\clrjit.dll
  29. \Device\HarddiskVolume1\Windows\assembly\NativeImages_v4.0.30319_32\System\964da027ebca3b263a05cadb8eaa20a3\System.ni.dll
  30. \Device\HarddiskVolume1\Windows\assembly\NativeImages_v4.0.30319_32\System.Drawing\dd57bc19f5807c6dbe8f88d4a23277f6\System.Drawing.ni.dll
  31. \Device\HarddiskVolume1\Windows\assembly\NativeImages_v4.0.30319_32\System.Windows.Forms\17e020ae92d7fab33bcc1c98b25019d0\System.Windows.Forms.ni.dll
  32. \Device\HarddiskVolume1\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.17514_none_ec83dffa859149af\comctl32.dll
  33. \Device\HarddiskVolume1\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2\comctl32.dll
  34. \Device\HarddiskVolume1\Windows\System32\dwmapi.dll
  35. \Device\HarddiskVolume1\Windows\winsxs\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.17825_none_72d273598668a06b\GdiPlus.dll
  36. \Device\HarddiskVolume1\Users\Indy\AppData\Local\GDIPFONTCACHEV1.DAT
  37. \Device\HarddiskVolume1\Windows\Fonts\tahoma.ttf
  38. \Device\HarddiskVolume1\Windows\Fonts\tahoma.ttf
  39. \Device\HarddiskVolume1\Windows\Fonts\msjh.ttf
  40. \Device\HarddiskVolume1\Windows\Fonts\msjh.ttf
  41. \Device\HarddiskVolume1\Windows\Fonts\msyh.ttf
  42. \Device\HarddiskVolume1\Windows\Fonts\msyh.ttf
  43. \Device\HarddiskVolume1\Windows\Fonts\malgun.ttf
  44. \Device\HarddiskVolume1\Windows\Fonts\malgun.ttf
  45. \Device\HarddiskVolume1\Windows\Fonts\micross.ttf
  46. \Device\HarddiskVolume1\Windows\Fonts\micross.ttf
  47. \Device\HarddiskVolume1\Windows\Fonts\segoeui.ttf
  48. \Device\HarddiskVolume1\Windows\Fonts\segoeui.ttf
  49. \Device\HarddiskVolume1\Windows\Fonts\StaticCache.dat
  50. \Device\HarddiskVolume1\Windows\System32\oleaut32.dll
  51. \Device\Mup\vmware-host\Shared Folders\cit\medsft\p\5\20\testLibrary.dll
  52. Image
  53. M: 0x78563412
  54. RW 0x0
  55. \Device\Mup\vmware-host\Shared Folders\cit\medsft\p\5\20\testLibrary.dll
  56. Image
  57. M: 0x78563412
  58. RW 0x0
  59. \Device\HarddiskVolume1\Windows\System32\RpcRtRemote.dll
  60. \Device\Mup\vmware-host\Shared Folders\cit\medsft\p\5\20\WindowsFormsApplication2.exe
  61. \Device\Mup\vmware-host\Shared Folders\cit\medsft\p\5\20\WindowsFormsApplication2.exe
  62. \Device\HarddiskVolume1\Windows\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll
  63. \Device\HarddiskVolume1\Windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4940_none_d08cc06a442b34fc\msvcr80.dll
  64. \Device\Mup\vmware-host\Shared Folders\cit\medsft\p\5\20\testLibrary.dll
  65. File
  66. Readonly


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

Ранг: 323.0 (мудрец)
Статус: Участник
ILSpector Team

Создано: 14 сентября 2019 00:11 New!
Цитата · Личное сообщение · #12

difexacaw пишет:
Каким образом определить
код что я реализовал в этом примере ничем не закрыт и его можно посмотреть любым декомпилем (к примеру dnspy) ради интереса скачайте этот инструмент статик анализа и взгляните на тело метода checkv2. Я просто применил малозадокументизированную апи, код её самой натив вы в нем уче разбираетесь чем я. Как определить.... Да я хз первое что приходит на ум отловить readprocessmemory когда процесс матка читает сам себя. NET изначально был ограничен майкрософтом в прямом доступе к памяти, незачем ему это подразумевалось.
Пишу с телефона поэтому не вижу полной картины своего поста). zds лоадер будет?
difexacaw а вы защиту пишите?))


Ранг: 316.3 (мудрец)
Статус: Участник

Создано: 14 сентября 2019 08:58 New!
Цитата · Личное сообщение · #13

Medsft

Что бы обойти проверку нужно знать конкретный механизм проверки. Иначе может быть проверка уже загруженного модуля, тогда вообще не отличить - идёт компиляция или данные выбираются для вычисления контр суммы. Для вашего семпла первые два вызова NtMapView это загрузка модуля из clr, третий вызов это отображение для проверки из mscorwks. При этом разница - для загрузки отображение Image, для проверки Map, тоесть проверка происходит образа как файла, а не как pe. Достаточно сменить права на запись, что бы отображение произошло не как R, а как RW и восстановить там файловые данные. Либо во втором способе можно открыть исходный файл и вернуть его описатель.


Ранг: 334.1 (мудрец)
Статус: Участник
born to be evil

Создано: 14 сентября 2019 11:17 New!
Цитата · Личное сообщение · #14

Medsft
соглашусь с r_e. и добавлю, что если статик линковка - все тоже, как 2 бита переслать

Ранг: 51.7 (постоянный)
Статус: Участник

Создано: 14 сентября 2019 12:00 New!
Цитата · Личное сообщение · #15

Medsft
вот
https://mega.nz/#!aRxiUayI!yCj8AM6P5C5B_5mofWHMkaRiOvMgVHmNeRDuXcEOvbU
все продолжает работать. поменял только адрес для патча

PS, тут не совсем понятно когда срабатывает лоадер, возможно уже после ваших проверок. для чистоты эксперимента добавьте в следующий тест перед проверкой вызов лоадера
Code:
  1. [DllImport("loader.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Auto)]
  2.         static extern void init();

тогда уже будет точно ясно срабатывают ваши проверки или нет


Ранг: 316.3 (мудрец)
Статус: Участник

Создано: 14 сентября 2019 12:16 New!
Цитата · Личное сообщение · #16

zds

А как это работает ?

Проверка заключается в эксклюзивном открытии файла, отображении его в память на R и вызове криптоапи. У вас в сурке поиск файловых проекций и какие то манипуляции с ними(в не image проекции R данные никаким образом из юзермод изменить невозможно, только переотобразить) или загрузочными апи. Это всё не имеет отношения к самой проекции и как следствие к механизму проверки. Получается что результат проверки файла вообще не используется, хотя эта проверка есть ?

Ранг: 51.7 (постоянный)
Статус: Участник

Создано: 14 сентября 2019 12:38 New!
Цитата · Личное сообщение · #17

difexacaw извиняюсь, но я не понял вопроса
у меня лоадер делает только патч 1 байта, которого попросил сделать Medsft
я уже говорил выше, что код сделан хреново (на сколько хватает моих скудных познаний). т.к. тестовая dll не mixed mode, я не могу отследить ее старт через LoadLibraryExW. Поэтому все сделано через жопу и есть вероятность, что лоадер патчит нужный байт уже после вызова CheckV2 или CheckV1. Поэтому я попросил в следующий тест добавить прямой вызов лоадера перед вызовом CheckV2 или CheckV1, чтобы точно знать, что в момент вызова проверки лоадер уже отработал.

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



Ранг: 316.3 (мудрец)
Статус: Участник

Создано: 14 сентября 2019 12:52 · Поправил: difexacaw New!
Цитата · Личное сообщение · #18

zds



Твой семпл под отлачиком. Как и без твоего загрузчика. Два отображения Image и одно R-map. Если пофиксить в Image, то всё равно происходит детект. В Map пофиксить нельзя без ремап, если туда поставить останов и при выборке подставить оригинальные данные, то тест проходит. Но твой лодер ничего не делает с этим отображением, не смотря на это тест проходит. В чём подвох ?

Добавлено спустя 3 минуты
Medsft

Плохой семпл, не смотря на хорошую проверку с эксклюзивным отображением её школьники прошли, хоть и не ясно как ^
Результат проверки теряется, каким то образом это побочный эффект

Ранг: 323.0 (мудрец)
Статус: Участник
ILSpector Team

Создано: 14 сентября 2019 13:11 New!
Цитата · Личное сообщение · #19

Так опять с телефона поэтому уж извините к коду доступа нет.
1)chevkv1 работает с образом на диске
2)checkv2 работает с развёрнутой image. Многократно нажатие вызывает каждый раз проверку image на целостность.
Как работает net сначала образ с диска мапируется на память и по мере надобности компилирует методы и располагает уже натив код где-то откуда и происходит дальнейший процессинг (это наше исследование с dife). Похоже ты залез в промежуток между. Компа нет поблизости не могу сделать модификацию семпла и даже пока не знаю как без перекрытия jit


Ранг: 316.3 (мудрец)
Статус: Участник

Создано: 14 сентября 2019 13:19 New!
Цитата · Личное сообщение · #20

Medsft

Что такое checkvX, это места проверки ?

Мне интересно как zds это решил, он скипнул проверку зная конкретное место ?

В любом случае результат проверки каким то образом скипнут, не трогая при этом сам механизм.

Ранг: 323.0 (мудрец)
Статус: Участник
ILSpector Team

Создано: 14 сентября 2019 13:21 New!
Цитата · Личное сообщение · #21

Процедура check это уже проверка и её патчем одного байта не пройти. Он как бы задание выполнил меняет 1 байт в процедуре сложения двух чисел 2 и 2 меняя одно из них на 3

Добавлено спустя 2 минуты
Результатом является то что 2+2=5)


Ранг: 316.3 (мудрец)
Статус: Участник

Создано: 14 сентября 2019 13:26 · Поправил: difexacaw New!
Цитата · Личное сообщение · #22

Medsft

Тогда как прошла проверка, StrongNameSignatureVerification() не тронута(??), так как не тронуто отображение. Это фикс места проверки, что это есчо может быть.

Ранг: 51.7 (постоянный)
Статус: Участник

Создано: 14 сентября 2019 13:34 New!
Цитата · Личное сообщение · #23

difexacaw
я хз как это работает. меня вполне устраивает тот факт, что это работает и я этим пользуюсь уже давно. когда не будет работать, буду искать другие варианты
и не надо оскорблять, я уже давно не школьник, мне за 30. и я вроде тут не кого не оскорблял, ни кому ни чего не пытался доказать или принизить.

Medsft
многократно не получается нажать, после закрытия окна результата прога закрывается
как я говорил выше возможно сначала выполняется твой checkv2, в процессе подгружаются какие-то dll через LoadLibraryExW, в результате лоадер наконец-то находит твою dll в памяти и патчит ее (уже после того как checkv2 был выполнен). либо убери закрытие проги после закрытия окна, либо добавь вызов лоадера перед checkv2
кстати заметил, если запустить твою тестовую прогу как есть и нажать на тест2, результат появляется через 4-5сек, если запускать с лоадером, то мгновенно. но я ничего с этим не делал, только патч 1 байта, как ты просил. исходники есть.


Ранг: 316.3 (мудрец)
Статус: Участник

Создано: 14 сентября 2019 13:37 New!
Цитата · Личное сообщение · #24

zds

Если пропатчить Image, то проверка не проходит. Так как сама проверка в Map, мне уже надоело повторять это.

Ранг: 576.8 (!)
Статус: Модератор

Создано: 14 сентября 2019 15:27 New!
Цитата · Личное сообщение · #25

zds
не реагируй на брызги (..."школьник"... блаблабла). Работает и ладно. Пусть разбираются =)

Ранг: 323.0 (мудрец)
Статус: Участник
ILSpector Team

Создано: 14 сентября 2019 18:38 New!
Цитата · Личное сообщение · #26

difexacaw пишет:
Если пропатчить Image, то проверка не проходит
г уверен?

Добавлено спустя 15 минут
Еще
difexacaw - zds же исходники прилагает, там же наверное понятно что патчится то.
zds сделай генератор лоадеров который на вход принимает паф и таблицу :смещение что на что а потом генерится stand alone loader

Ранг: 51.7 (постоянный)
Статус: Участник

Создано: 14 сентября 2019 19:50 New!
Цитата · Личное сообщение · #27

Medsft
не вижу смысла автомитизировать это в текущем виде. как я говорил выше, главная проблема тут это детект нужной dll.
частое выполнение GetDLLsBaseAddresses (перебор всех регионов памяти, см исходники) заметно сильно тормозит выполнение реальных приложений, особенно если это еще все накрыть чем-то.
поэтому я делаю первый тестовый прогон, смотрю в логе при загрузке какой dll в MyLoadLibraryExW происходит обнаружение нужного нам модуля, беру ее и еще +3 и -3 dlls и ставлю их условием при котором будет срабатывать GetDLLsBaseAddresses. в этом случае производительность не падает.

Ранг: 323.0 (мудрец)
Статус: Участник
ILSpector Team

Создано: 14 сентября 2019 21:15 New!
Цитата · Личное сообщение · #28

Что есть нужная dll?

Добавлено спустя 3 минуты
Есть такая классная прога https://www.apimonitor.com/ ловит все в том числе api mscoree. Кстати может кто полечит оч нужная вещь при исследовании net программ

Добавлено спустя 4 минуты
Заранее спасибо
zds прогон мой тест через неё может что станет понятней

Ранг: 51.7 (постоянный)
Статус: Участник

Создано: 14 сентября 2019 22:42 New!
Цитата · Личное сообщение · #29

Medsft пишет:
Что есть нужная dll?

та которую нужно патчить

Ранг: 80.4 (постоянный)
Статус: Участник

Создано: 14 сентября 2019 23:06 New!
Цитата · Личное сообщение · #30

Medsft пишет:
Есть такая классная прога https://www.apimonitor.com/ ловит все в том числе api mscoree. Кстати может кто полечит оч нужная вещь при исследовании net программ


http://www.apimonitor.com/download/fulledition/APIMonitor.exe

SN: 2091178488-C4FF1B543386BCBC

| Сообщение посчитали полезным: mak, CyberGod, Medsft, Isaev, Orlyonok


Ранг: 323.0 (мудрец)
Статус: Участник
ILSpector Team

Создано: 15 сентября 2019 00:33 New!
Цитата · Личное сообщение · #31

Uncleua большое спасибо.
zds длл которую нужно патчить это аргумент читающей апи смотри когда мои апи по проверке стронг нейм в логе появятся
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . >>
 eXeL@B —› Основной форум —› Опять .net (part 2)

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS