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

 eXeL@B —› Основной форум —› Взлом dotNET программ
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 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]




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 18 октября 2011 07:26
· Личное сообщение · #2

Подмогните с затыком. Есть файл весь перекриптованый ну там фарш короче, всё чего добился это отображение нужной процедуры с помощью SAE. И вот что я там вижу:

string HardwareID = this.GetHardwareID();
if (Serial== c.GetMd5String(HardwareID.Substring(1, 10)) + c.GetMd5String(HardwareID.Substring(9, 9) + c.GetMd5String(HardwareID.Substring(30, 2))))

Собственно повторяю это всё в делфях и Serial не принимается, хотя GetHardwareID это тоже по сути GetMd5String и в делфях я реализовал ее, и HardwareID у меня такой же. Можно как то дебагнуть это место? Посмотреть что там не нравится программе?

Пробовал dotTrace Performance 4.0.665.4 - нихера не понял можно там это место или нет посмотреть.
Пробовал dile но не понял можно ли как то в это место попасть или бряк поставить.

-----
Yann Tiersen best and do not fuck





Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 18 октября 2011 09:53
· Личное сообщение · #3

в dile можно это сделать, тока там пипец неудобно и падает он бывает. справа в окошке нужно выбрать метод нужный, откроется окно с листингом ну и ставь бряк в окне на нужном месте.
трейсер не поможет, в данном случае.

-----
[nice coder and reverser]




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

Создано: 18 октября 2011 10:19
· Личное сообщение · #4

может оно щемится в инет после проверки? если покриптованы опкоды, то jitdumper должен помочь... а вообще если поставить студию, то можно копипастить код прямо в свой проект, либо если это библиотека, то подключать прямо к своему проекту через com interop




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 18 октября 2011 11:23
· Личное сообщение · #5

Короче надергал кусками процедуры из SAE, скомпилил консольное приложение через ilasm и путем вывода в STDOUT консоли разобрался где я недосмотрел.

PS Оказывается на CIL коде так прикольно писать, только закидывать и снимать переменные со стека надоедает, интересно, есть высокоуровневый компилятор, который бы давал компилить нечто такое?:

invoke instance string [mscorlib]System.String::Substring, int32 0, int32 20
stloc strHash
****

-----
Yann Tiersen best and do not fuck




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

Создано: 18 октября 2011 15:22
· Личное сообщение · #6

PE_Kill пишет:
который бы давал компилить нечто такое?:

Не встречал, но Алгоритм Легче, как сказал drone, накопипастить в Студию и там Дебажить пошагам !
Пробуйте прогу в Рефлекторе и аналозом выдерните все места Вызова PE_Kill пишет:
GetHardwareID();

Может Тут Есть Некое Шаманство.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 18 октября 2011 19:03
· Личное сообщение · #7

Ладно, по большому счету можно обсуждение закрыть. Но всё же отвечу на вопросы и внесу конкретику.

Tyra пишет:
Не встречал, но Алгоритм Легче, как сказал drone, накопипастить в Студию и там Дебажить пошагам

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

Tyra пишет:
Может Тут Есть Некое Шаманство

Нет никакого шаманства, как оказалось читается из файла 2 строки, первая рандомная, вторая именно то, что нужно, но по неопытности из ил кода не сразу это понял.

И напоследок. Почему то при разборе защит/алгоритмов натив кода вполне нормальным является анализ x86 кода, но при разборе .NET обязательным является высокоуровневый код, при том что он получается из нативно CIL. И самое интересное, что CIL намного проще x86 асма, мне за 2 часа знакомства удалось набросать консольный ключеген, но при этом даже ида не может проанализировать стек дотнета, что еще более странно ибо даже в уме он анализируется на ура.

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

-----
Yann Tiersen best and do not fuck





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

Создано: 18 октября 2011 20:36
· Личное сообщение · #8

PE_Kill
А как вы обеспечили себе эти два часа знакомства? Т.е. есть ли что-то подобное для этого CIL, как интеловские мануалы для х86, где бы была описана каждая инструкция?

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




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

Создано: 18 октября 2011 20:53
· Личное сообщение · #9

ARCHANGEL пишет:
где бы была описана каждая инструкция?

http://www.ecma-international.org/publications/standards/Ecma-335.htm

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


Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 19 октября 2011 08:21
· Личное сообщение · #10

на русском http://msdn.microsoft.com/ru-ru/library/812xyxy2.aspx

-----
Yann Tiersen best and do not fuck


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

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

Создано: 20 октября 2011 01:11
· Личное сообщение · #11

А есть ченть для анализа динамических методов?
Скинул в файл, потом пытался подгрузить в САЕ - ему сносит крышу.
Хотел унаследоваться от ILGenerator - дык там конструкторы internal.
Повезло хоть что код восстановить можно, но много ручной работы.

Еще такой вопрос: нигде по инжекту в манагед документов не пробегало?

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





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

Создано: 20 октября 2011 12:58 · Поправил: zeppe1in
· Личное сообщение · #12

r_e пишет:
нигде по инжекту в манагед документов не пробегало?

http://www.ntcore.com/files/netint_injection.htm
https://ssl.exelab.ru/f/action=vthread&forum=6&topic=16718

-----
zzz


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

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

Создано: 21 октября 2011 21:52
· Личное сообщение · #13

Здравствуйте!

Попытаюсь объяснить проблему, как смогу (т.к. не специалист):
при декомпиляции .net приложения (с помощью ildasm.exe) в IL получается файл с кодом (например program.il). Программа на русском языке и соответсвенно в il файле должны содержаться слова на русском. Но там их нет (вернее они закодированы). String, Strong Name или Xenoode или может как еще.

Например:
В раскодированном варианте далжна быть надпись:
"Программа не зарегистрирована"
вместо этого набор цифр и букв на английском



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




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 21 октября 2011 21:53
· Личное сообщение · #14

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

-----
Yann Tiersen best and do not fuck




Ранг: 137.9 (ветеран), 45thx
Активность: 0.080
Статус: Участник

Создано: 21 октября 2011 22:05
· Личное сообщение · #15

PE_Kill
исходиники dumbassembly http://www.mediafire.com/?mp2k257ipwyq88i посмотрите.

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

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

Создано: 21 октября 2011 23:50
· Личное сообщение · #16

есть ли утилита способная привести строку вида:
IL_005d: ldstr bytearray (20 04 30 04 41 04 47 04 51 04 42 04 3D 04 4B 04 // .0.A.G.Q.B.=.K.
39 04 20 00 38 04 37 04 3D 04 3E 04 41 04 20 00 // 9. .8.7.=.>.A. .
2D 00 20 00 ) // -. .

к:

IL_005d: ldstr "Программа не зарегистрирована"



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

Создано: 22 октября 2011 08:07
· Личное сообщение · #17

chronik17 пишет:
есть ли утилита способная привести строку вида: IL_005d: ldstr bytearray (20 04 30 04 41 04 47 04 51 04 42 04 3D 04 4B 04 // .0.A.G.Q.B.=.K.

Мнэ-э. Любой просмотрщик юникода. Хоть FAR. Это же строка на русском языке, но юникодная.
И вообще-то это "Расчётный износ -".

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

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

Создано: 24 октября 2011 14:28 · Поправил: Medsft
· Личное сообщение · #18

PE_Kill пишет:
А никто не встречал сорсы разбора дотнет файлов в нативе, методы, ресурсы, хоть что любые наработки. Ида же не использует фреймворк при разборе файлов, вот интересуют сорсы нечто подобного

netdasm на codeproject то что нужно сам юзаю только он старый под новый monocecil подточить напильником надо и еще сырки cecil`a тогда вообще полный комплект получится




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 24 октября 2011 14:43
· Личное сообщение · #19

Только я там что то натива не увидел, сплошной дотнет код.

-----
Yann Tiersen best and do not fuck




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

Создано: 29 октября 2011 00:15
· Личное сообщение · #20

Добрый вечер!

Никак не получается деобфусцировать сборку

Пробовал .Net Id - показывает
Smart Assembly 100%

Использовал dumbassembly-0.5.7
DumbAssembly 0.5.7
{smartassembly} unpacking tool by arc_
--------------------------------------

Loading input file...
Assembly is [Powered by SmartAssembly 5.5.0.153].
Module has 5330 methods.
Fixing spliced code...
Resolving indirect imports...
Decrypting and extracting resources...
Re-signing with ...\Northwoods.GoWPF.dll.snk...
Completed unpacking in 4401 ms

Открываю Reflector'ом, имена методов #a

Пробовал с помощью SAE.v1.14.2 деобфусцировать сборку, исходники с огромным количеством ошибок

Подскажите еще какие-нибудь варианты



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

Создано: 29 октября 2011 00:26
· Личное сообщение · #21

mmm пишет:
SAE.v1.14.2 деобфусцировать сборку, исходники с огромным количеством ошибок

SAE никогда и не гарантировала 100% сборку с деоб. исходников! как впрочем .NET Reflector и все похожие.
а где сборка то? тут не телепатлаб.ру



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 29 октября 2011 00:59
· Личное сообщение · #22

Попробуй de4dot



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

Создано: 29 октября 2011 00:59
· Личное сообщение · #23

mmm пишет:
исходники с огромным количеством ошибок

Изучаете в IL или как ?



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

Создано: 29 октября 2011 09:40 · Поправил: mmm
· Личное сообщение · #24

http://www.mediafire.com/?pn719w9474htl2e

изучаю в C#



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

Создано: 29 октября 2011 12:41
· Личное сообщение · #25

mmm
de4dot как посоветовал Vovan666 взял все на ура
для САЕ имена #xxx слишком маленькие - надо в конфиге прописать ему что ето надо переименовать

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


Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

Создано: 29 октября 2011 15:13
· Личное сообщение · #26

sendersu пишет:
de4dot . . . взял все на ура


Добавить в шапку топа (инструменты)

-----
127.0.0.1, sweet 127.0.0.1


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

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

Создано: 29 октября 2011 15:23
· Личное сообщение · #27

OKOB
я так понимаю только топикстартер может поправить?
вот линка на первоисточник
https://github.com/0xd4d/de4dot/downloads

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


Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 29 октября 2011 16:17
· Личное сообщение · #28

По моему еще админ и модеры могут.

-----
Yann Tiersen best and do not fuck




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

Создано: 29 октября 2011 20:17
· Личное сообщение · #29

0xd4d - отличная тулза для предварительно обработки.
А что, SAE такое тоже умеет? Можно в SAE задать regexp для валидных имен и чтоб он невалидные автоматом переименовал в то что надо?

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




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

Создано: 29 октября 2011 20:34
· Личное сообщение · #30

r_e
можно, там дальше больше чем надо )
см. в *.txt файлы рядом с .exe
в каждом файле грамотный комент



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

Создано: 30 октября 2011 02:11
· Личное сообщение · #31

sendersu
Посмотрел .txt файлы. Ничего касательно автоматического переименования или предварительной обработки не нашел. Если ты имеешь ввиду Ctrl+D деобфускацию с Name option, то это совсем не то.
Что хотелось бы (а может это уже есть?): после загрузки сборки или по команде чтоб все имена нс, классов и методов, которые не попадают под маску валидных были автоматом переименованы в валидные.

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

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



<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 49 . 50 . >>
 eXeL@B —› Основной форум —› Взлом dotNET программ
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати