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

 eXeL@B —› Основной форум —› Взлом dotNET программ
<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . 35 . 36 . 37 ... 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]



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

Создано: 04 октября 2013 18:41
· Личное сообщение · #2

да просто дллка
инициализируете ее (входной параметр path до exe или dll)
а затем юзаете ее у себя в проекте алгоритм простой
сначала вызываете паблик методы типа:
AddBinDiffLineToNopByMethodRvaAndInstrIndex - (входные rva метода и индекс инструкции)
AddBinDiffLineInvertBranchByMethodRvaAndInstrIndex - (входные rva метода и индекс инструкции)
а затем..... хрясь метод PatchFile() - и усе на выходе пропатченный файл причем библе пох... с защитой было файло или нет потому как bin-патч и пересборка меты нам нах не нужна.



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

Создано: 16 октября 2013 15:45
· Личное сообщение · #3

В предверии выхода новой(моей) версии DILE Debugger
Решил выложить на форум мой PatcherNet (библа для бинарного патча Net-приложений)
А для того чтобы того понять функционал приложил тестовое приложение+сорцы для удаления BadCode Protection которое слабал на основе PatcherNet
В комплекте лежит приложение для теста (StrongName Killer by Codecracker) защищенное чем-то)))).Для того чтобы оценить посмотрите его код до и после обработки.
P.S. Чтобы StrongName Killer by Codecracker заработал после очистки ))) восстановите оригинальное имя файла )))
hччp://www.mediafire.com/?e56dtu6ddmb16xu

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


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

Создано: 16 октября 2013 17:24
· Личное сообщение · #4

Medsft профит есть, так NET Reflector 8.0.2.313 постоянно репорты шлет на оригинале, на поправленном все ровно. что ещё может взять тулза твоя? все бэд инструкции просто выпилит?

-----
[nice coder and reverser]




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

Создано: 16 октября 2013 18:13
· Личное сообщение · #5

Моя тулза точно выпиливает все Bad инструкции из кода и ей кстати по барабану какой протектор был использован. (Алгоритм поиска известный дернут из SAE)
Вообще-то тулза написана просто для того чтобы показать часть функционала PatcherNet`a.


При этом если заметили PatcherNet не пересобирает сборку а прямо ее бинарно патчит. Т.Е. работоспособность кода сохраняется полностью (ну это в том случае если разработчик не применил что нибудь типа подсчета хеша, СRC)/
При этом есть определенные ограничения на его использование.
- в этой версии размер методов не должен меняться.
- реализовано всего два метода:
а) заNOPливание любой инструкции (имя метода AddBinDiffLineToNopByMethodRvaAndInstrIndex) - тут все просто указываете на инструкцию он ее нопит
б) инвертирование бранчей на автомате (типа был JZ станет JNZ) (имя метода AddBinDiffLineInvertBranchByMethodRvaAndInstrIndex) - тут тоже не сложно указываете ему инстукцию типа branch он сам ее инвертит.
З.Ы.Hellspawn - посмотри свое файло любым другим дизассемблером (если увидишь в коде bad инструкции желательно прислать мне)



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

Создано: 16 октября 2013 18:21 · Поправил: Medsft
· Личное сообщение · #6

Hellspawn - проверь тулзу на тестовом приложении вдруг чето напортачил)))) при сборке
А рефлектор вообще... предназначен только для реверсинга своего же кода )))

Еще хотел бы запустить опрос:
Нужно ли Net-реверсеру(повторюсь интересует мнение только здешнего населения) еще один binary-patch метод в котором было бы реализовано увеличение Body метода на n-byte?




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

Создано: 16 октября 2013 19:24
· Личное сообщение · #7

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

-----
[nice coder and reverser]




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

Создано: 16 октября 2013 19:40 · Поправил: Medsft
· Личное сообщение · #8

Hellspawn пишет:
так я на тестовом и гонял
- ну и... посмотри SAE или под ILSpy или под DILE Debug (моя сборка) - ощути разницу так сказать ))) существующими до PatcherNet пересборщиками сделать такое невозможно было. Удален мусорный код при этом приложение осталось работоспособным..
И как совет восприми: Reflector жесткий дизассемблер - работающий только с правильным кодом.. и все существующие протекторы как раз нацелены против него.



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

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

Как вариант, в качестве бинарного патчера, стоило бы вспомнить забытый/заброшенный ByteMe. Который, к тому же, замечательно патчит mixed-сборки...



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

Создано: 16 октября 2013 20:55 · Поправил: Medsft
· Личное сообщение · #10

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




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

Создано: 16 октября 2013 22:55
· Личное сообщение · #11

Medsft пишет:
Еще хотел бы запустить опрос:
Нужно ли Net-реверсеру(повторюсь интересует мнение только здешнего населения) еще один binary-patch метод в котором было бы реализовано увеличение Body метода на n-byte?

Абсолютно.

Было бы отлично скрестить ByteMe и вашу либу, дабы иметь возможность прямо в нем пакетно что-нибудь патчить или так вот чистить сборки от BadCode инструкций + допилить ByteMe, это отличный инструмент, единственный в своём роде, но он глючноват и не очень удобен в использовании (очень не хватает редактора байткода как в SAE, чтобы можно было выбирать опкоды из списка и вбивать параметры).

Проще говоря, ByteMe - отличный кандидат для доработки и доведения до уровня SAE по удобству использования.

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




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

Создано: 17 октября 2013 15:31
· Личное сообщение · #12

Посмотрел ByteMe.
Впечатления
- нет сырков (херня-задача в принципе, теперь есть))))
- использует для декомпиляции Mono Cecil а это плохо потому как не каждый код возьмет (чувак зачемто зашил старую версию Mono в один проект когда можно было бы просто прикладывать dll)
- возможные действия над кодом:
- nop инструкций (мою идею спизжил))) шучу конечно)
- инверт branch инструкции (опять же моя идея )))) и реализация похуже - но это субьктивно)
- edit code (строго в пределах размера изменяемой инструкции+ операнд - я это тоже реализовал в PatcherNet а потом подумал... ну ни одной мысли как использовать данный функционал и убрал из проекта чтоб Вам мозг не парить, но если кто предложит хотябы один возможный вариант использования данной функции то верну)))) )
- wipe method (ну это вообще жесть... у метода затирается заголовок я так понял для того чтобы отключить метод???? хз зачем надо)

Итог: моя библиотека имеет схожый функционал (а в некоторых местах даже и получше .. ну например для распарсивания сборки используется dnlib спецуево заточенная на протекченные приложения) + ее можно использовать в своих частных проектах... ну например написать свой собственный ByteMy




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

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

Medsft пишет:
- нет сырков

Плохо искали. Автор их выкладывал, когда объявил что прекращает разработку.
Вылил сюда: --> Link <--

По поводу функционала - я к тому что есть же уже какой-никакой ГУЙ, почему бы к нему не прикрутить вашу либу, чтобы не делать наоборот?

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




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

Создано: 17 октября 2013 18:55 · Поправил: nick8606
· Личное сообщение · #14

Medsft пишет:
- edit code (строго в пределах размера изменяемой инструкции+ операнд - я это тоже реализовал в PatcherNet а потом подумал... ну ни одной мысли как использовать данный функционал и убрал из проекта чтоб Вам мозг не парить, но если кто предложит хотябы один возможный вариант использования данной функции то верну)))) )


Вот эта штучка так-то нужна. Интересно было бы сделать как в odbg. Патчим инструкцию, ее длина меняется, следующая инструкция, если она была не однобайтовой, заменяется нопами. При этом, естественно, размер метода не меняется. Ну и try-catch-finally не забыть...

---
Ок, завтра покажу. Но вообще и так описать могу: у меня есть метод, возвращающий, например, количество объектов. В той цели, что копал я, mixed-сборка, пересобрать ее mono нельзя(вроде как), про dnlib не знаю. Так вот максимальное количество, которое я смог возвратить-это 8(ldc.i4.8) а хотелось бы 0x7fffffff :D
А это, ясное дело, не один байт

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

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

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

Конфиденциально для nick8606

-выложи пожалуйста здесь любой пример(прям код метода) чтоб я понял что ты имеешь в виду Я вижу у себя в головетолько один работоспособный пример использования данного функционала это замена инструкции на Ret

---

Ок покажи а то я не понял метод возращает uint?



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

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

Ребята всем привет)
Вопрос
Есть ли туторы софты или еще чего
Для снятия ILProtector
С Уважением Mishar



Ранг: 134.1 (ветеран), 246thx
Активность: 0.220.1
Статус: Участник
realist

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

Mishar_Hacker
на тутсях смотри там CodeCracker чето выкладывал




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

Создано: 20 октября 2013 11:48 · Поправил: ajax
· Личное сообщение · #18

--> Telerik JustDecompile 2013.3.1016.0 от MrCode <--

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




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

Создано: 20 октября 2013 12:12
· Личное сообщение · #19

ajax
пасиб
а в чем разница от официала?




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

Создано: 20 октября 2013 18:54 · Поправил: ajax
· Личное сообщение · #20

sendersu
без инсталляхи и msi есть. просто для ознакомления, из исохи

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





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

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

Если кто ещё не видел - отличный форк дедота:
--> Link <--

Из доработок - много обновлений под последние версии протов, подробней в комментах к коммитам читайте.
Бинарники автор не выкладывает, но компилится оно без проблем.

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





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

Создано: 23 октября 2013 23:23 · Поправил: ajax
· Личное сообщение · #22

4kusNick
видели. тяжко таки идет, особых обнов нет
Code:
  1. kao  5b6d8ea       More .NET Reactor fixes (thx kvodinsky)         2013-10-11
  2. kao  62ce0ef       renamer fixes by 0xd4d (http://board.b-at-s.info/index.php?showtopic=8359&amp;page=13) 2013-10-10
  3. kao  39f5a16       Support for weird version of .NET Reactor (thx CreateAndInject)   2013-10-10 
  4. kao  4acd67f       Cleanup     2013-09-30 
  5. kao  a6c9f02       Fix CO Tamper Detection too (thx richyb again)  2013-09-30 
  6. kao  4441124       Fix CO resource decryption (thx richyb)         2013-09-29 
  7. kao  e2ff45a       updated readme       2013-09-20 
  8. kao  db36bd3       workaround for eternal loop in control-flow deobfuscation         2013-09-19 
  9. kao  efe01c9       Fix method decryption in .NET Reactor 4.5/4.6   2013-09-13 
  10. kao  de50f24       Better constant folding for .NET Reactor 4.6 (thx Erjey for unpackme)      2013-09-09 
  11. kao  5a49610       Fix for latest CO proxy calls (thx NOP!)        2013-09-07 
  12. kao  c742c07       Fix control flow deobfuscation in Dotfuscator   2013-09-05 
  13. kao  3537f0e       More precise .NET Reactor version detection     2013-09-05 
  14. kao  d06a552       Fix string deobfuscation in Dotfuscator 4.9+    2013-09-05 
  15. kao  f570c72       updated contact info and how to report bugs     2013-09-04 
  16. kao  86c8314       deobfuscate methods in proper order, fixes problems with some .NET Reactor 4.6 unpackmes        2013-09-04 
  17. kao  f373829       improved support for .NET Reactor 4.6           2013-09-03 
  18. kao  64b97ca       wildcard search in byte array                  2013-09-03 
  19. kao  17e0734       some support for newer .NET Reactor 4.5                2013-08-21 
  20. kao  34bfaac       some support for newer versions of CryptoObfuscator          2013-08-21 
  21. kao  7ee9fc3       better logging for CryptoObfuscator      2013-08-21 
  22. kao  4f79497       Emulate add_ovf and sub_ovf    2013-08-16 
  23. kao  845600d       Correct deob filename for files w/o extension    2013-08-16 
  24. kao  c150756       Print indication this is not official de4dot      2013-08-16 
  25. kao  0c8f160       Disable copying of license texts       2013-08-16 
  26. kao  beb3a83       fix InternalsVisibleTo        2013-08-13 
  27. kao  cb2aa26       updated dnlib subproject for nofuser   2013-08-13 
  28. kao  af7108d       InternalsVisible for Nofuser  2013-08-13 
  29. kao  5aaed12       Updated readme and public key references              2013-08-12 
  30. kao  9ebf77f       updated path for dnlib              2013-08-12


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


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

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

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

--> Собрал бинарь под х86 <--. Может подглючивать. Пришлось кой-чего удалить.

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


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

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

Создано: 24 октября 2013 00:35 · Поправил: sendersu
· Личное сообщение · #24

4kusNick пишет:
отличный форк дедота:

папку dnlib стянуть с kao репозитария не дают, может кто успел?
http://prntscr.com/1z9emp




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

Создано: 24 октября 2013 00:53
· Личное сообщение · #25

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

r_e
А вот это зря =( Я поддерживаю позицию автора на тему невыкладывания бинарников. И так нубов дофига, которые только и умеют, что файл на дедот перетащить.

Но вообще странно, что пришлось что-то удалять, у меня компилится все без проблем (в одном месте только пришлось private на public поправить, в 2013 студии иначе не собирается).

sendersu
Используйте сорцы оригинального dnlib'а:
--> Link <--

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


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

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

Создано: 24 октября 2013 01:41
· Личное сообщение · #26

4kusNick
Собирал в 2013. Там в CUI есть какой-то атрибут с фиксеным PublicKey. Пришлось его удалить. Иначе сброка валилась с ошибкой. И в свойствах всех проектов пришлось удалить подписывание. Не своим же ключем подписывать.
Я против вашей с автором позиции по бинарям. Сам сижу на 2008 с компилятором от 2012 и перелазить никуда не собираюсь. А д4д минимум под 2010. В этот раз просто повезло что не успел виртуалку еще снести с 2013.

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





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

Создано: 24 октября 2013 03:52
· Личное сообщение · #27

Странно, у меня работает без ошибок, правил только видимость у de4dot.cui.Program (на public).
Я подписывал своим свежесгенерированным ключем, благо для себя.

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




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

Создано: 29 октября 2013 12:43
· Личное сообщение · #28

Заморочился...

По быстренькому надо совет))))
Есть задача не изменяя общий размер метода впихнуть в него новые строчки кода
Мозг сломал на части этой задачки.
Уже могу))
-расчитать для части новых Il инструкции их будующий размер а так же что они из себя представляют в байтмассиве
соответстсвенно определить сколько строк старого кода (по их размеру в байтах) надо выпилить чтобы заменить их новой инструкцией
в случае если остается неиспользованный код забить его нопами.
Все это могу сделать в случаях когда OperandType
case OperandType.InlineBrTarget:
case OperandType.ShortInlineBrTarget:
_ins.OpCode = op;
_ins.Operand = Method.Body.Instructions[cboOperand.SelectedIndex];
break;
case OperandType.InlineString:
_ins.OpCode = op;
_ins.Operand = cboOperand.Text;
break;
case OperandType.InlineNone:
_ins.OpCode = op;
_ins.Operand = null;
break;
case OperandType.InlineI:
case OperandType.ShortInlineI:
_ins.OpCode = op;
int i = 0;
if (cboOperand.Text.StartsWith("0x"))
{
int.TryParse(cboOperand.Text.Substring(2), NumberStyles.HexNumber, null, out i);
}
else
{
int.TryParse(cboOperand.Text, out i);
}

_ins.Operand = i;
break;
case OperandType.ShortInlineR:
case OperandType.InlineR:
_ins.OpCode = op;
_ins.Operand = Double.Parse(cboOperand.Text);
break;
case OperandType.InlineI8:
_ins.OpCode = op;
long l = 0;
if (cboOperand.Text.StartsWith("0x"))
{
long.TryParse(cboOperand.Text.Substring(2), NumberStyles.HexNumber, null, out l);
}
else
{
long.TryParse(cboOperand.Text, out l);
}

_ins.Operand = l;
break;
а вот отсюда не могу определить размер будующей иструкции а байтах (да и вообще тяжко с обращением в байтмассив):
case OperandType.InlineField:
_ins.OpCode = op;
_ins.Operand = cboOperand.SelectedItem;
break;
case OperandType.InlineVar:
case OperandType.ShortInlineVar:
_ins.OpCode = op;
_ins.Operand = cboOperand.SelectedItem;
break;
case OperandType.InlineMethod:
_ins.OpCode = op;
if (cboOperand.SelectedItem is MemberRef)
{
_ins.Operand = (MemberRef)cboOperand.SelectedItem;
}
else
{

switch (cboOperand.Text)
{
case METHOD_MESSAGEBOX:
Importer importer = new Importer();
ITypeDefOrRef consoleRef = importer.Import(typeof(System.Windows.Forms.MessageBox));
IMethod writeLine = importer.Import(typeof(System.Console).GetMethod("Show"));
_ins.Operand = writeLine;
break;
}
}
break;
case OperandType.InlineSwitch:
{
string opStr = cboOperand.Text;
if (opStr != null)
{
string[] ops = opStr.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
if (ops != null && ops.Length > 0)
{
Instruction[] opIns = new Instruction[ops.Length];
for (int ii = 0; ii < ops.Length; ii++)
{
int opIndex = -1;
if (int.TryParse(ops[ii], out opIndex))
{
if (opIndex >= 0 && opIndex < Method.Body.Instructions.Count)
{
opIns[ii] = Method.Body.Instructions[opIndex];
}
else
{
opIndex = -1;
}
}
if (opIndex == -1)
{
throw new Exception("Invalid instruction index" + ops[ii]);
}
}
_ins.Operand = null;
_ins.Operand = opIns;
}
}
}
break;
case OperandType.InlineType:
_ins.OpCode = op;
if (cboOperand.SelectedItem == null)
_ins.Operand = ClassEditHelper.ParseTypeReference(cboOperand.Text, Method.Module);
else
_ins.Operand = ClassEditHelper.ParseTypeReference(cboOperand.SelectedItem, Method.Module);
break;

Так вот вопрос по интересующей меня части нужен совет как обратить новую инструцию в байтмассив? Чтобы потом написать Bin-патч.

Используемая библиотека dnlib, Metadatareader(SND).



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

Создано: 02 ноября 2013 18:07 · Поправил: sendersu
· Личное сообщение · #29

Обновился DotNet Resolver .NET Dcompiler
к версии 3.3.0.0
http://i.imgur.com/icV4ffc.png
Note: работает с .NET 4.5


http://dotnetresolver.eu5.org/downloads.html

| Сообщение посчитали полезным: t0ShA, Hellspawn, zuzzz

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

Создано: 03 ноября 2013 15:32
· Личное сообщение · #30

Опять Я
ilprotector сидел разбирал так и не понял как его снять
Может у кого есть туторы или еще что нибудь по нему
Киньте в ЛС или сюда кому не жалко буду очень благодарен



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

Создано: 06 ноября 2013 21:38
· Личное сообщение · #31

Вот моя вам история
Покапал я ilprotector последний версии
Запаковал свой "Привет Мир"
После запаковки как и принято выходных 3 файла
1.Сам exe
2.извание программыБитность.dll
3.извание программыБитность.dll
И я запустил программу и Извлек эту DLL которая использовалась для программы
И что я увидел после нажатия Ошибку!
Получается весь нужный код Храниться в DLL
После анализа который показал что DLL на C++
После пару часов работы я не увидел Результата
Пока что я остоновился на этом месте
Кому надо вот для Теста
Сама прога в атаче
Может есть у кого идеи или что то еще добро пожаловать в ЛС

37aa_06.11.2013_EXELAB.rU.tgz - 1.rar


<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . 35 . 36 . 37 ... 49 . 50 . >>
 eXeL@B —› Основной форум —› Взлом dotNET программ
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати