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

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


Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 12 сентября 2017 12:06
· Личное сообщение · #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/action=vthread&forum=1&topic=16650&page=-1

-

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

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

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

Создано: 05 апреля 2019 22:54 · Поправил: vitalik9
· Личное сообщение · #2

попробовал
AppFuscatorUnpacker
AppFuscatorStringsDecryptor
нечего не изменилось
http://prntscr.com/n832wt

Добавлено спустя 32 минуты
Protection id вроде пишет
[!] [.net scan core] dotNetReactor detected!
но de4dot не снимает защиту
и ошибок не выдает

Добавлено спустя 16 часов 43 минуты
помогите снять защиту пожалуйста
https://yadi.sk/d/befytBl6XxEkmw
или напишите какая защита стоит



Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 06 апреля 2019 16:16
· Личное сообщение · #3

Есть файл, обработан Skater.NET. Пробовал деобфускатором снять защиту, но не получилось, знаний мало. Может кто подскажет план действия и укажет какими прогами пользоваться. Заранее благодарен.



Ранг: 88.2 (постоянный), 58thx
Активность: 0.110.04
Статус: Участник

Создано: 06 апреля 2019 22:08
· Личное сообщение · #4

vitalik9
https://exelab.ru/f/action=vthread&forum=2&topic=24716
avr5219
DnSpy

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


Ранг: 253.5 (наставник), 684thx
Активность: 0.260.25
Статус: Участник
radical

Создано: 06 апреля 2019 22:52
· Личное сообщение · #5

Mishar_Hacker
Не туда ты их отправил (у Виталика вообще бот для автоматизации бизнеса)... Тут в --> поиск специалистов<--

-----
ds


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

Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 14 июня 2019 14:49 · Поправил: Sirota77
· Личное сообщение · #6

Приветствую всех обитателей форума.
Хочу попросить помощи в борьбе с обфускатором Agile.net. Честно говоря не представляю с какой стороны к этой задаче подойти.
Я раньше вытаскивал данные из .net приложения модифицируя код и подключая его библиотеку к своей программе, но теперь применён обфускатор и я обломался
Прошу подсказать в каком направлении действовать.
вот сам файл h_ps://dropmefiles.com/cG9bQ
Спасибо.
зы: de4dot падает с исключением "Only 32-bit dynamic methods decryption is supported"



Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 14 июня 2019 17:06
· Личное сообщение · #7

смотри сырки дедота по поиску "Only 32-bit dynamic methods decryption is supported"




Ранг: 55.9 (постоянный), 29thx
Активность: 0.120.22
Статус: Участник

Создано: 15 июня 2019 00:55
· Личное сообщение · #8

Есть файл распакованный из ConfuserEx (вручную сдампил модуль после Module.cctor()) и обработал de4dot.
Весь код читается, запускается, но на Application.Run(new Form1()) валится в исключение (_message "Не удалось загрузить файл или сборку "System.Graphics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" либо одну из их зависимостей. Не удается найти указанный файл." string). Не пойму что это за System.Graphics такой?
Может это быть какая то фейковая ссылка?
Еще есть ссылка на System.Forms.
Программа по идее какие то сторонние библиотеки не должна использовать.

https://i.imgur.com/04E0PYw.png



Ранг: 88.2 (постоянный), 58thx
Активность: 0.110.04
Статус: Участник

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

Adler
В DnSpy загрузи и проверь где именно отваливается




Ранг: 55.9 (постоянный), 29thx
Активность: 0.120.22
Статус: Участник

Создано: 15 июня 2019 15:46 · Поправил: Adler
· Личное сообщение · #10

<не актуально>



Ранг: 7.1 (гость), 2thx
Активность: 0.070.04
Статус: Участник

Создано: 28 июня 2019 08:38
· Личное сообщение · #11

есть у кого Kurapica dotNET Tracer 1.1 ?




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

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

Nihil enim пишет:
есть у кого Kurapica dotNET Tracer 1.1 ?


--> оно <--?

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




Ранг: 62.5 (постоянный), 34thx
Активность: 0.280.96
Статус: Участник

Создано: 13 июля 2019 12:22
· Личное сообщение · #13

Не знаю, вопрос в тему про IDA или сюда - можно как то заставить IDA показывать в префиксе не смещение относительно сегмента, а реальное смещение в файле? А то при наведении на строку внизу оно показывает оба смещения, но в префиксе почему-то только сегментное и нигде установки как переставить я не нашел. Или какой нибудь другой IL дизассемблер, может, есть, который такое умеет? На крайняк - простой и внятный алгоритм пересчета сегментных смещений в реальные, а то у меня такое ощущение складывается, что для этого собственный дизассемблер писать надо




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 13 июля 2019 12:56 · Поправил: -=AkaBOSS=-
· Личное сообщение · #14

_MBK_
файловые адреса имеют смысл только на уровне формата, при загрузке данных модуля.
а в остальном работа ведётся с виртуальными адресами.

_MBK_ пишет:
простой и внятный алгоритм пересчета сегментных смещений в реальные

для ПЕ-формата пересчёт простой: виртуальныйАдрес - виртуальноеСмещениеСекции + физическоеСмещениеСекции

но чтоб дотнет через иду ковырять - это надо представление о нём иметь. О пуле строк и таблицах полей и методов, так как к ним обращение идёт хитрыми путями. Не забываем, чтоб MSIL не выполняется напрямую, а компилируется при запуске, поэтому в опкодах кодируются не прямые ссылки, а всего лишь индексы в массиве или смещения относительно начала таблицы.



Ранг: 62.5 (постоянный), 34thx
Активность: 0.280.96
Статус: Участник

Создано: 13 июля 2019 13:02
· Личное сообщение · #15

Для PE естественно все просто. А вот для IL смещение высчитывать для каждого метода весьма нетривиально надо и как то не особо хочется для этого самому парсить таблицы полей и методов при таком богатстве инструментария. Неужели это один я хочу странного?




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 13 июля 2019 13:08 · Поправил: -=AkaBOSS=-
· Личное сообщение · #16

_MBK_ пишет:
Неужели это один я хочу странного?

похоже на то.
Есть множество инструментов, гораздо лучше приспособленных для подобных задач, чем IDA

Бывает, конечно, что приходится разбираться в смешанных сборках, где часть методов уже скомпилированы в натив - вот тогда можно подключить иду. А в остальных случаях возьмите хоть тот же днспай - и код до читабельного доведёт, и смещение метода покажет если надо

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

Ранг: 62.5 (постоянный), 34thx
Активность: 0.280.96
Статус: Участник

Создано: 13 июля 2019 13:20
· Личное сообщение · #17

И то верно! Только сейчас обратил внимание, что dnspy при сохранении листинга в префиксе file offset выдает, спасибо! А можно как то настроить, чтобы он сразу весь файл в один листинг декодировал, как IDA?




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

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

Вот за один листинг не скажу. Мало кому в реальности нужен такой объём неструктурированного кода, поэтому всё разбивается на разные файлы.
Меню "Файл-Экспорт в проект" переработает сборку в кучку исходников



Ранг: 62.5 (постоянный), 34thx
Активность: 0.280.96
Статус: Участник

Создано: 13 июля 2019 13:32 · Поправил: _MBK_
· Личное сообщение · #19

Я к тому, что автоматизированно обрабатывать все таки проще один большой файл, чем кучу вложенных папок. Ну да ладно, неудобство на самом деле совсем незначительное



Ранг: 57.0 (постоянный), 10thx
Активность: 0.050.08
Статус: Участник

Создано: 10 сентября 2019 23:13
· Личное сообщение · #20

подскажите почему многие mixed mode dll грузятся по два раза по двум разным адресам?
смотрю приложение через Olly, почти все mixed dll загружены дважды.
поставил бряк и там и там, понял в каком модуле исполняется код. но не понятно нужно ли на всякий случай патчить дубль или нет



Ранг: -1.9 (гость), 3thx
Активность: 0.160.1
Статус: Участник

Создано: 11 сентября 2019 06:30
· Личное сообщение · #21

zds пишет:
патчить
если я не ошибаюсь, патч - физическое изменение файла.... разве можно сделать изменение только в одной виртуальной копии, внесением изменений в файл на диске? или это имеется в виду ВрМем делать - тогда зачем трогать то, чем не пользуются?
П.С. Это мысли вслух.



Ранг: 57.0 (постоянный), 10thx
Активность: 0.050.08
Статус: Участник

Создано: 11 сентября 2019 08:52
· Личное сообщение · #22

PEvgen
да, я имел ввиду изменение памяти уже загруженной dll через лоадер
просто мне не понятно почему dll загружается двумя модулями по двум адресам.



Ранг: 62.5 (постоянный), 34thx
Активность: 0.280.96
Статус: Участник

Создано: 11 сентября 2019 09:11
· Личное сообщение · #23

Так это от лоадера зависит и от того, в какой момент вы ее патчить хотите. И почему нельзя сдампить и сделать нормальный патч, обязательно на лету в памяти?



Ранг: 57.0 (постоянный), 10thx
Активность: 0.050.08
Статус: Участник

Создано: 11 сентября 2019 10:08
· Личное сообщение · #24

_MBK_
в каком смысле зависит от лоадера? я сейчас смотрю без каких-либо лоадеров, просто через Olly
скрин в аттаче
mixed mode dll загружаются по два раза.

приложение ни чем не упаковано, ни чего дампить не надо. просто там куча dll и в каждой второй проверка файлов на подписи и целостность. мне проще сделать лоадер для изменения одного значения в памяти, чем делать патч файла и плюсом еще патчить 5-7 файлов на проверки подписи и целостности.

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

8fcf_11.09.2019_EXELAB.rU.tgz - double_load.png



Ранг: -1.9 (гость), 3thx
Активность: 0.160.1
Статус: Участник

Создано: 11 сентября 2019 12:21
· Личное сообщение · #25

Высокоинформативный скрин....
Мне, в мою бытность студентом, на этапе обучения программированию (когда я был далек не то что от отладки дизасемблированием, а вообще от программирования), в частности ".НЕТ", попадалась на уши информация о том,
что это имено из-за "дуал мода" библиотеки. Обьяснялось это следующим: выполнение контролируемого и обычного кода происходит в разных местах. Сейчас с НЕТ"ом я есчо не сталкивался, потому не скажу насколько это достоверная инцормация. Вечером придут зубры скажут точнее, или не скажут

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

Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 11 сентября 2019 14:40
· Личное сообщение · #26

zds _MBK_ PEvgen- не майтесь хуйней.

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

Ранг: 62.5 (постоянный), 34thx
Активность: 0.280.96
Статус: Участник

Создано: 11 сентября 2019 21:00
· Личное сообщение · #27

В какой момент проверяется целостность? Не совсем понимаю смысл этих танцев в гамаке, неужели поймать момент для всплытия когда уже целостность проверена проще, чем полностью снять проверку целостности? Вдобавок, если целостность проверяет сама сборка в процессе работы, сомнителен смысл вообще всей затеи со всплытием. Вы вообще хотя бы на одной библиотеке ваш лоадер пробовали, он реально работает?



Ранг: 57.0 (постоянный), 10thx
Активность: 0.050.08
Статус: Участник

Создано: 11 сентября 2019 22:23 · Поправил: zds
· Личное сообщение · #28

_MBK_
ладно, проехали... я видимо не правильно выражаюсь (в терминологии не силен)
да, все работает. ставлю хук LoadLibraryExW, дожидаюсь нужной либы, патчу пару байт и все работает. если тоже самое сделать патчем файла, то эта и другие dll (т.к. проверяют все загруженные модули) начинают сыпаться на VerifyStrongNameSignature, WinVerifyTrust и еще чем-то... так что считаю лоадер здесь более уместным

UPD
кстати, сейчас проверил через Olly v2, там модули не двоятся. видимо баг или особенность v1



Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 12 сентября 2019 11:49
· Личное сообщение · #29

zds пишет:
да, все работает. ставлю хук LoadLibraryExW, дожидаюсь нужной либы, патчу пару байт и все работает. если тоже самое сделать патчем файла, то эта и другие dll (т.к. проверяют все загруженные модули) начинают сыпаться на VerifyStrongNameSignature, WinVerifyTrust и еще чем-то... так что считаю лоадер здесь более уместным
погодика-погодика, ты у нас научился обходить проверку цифровой подписи без патчинга апи? Научи меня.



Ранг: 590.4 (!), 408thx
Активность: 0.360.18
Статус: Модератор

Создано: 12 сентября 2019 11:59
· Личное сообщение · #30

Medsft
Там же написано что он работает уже в контексте апп и патчит после подгрузки нужной длл. В чем проблема-то?

-----
старый пень




Ранг: 330.4 (мудрец), 334thx
Активность: 0.160.17
Статус: Участник
ILSpector Team

Создано: 12 сентября 2019 14:24
· Личное сообщение · #31

A в том что LoadLibraryExW вызывается прежде чем StrongNameSignatureVerificationEx.

Добавлено спустя 37 минут
Вот раз уж r_e вступился , накатал тест.
zds пожалуйста сделай мне лоадер чтобы менял один байтик в testlibrary.dll и выдавал правильное сообщение о пройденной проверке.Защиты в sample никакой нет, код открыт, просто проверка подписи.
Если запатчишь более одного байта или менее одного байта - экзамен не сдал, а заодно r_e двойку влепим.

bb3e_12.09.2019_EXELAB.rU.tgz - test.zip

Добавлено спустя 38 минут
там есть картинки какой байтик патчить и patch.txt со смещением и что на что.

Добавлено спустя 39 минут
Или мне двойку поставим)


<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . >>
 eXeL@B —› Основной форум —› Взлом .NET (part 2)
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати