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

 eXeL@B —› Основной форум —› Взлом dotNET программ
<< 1 ... 18 . 19 . 20 . 21 . 22 . 23 . 24 . 25 . 26 . 27 . 28 ... 49 . 50 . >>
Посл.ответ Сообщение

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

Создано: 30 августа 2010 22:59 · Поправил: s0l
· Личное сообщение · #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.

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

Другое:
.NET Reflector v7.0.0.198 (C# Source by wangshy)
[url=http://lifeinhex.com/string-decryption-with-de4dot/]String decryption with de4dot[/url

-

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



Ранг: 23.5 (новичок), 5thx
Активность: 0.020
Статус: Участник

Создано: 03 сентября 2013 14:01
· Личное сообщение · #2

Каким протектором накрыто?
--> Link <--



Ранг: 189.9 (ветеран), 334thx
Активность: 0.30
Статус: Участник

Создано: 03 сентября 2013 20:06
· Личное сообщение · #3

tino, обфускатор какой-то, а какая разница? Деду файл скорми.



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

Создано: 04 сентября 2013 11:54
· Личное сообщение · #4

NikolayD пишет:
tino, обфускатор какой-то, а какая разница? Деду файл скорми.


Охренеть реверсеры пошли.....................




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 04 сентября 2013 12:32
· Личное сообщение · #5

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

Я посмотрел - там обфускация имён, строк и control flow. Это умеет делать любой более-менее солидный обфускатор, так что перовое, что я бы сделал - тоже воспользовался бы автоматическими средствами для деобфускации, дедот справляется с именами и control flow, а обфускацию строк можно уже руками обратить, написав утиль для замены методов, получающих строки на сами строки.
Ну и после деобфускации уже можно реверсить логику и решать что и как дальше - кодить кейген или патчить оригинальную сборку.

Зачем тут ещё что-то мудрить?

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.


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

Ранг: 23.5 (новичок), 5thx
Активность: 0.020
Статус: Участник

Создано: 04 сентября 2013 12:37
· Личное сообщение · #6

NikolayD
так и было сделано , просто интересно - самопал или что-то комерческое



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

Создано: 04 сентября 2013 13:15
· Личное сообщение · #7

4kusNick пишет:
Medsft
Не, ну я впринципе согласен с NikolayD


NikolayD пишет:
tino, обфускатор какой-то, а какая разница? Деду файл скорми.


Да я и не писал что за такой подход надо вешать))))
Просто такой принцип не способствует развитию мозга начинающего реверсера....

P.S. Но в этом есть и свои плюсы. Как говаривал один мой знакомый профессор ставя на экзамене, тем кто заслуживал по уровню знаний только колы, четверки.... "Чем больше дураков я выпущу в жизнь, тем ценнее буду я.."

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

Ранг: 189.9 (ветеран), 334thx
Активность: 0.30
Статус: Участник

Создано: 04 сентября 2013 21:00
· Личное сообщение · #8

tino, коммерческий с недавних пор обфускатор.

Medsft, какая у Вас есть работающая альтернатива деду? ))

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

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

Создано: 04 сентября 2013 22:04
· Личное сообщение · #9

NikolayD пишет:
работающая альтернатива деду


возможно ет скоро будет
Improve .NET Deobfuscator
http://forum.exetools.com/showthread.php?t=15145




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

Создано: 04 сентября 2013 22:21 · Поправил: Airenikus
· Личное сообщение · #10

Кстати, кто может там писать, чирканите чтобы добавил http://ru.netobf.com/download



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

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

NikolayD пишет:
какая у Вас есть работающая альтернатива деду? ))

)))))) ну кой че есть )))))) может скоро и вы увидите ))))))



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

Создано: 05 сентября 2013 11:25 · Поправил: Medsft
· Личное сообщение · #12

Airenikus пишет:
Кстати, кто может там писать, чирканите чтобы добавил http://ru.netobf.com/download

- инквартос на ура снимается Megadumper`ом
Если`б друзья программисты не разошлись по разным углам, наверное этот прот был бы "cool".




Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 05 сентября 2013 14:02
· Личное сообщение · #13

кто б чего для agile.net порекоммендовал...

-----
От многой мудрости много скорби, и умножающий знание умножает печаль





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

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

Medsft пишет:
снимается Megadumper


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



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

Создано: 05 сентября 2013 15:09 · Поправил: Medsft
· Личное сообщение · #15

Airenikus пишет:
Ну это только проблемы нативного пакера решает

А дальше,если не хватит а в большинстве случаев хватает, SAE deobfuscator в руки и вперед.... на Краков
Airenikus пишет:
методов, но которые не используются

А на хрена нам методы never used ????




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

Создано: 05 сентября 2013 16:10
· Личное сообщение · #16

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



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

Создано: 06 сентября 2013 11:56
· Личное сообщение · #17

Airenikus пишет:
Ты сам пробывал получить полностью деобфусцированную сборку
Да пробовал и Да сохранил и Да работает....
Разговор по инквартосу закончен. Пахнешь автором парень




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

Создано: 06 сентября 2013 16:38 · Поправил: Airenikus
· Личное сообщение · #18

Medsft пишет:
Пахнешь автором парень


Ого, вот это паранойя

Тащем-то смотрю тут у некоторых звездная болезнь, типа как у индюка

Выдыхай




Ранг: 127.3 (ветеран), 44thx
Активность: 0.090
Статус: Участник

Создано: 06 сентября 2013 18:28
· Личное сообщение · #19

ajax пишет:
кто б чего для agile.net порекоммендовал...

рекомендую закинуть жертву мне в ЛС

-----
zzz





Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 06 сентября 2013 23:00
· Личное сообщение · #20

Кто какие удобные тулзы для редакторования ресурсов в сборках знает?
ildasm -> редакторование файла .resources -> ilasm не предлагать, ilasm не может сассемблировать IL файл обратно, т.к. он почти 4 гига получается в размере

SAE тоже не подоходит, сборка обфусцирована и mono.cecil, который юзает SAE не умеет работать с такими сборками.

Попробовал ResourceManager от CodeCracker, но не вдуплил как он работает.
Очень не хотелось бы кодить тулзу для этого самому (вариант поменять руками не канает, т.к. надо менять в разных файлах разные ресурсы, надо автоматизировать), я наверняка упускаю какой-то общеизвестный велосипед для этой задачи.

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




Ранг: 36.1 (посетитель), 11thx
Активность: 0.020
Статус: Участник

Создано: 07 сентября 2013 00:45 · Поправил: Jonny
· Личное сообщение · #21

4kusNick пишет:
Очень не хотелось бы кодить тулзу для этого самому

Есть библиотека, используемая в de4dot - --> dnlib <--. Там выполнена вся грязная работа по парсингу таблицы метаданных и тп. И он умеет записывать изменения. Есть парочка примеров в исходниках.

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

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

Создано: 10 сентября 2013 19:42
· Личное сообщение · #22

помогите ребята не понимаю чем накрыт
Что я сделал сам
Сделал Дамп
И попробовал его скормить деду но он не помог
Может вы чего подскажите или же сможете чем помочь
--> Link <--



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

Создано: 10 сентября 2013 22:25
· Личное сообщение · #23

Mishar_Hacker пишет:
не понимаю чем накрыт


Confuser v1.9.0.0
де4дот не работает с конфузером, причина
в том что автор конфузера попросил дедота не поддерживать его и он согласился

http://deconfuser.codeplex.com/ можно трайнуть
ну или голова-руки




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 10 сентября 2013 23:07 · Поправил: 4kusNick
· Личное сообщение · #24

Mishar_Hacker пишет:
не понимаю чем накрыт

Атрибут "[module: ConfusedBy("Confuser v1.9.0.0")]" в метадате как бы намекает, хоть бы изучили сборку сперва.
PS: последний писк моды против конфуза - NoFuser, хоть бы на пару страниц назад листнули.

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




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

Создано: 19 сентября 2013 18:40
· Личное сообщение · #25

Читаем и пробуем отладчик из темы "NET debugger для x86"




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 20 сентября 2013 02:49
· Личное сообщение · #26

Jonny пишет:
Есть библиотека, используемая в de4dot - --> dnlib <--. Там выполнена вся грязная работа по парсингу таблицы метаданных и тп. И он умеет записывать изменения. Есть парочка примеров в исходниках.

Эта либа тоже не справилась =( Падает при сохранении сборки (даже если я ничего в ней не менял) где-то в районе записи методов - похоже она всю сборку пересобирает и обламывается из-за обфускации.

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




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

Создано: 20 сентября 2013 14:36 · Поправил: Medsft
· Личное сообщение · #27

4kusNick пишет:
похоже она всю сборку пересобирает
- это точно

4kusNick пишет:
обламывается из-за обфускации
- а обламывается на расчете MaxStack при записи боди метода

З.Ы. Кстати мой мод DILE тоже использует эту библу. Да и я его починил )))))




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 20 сентября 2013 16:37
· Личное сообщение · #28

Medsft пишет:
а обламывается на расчете MaxStack при записи боди метода

Именно. Вы поправили эту проблему в своей версии dnlib.dll?

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




Ранг: 36.1 (посетитель), 11thx
Активность: 0.020
Статус: Участник

Создано: 20 сентября 2013 16:56
· Личное сообщение · #29

4kusNick пишет:
Именно. Вы поправили эту проблему в своей версии dnlib.dll?

Вроде в либе есть возможность заставить записывать старое значение стека.
Например, тут (de4dot.code.AssemblyModule):
Code:
  1.                  public void save(string newFilename, MetaDataFlags mdFlags, IModuleWriterListener writerListener) {
  2.                         if (module.IsILOnly) {
  3.                               var writerOptions = new ModuleWriterOptions(module, writerListener);
  4.                               writerOptions.MetaDataOptions.Flags |= mdFlags;
  5.                               writerOptions.Logger = Logger.Instance;
  6.                               module.Write(newFilename, writerOptions);
  7.                         }

module.Write(newFilename, writerOptions); - module является объектом типа ModuleDefMD из dnlib, а в writerOptions.MetaDataOptions.Flags можно передать значение KeepOldMaxStack = 0x8000.




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 20 сентября 2013 17:20 · Поправил: 4kusNick
· Личное сообщение · #30

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

---

Попробовал, теперь другая ошибка при записи методов:
Instruction operand is null

Пробовал ещё флаг MetaDataFlags.PreserveAll ставить, тоже не помогло - либа все равно перефаршмачивает всю сборку (

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




Ранг: 36.1 (посетитель), 11thx
Активность: 0.020
Статус: Участник

Создано: 20 сентября 2013 19:02 · Поправил: Jonny
· Личное сообщение · #31

4kusNick пишет:
Попробовал, теперь другая ошибка при записи методов:
Instruction operand is null

Чаще всего это связанао с тем, что MDToken является невалидным, в соответсвующей таблице нет записи с таким индексом.
Например, в Dotnet reactor используется следующий прием:
Code:
  1. IL_0000: br.s IL_000a
  2.  
  3.          IL_0002: call <b>XXXXXXX</b>
  4.  
  5.          IL_0007: ldnull
  6.          IL_0008: ldind.ref
  7.          IL_0009: pop
  8.  
  9.          IL_000a: ldc.i4.0
  10.          IL_000b: brtrue.s IL_0007

XXXXXXXX - это рандомное число, которое является токеном. Dnlib ругнется как у тебя , и запишет в операнд токен под номером FFFFFFFF.

В твоем случае нужно найти кусок кода отвечающий за запись MethodBody при сохранении и вместо ассемблирования просто подставлять байты из ориг образа. Возможно там реализован механизм для таких случаев, иначе придется патчить либу. Нечто такое например используется при восстановлении спертых тел методов:
Code:
  1. class DumpedMethodsRestorer : IRowReader<RawMethodRow>, IColumnReader, IMethodDecrypter {


| Сообщение посчитали полезным: 4kusNick
<< 1 ... 18 . 19 . 20 . 21 . 22 . 23 . 24 . 25 . 26 . 27 . 28 ... 49 . 50 . >>
 eXeL@B —› Основной форум —› Взлом dotNET программ
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати