Re[5]: MSIL -> ?
От: IDecember Россия  
Дата: 15.11.05 06:31
Оценка: 2 (1) -2 :)
Здравствуйте, ie, Вы писали:

ie>Хммм... Ну допустим я НЕ знаю что есть такая сущность как рефлектор, читаю твой пост про ilasm и никакой аналогии м/у скомпилированной сборкой и читабельным кодом я тут не улавливаю.


Надо знать.
Re[10]: MSIL -> ?
От: TK Лес кывт.рф
Дата: 16.11.05 05:25
Оценка: 2 (2)
Hello, "Anton Batenev"

> TK>Строгое имя у сборки это не понацея. Есть масса ситуаций когда целостность сборки со строгим именем не контролируется.

>
> Я вот так и не понял каким образом защищаются подписаные сборки. Ведь, если я ее могу разобрать, изменить и собрать, то и подпись я просто могу удалить и вообще все следы подписи убрать. Или нет?

Добавление к сборке StrongName это не защита, а идентификация. Возможность контроля изменений в такой сборке это всего лишь бесплатное дополнение.
Posted via RSDN NNTP Server 1.9
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[10]: MSIL -> ?
От: TK Лес кывт.рф
Дата: 15.11.05 21:06
Оценка: 12 (1)
Hello, "kig"

> TK>Строгое имя у сборки это не понацея. Есть масса ситуаций когда целостность сборки со строгим именем не контролируется.

>
> Можешь описать ситуацию в контексте защиты?

В контексте защиты это значит то, что строгое имя взломщику особенно не помешает... Например, для сборок в GAC контроль целостности не производится. Следовательно, сборку помещенную в GAC можно менять как угодно. Плюс, можно просто для опреденного PublicKey отключить подобные проверки.
Posted via RSDN NNTP Server 2.0 beta
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re: MSIL -> ?
От: ie Россия http://ziez.blogspot.com/
Дата: 15.11.05 05:52
Оценка: 2 (1)
Здравствуйте, Anton Batenev, Вы писали:

AB>Есть код MSIL, требуется его конвертировать в более читабельный, чтобы подправить и перекомпилить (С#). Чем это можно сделать?


1. не каждый MSIL можно конвертнуть в C#.
2. попробуйте Reflector, к нему помнится были плагины, которые по скомпилированному MSIL выкидывали пачку файлов для дальнейшей обработки.
Превратим окружающую нас среду в воскресенье.
MSIL -> ?
От: Anton Batenev Россия https://github.com/abbat
Дата: 15.11.05 05:42
Оценка: :)
Hello, All!

Есть код MSIL, требуется его конвертировать в более читабельный, чтобы подправить и перекомпилить (С#). Чем это можно сделать?
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re: MSIL -> ?
От: IDecember Россия  
Дата: 15.11.05 05:51
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Hello, All!


AB>Есть код MSIL, требуется его конвертировать в более читабельный, чтобы подправить и перекомпилить (С#). Чем это можно сделать?


ilasm'ом
Re[2]: MSIL -> ?
От: ie Россия http://ziez.blogspot.com/
Дата: 15.11.05 05:53
Оценка:
Здравствуйте, IDecember, Вы писали:

ID>Здравствуйте, Anton Batenev, Вы писали:


AB>>Hello, All!


AB>>Есть код MSIL, требуется его конвертировать в более читабельный, чтобы подправить и перекомпилить (С#). Чем это можно сделать?


ID>ilasm'ом


А я думал задача ilasm'а компилировать MSIL
Превратим окружающую нас среду в воскресенье.
Re[3]: MSIL -> ?
От: IDecember Россия  
Дата: 15.11.05 06:11
Оценка:
Здравствуйте, ie, Вы писали:

ie>А я думал задача ilasm'а компилировать MSIL


Ты думай лучше — есть мсил, компилишь его в сборку, и после рефлектор и все остальное.
Re[4]: MSIL -> ?
От: ie Россия http://ziez.blogspot.com/
Дата: 15.11.05 06:27
Оценка:
Здравствуйте, IDecember, Вы писали:

ie>>А я думал задача ilasm'а компилировать MSIL


ID>Ты думай лучше — есть мсил, компилишь его в сборку, и после рефлектор и все остальное.


Хммм... Ну допустим я НЕ знаю что есть такая сущность как рефлектор, читаю твой пост про ilasm и никакой аналогии м/у скомпилированной сборкой и читабельным кодом я тут не улавливаю.
Превратим окружающую нас среду в воскресенье.
Re[2]: MSIL -> ?
От: Anton Batenev Россия https://github.com/abbat
Дата: 15.11.05 08:06
Оценка:
Здравствуйте, ie, Вы писали:

AB>>Есть код MSIL, требуется его конвертировать в более читабельный, чтобы подправить и перекомпилить (С#). Чем это можно сделать?

ie>1. не каждый MSIL можно конвертнуть в C#.

Это я уже понял

ie>2. попробуйте Reflector, к нему помнится были плагины, которые по скомпилированному MSIL выкидывали пачку файлов для дальнейшей обработки.


Да, только, похоже, что не судьба нынче. Разбираться в классах, методах и полях с именами a,b,c,...aa,ab,ac,...zz у меня как-то всякое желание пропало...
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[3]: MSIL -> ?
От: GlebZ Россия  
Дата: 15.11.05 09:23
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Да, только, похоже, что не судьба нынче. Разбираться в классах, методах и полях с именами a,b,c,...aa,ab,ac,...zz у меня как-то всякое желание пропало...

Название методов, имен классов, свойств и полей и т.д. сохраняется. Теряются имена локальных переменных.

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: MSIL -> ?
От: ie Россия http://ziez.blogspot.com/
Дата: 15.11.05 09:36
Оценка:
Здравствуйте, GlebZ, Вы писали:

AB>>Да, только, похоже, что не судьба нынче. Разбираться в классах, методах и полях с именами a,b,c,...aa,ab,ac,...zz у меня как-то всякое желание пропало...

GZ>Название методов, имен классов, свойств и полей и т.д. сохраняется. Теряются имена локальных переменных.

Видимо, речь идет о сборке, к которой была применена обфускация.
Превратим окружающую нас среду в воскресенье.
Re[5]: MSIL -> ?
От: Anton Batenev Россия https://github.com/abbat
Дата: 15.11.05 11:02
Оценка:
Здравствуйте, ie, Вы писали:

AB>>>Да, только, похоже, что не судьба нынче. Разбираться в классах, методах и полях с именами a,b,c,...aa,ab,ac,...zz у меня как-то всякое желание пропало...

GZ>>Название методов, имен классов, свойств и полей и т.д. сохраняется. Теряются имена локальных переменных.
ie>Видимо, речь идет о сборке, к которой была применена обфускация.

Похоже на то. Преследовал 2 задачи — "сломать", выяснить на сколько это сложно. До этого имел только общее представление о том, что код никак не защищен и прочее. Проверил. Оказалось все не так уж и плохо. Не смотря на то, что вроде как весь алгоритм на руках, обратно скомпилить его без большого и толстого напильника не удавалось. Сделал для себя промежуточные выводы. Отсюда вопрос. На сколько реально разобрать и, что немаловажно, потом собрать, сборку, к которой была применена обфускация?
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[6]: MSIL -> ?
От: TK Лес кывт.рф
Дата: 15.11.05 11:21
Оценка:
Hello, "Anton Batenev"
>
> На сколько реально разобрать и, что немаловажно, потом собрать, сборку, к
> которой была применена обфускация?

Разбирать/собирать совершенно не надо. Для слома вполне может быть
достаточно исправить сам IL (бинарно, если есть место) или аналогичным
образом выборочно заменить тело одного/двух методов.
Декомпиляция/исправление IL/компиляция — направление не самое простое.
Posted via RSDN NNTP Server 2.0 beta
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[6]: MSIL -> ?
От: kig Россия  
Дата: 15.11.05 20:32
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

[]

AB>Похоже на то. Преследовал 2 задачи — "сломать", выяснить на сколько это сложно. До этого имел только общее представление о том, что код никак не защищен и прочее. Проверил. Оказалось все не так уж и плохо. Не смотря на то, что вроде как весь алгоритм на руках, обратно скомпилить его без большого и толстого напильника не удавалось.


А в чем проблема?

Сделал для себя промежуточные выводы. Отсюда вопрос. На сколько реально разобрать и, что немаловажно, потом собрать, сборку, к которой была применена обфускация?

ActiveReport. Сборка ActiveReports.Chart.dll. Код обфусцирован и после ildasm выглядит примерно так:



...

// Image base: 0x06b80000
//
// ============== CLASS STRUCTURE DECLARATION ==================
//
.namespace '-eh'
{
  .class private auto ansi sealed beforefieldinit '-f3ef'
         extends [mscorlib]System.Object
  {
  } // end of class '-f3ef'

  .class private auto ansi beforefieldinit '-dab2'
         extends [mscorlib]System.Exception
  {
  } // end of class '-dab2'

  .class private auto ansi beforefieldinit '-311c'
         extends [mscorlib]System.Object
  {
  } // end of class '-311c'

  .class private auto ansi beforefieldinit '-1ea1'
         extends [mscorlib]System.Object
  {
  } // end of class '-1ea1'

  .class private auto ansi beforefieldinit '-20d0'
         extends [mscorlib]System.Object
  {
  } // end of class '-20d0'

...



Без всяких проблем собирается обратно без всяких напильников.


Встречный вопрос. Алгоритм защиты симметричный или асимметричный?
Re[7]: MSIL -> ?
От: kig Россия  
Дата: 15.11.05 20:38
Оценка:
Здравствуйте, TK, Вы писали:

TK>Hello, "Anton Batenev"

>>
>> На сколько реально разобрать и, что немаловажно, потом собрать, сборку, к
>> которой была применена обфускация?

TK>Разбирать/собирать совершенно не надо. Для слома вполне может быть

TK>достаточно исправить сам IL (бинарно, если есть место) или аналогичным
TK>образом выборочно заменить тело одного/двух методов.

Мне кажется, что фокус не пройдет, если сборка, где сосредоточена защита подписана, а от нее зависят остальные (или часть) сборок "ломаемого" продукта.
Re[8]: MSIL -> ?
От: TK Лес кывт.рф
Дата: 15.11.05 20:43
Оценка:
Hello, "kig"

> Мне кажется, что фокус не пройдет, если сборка, где сосредоточена защита подписана, а от нее зависят остальные (или часть) сборок "ломаемого" продукта.


Строгое имя у сборки это не понацея. Есть масса ситуаций когда целостность сборки со строгим именем не контролируется.
Posted via RSDN NNTP Server 2.0 beta
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[9]: MSIL -> ?
От: kig Россия  
Дата: 15.11.05 20:53
Оценка:
Здравствуйте, TK, Вы писали:

TK>Hello, "kig"


>> Мне кажется, что фокус не пройдет, если сборка, где сосредоточена защита подписана, а от нее зависят остальные (или часть) сборок "ломаемого" продукта.


TK>Строгое имя у сборки это не понацея. Есть масса ситуаций когда целостность сборки со строгим именем не контролируется.


Можешь описать ситуацию в контексте защиты?
Re[11]: MSIL -> ?
От: Anton Batenev Россия https://github.com/abbat
Дата: 16.11.05 02:30
Оценка:
Здравствуйте, TK, Вы писали:

TK>Плюс, можно просто для опреденного PublicKey отключить подобные проверки.


А можно по подробнее?
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[9]: MSIL -> ?
От: Anton Batenev Россия https://github.com/abbat
Дата: 16.11.05 02:45
Оценка:
Здравствуйте, TK, Вы писали:

TK>Строгое имя у сборки это не понацея. Есть масса ситуаций когда целостность сборки со строгим именем не контролируется.


Я вот так и не понял каким образом защищаются подписаные сборки. Ведь, если я ее могу разобрать, изменить и собрать, то и подпись я просто могу удалить и вообще все следы подписи убрать. Или нет?
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[7]: MSIL -> ?
От: Anton Batenev Россия https://github.com/abbat
Дата: 16.11.05 02:56
Оценка:
Здравствуйте, kig, Вы писали:

AB>>Похоже на то. Преследовал 2 задачи — "сломать", выяснить на сколько это сложно. До этого имел только общее представление о том, что код никак не защищен и прочее. Проверил. Оказалось все не так уж и плохо. Не смотря на то, что вроде как весь алгоритм на руках, обратно скомпилить его без большого и толстого напильника не удавалось.

kig>А в чем проблема?

Кабы я знал. Reflector откатал исходник на шарпе с конструкциями в виде:

// подобная конструкция не компилировалась
internal enum a
{
    int a;,
    b = 0,
    c = 1
}


AB>>Сделал для себя промежуточные выводы. Отсюда вопрос. На сколько реально разобрать и, что немаловажно, потом собрать, сборку, к которой была применена обфускация?

kig>ActiveReport. Сборка ActiveReports.Chart.dll. Код обфусцирован и после ildasm выглядит примерно так:
kig>Без всяких проблем собирается обратно без всяких напильников.

Из / в MSIL я собираю без ошибок и подправленый мной код, но остается тогда проблема с тем, что сборка подписана и, соответственно, перестает работать. Как заставить ее после пересборки работать — не знаю ибо только вчера задался подобными вопросами. Если кто подскажет?

kig>Встречный вопрос. Алгоритм защиты симметричный или асимметричный?


А когда сборку подписывают — это какой алгоритм защиты (я просто не в курсе)?
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[7]: MSIL -> ?
От: IDecember Россия  
Дата: 16.11.05 03:54
Оценка:
Здравствуйте, kig, Вы писали:

kig>Сделал для себя промежуточные выводы. Отсюда вопрос. На сколько реально разобрать и, что немаловажно, потом собрать, сборку, к которой была применена обфускация?


Это зависит от того, каким именно обфускатором прошлись по сборке. ANTS Profiler здорово обфусцирован. Хоть я и разобрался в коде, но собрать разобранную сборку нереально. Вместо названий методов — нечитабельные символы (квадратики).
Re[12]: MSIL -> ?
От: TK Лес кывт.рф
Дата: 16.11.05 05:26
Оценка:
Hello, "Anton Batenev"
>
> TK>Плюс, можно просто для опреденного PublicKey отключить подобные проверки.
>
> А можно по подробнее?

Есть утилита в SDK — sn.exe. Один из ее ключиков позволяет это сделать
Posted via RSDN NNTP Server 1.9
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[8]: MSIL -> ?
От: kig Россия  
Дата: 16.11.05 16:34
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

[]

AB>Кабы я знал. Reflector откатал исходник на шарпе с конструкциями в виде:


[]

Шарп из рефлектора можно использовать только для простых случаев. Или для изучения внутренностей. Пересборку надо делать только через MSIL.


[]

AB>Из / в MSIL я собираю без ошибок и подправленый мной код, но остается тогда проблема с тем, что сборка подписана и, соответственно, перестает работать. Как заставить ее после пересборки работать — не знаю ибо только вчера задался подобными вопросами. Если кто подскажет?


Скорее не пересобранная сборка, а другие сборки, которые зависят от пересобранной, работать не хотят? Выдают типа: при попытке загрузки искали с PublicKeyToken=бла-бла, а найдена с PublicKeyToken=null?

Если так, то или использовать способ
Автор: TK
Дата: 16.11.05
, который озвучил TK, или по цепочке разружать сборки и вычищать в них PublicKeyToken:


.assembly extern xxx
{
//  .publickeytoken = (50 E4 C9 A1 8B 94 8D 5B )                         // P......[
  .ver 6:0:0:6138
}


hint: NDepend, NAnt — таски ilasm и ildasm

kig>>Встречный вопрос. Алгоритм защиты симметричный или асимметричный?


Я имел в виду не подпись сборки (она реализуется по RSA-алгоритму), а защита в "ломаемой" сборке.

ЗЫ: Если не секрет, что за продукт?
Re[9]: MSIL -> ?
От: Anton Batenev Россия https://github.com/abbat
Дата: 16.11.05 17:26
Оценка:
Здравствуйте, kig, Вы писали:

AB>>Кабы я знал. Reflector откатал исходник на шарпе с конструкциями в виде:

kig>Шарп из рефлектора можно использовать только для простых случаев. Или для изучения внутренностей. Пересборку надо делать только через MSIL.

OK. Принято к сведению.

AB>>Из / в MSIL я собираю без ошибок и подправленый мной код, но остается тогда проблема с тем, что сборка подписана и, соответственно, перестает работать. Как заставить ее после пересборки работать — не знаю ибо только вчера задался подобными вопросами. Если кто подскажет?

kig>Скорее не пересобранная сборка, а другие сборки, которые зависят от пересобранной, работать не хотят? Выдают типа: при попытке загрузки искали с PublicKeyToken=бла-бла, а найдена с PublicKeyToken=null?

В том-то и дело, что она там одна и от нее никто не зависит. (Если, конечно, я правильно понял, что файл DLL тождественен сборке)

kig>>>Встречный вопрос. Алгоритм защиты симметричный или асимметричный?

kig>Я имел в виду не подпись сборки (она реализуется по RSA-алгоритму), а защита в "ломаемой" сборке.

Да простое условие что-то типа:

Если (Ключ_не_валиден)
Форма_с_напоминанием_о_необходимости_покупки.Показать();

kig>ЗЫ: Если не секрет, что за продукт?


Не секрет, iGrid.NET — грид.

Вообще я начал заниматься его ломкой только из за того, что хотелось найти нормальный грид для отображения данных из БД (ну и еще посмотреть на сколько сложно будет ломать мои творения). Порыскал в и-нете, посмотрел то, что платно и бесплатно. То, что бесплатно (SourceGrid, например) — так это проще и быстрее будет вернуться на С++ билдер и использовать бесплатный EhGrid.

То, что платно, обратил внимание на DevExpress, даже ключики нашел, чтобы разрабатывать и не бояться, что eval-лицензия кончилась.

Меня жестого обломили — XtraGrid для VS2003 не цепляется к VS2005 b2, а XtraGrid для VS2005 почему-то не ставится на 2005 b2. Более того, установки / сносы привели к тому, что теперь они вообще отказываются ставиться на моей машине с сообщением о том, что Администратор (т.е. я) запретил установку (ну это уже ни в какие ворота не лезло).

iGrid — простенько и со вкусом вроде, судя по демкам. Вот его я и начал "ломать". Не доломал — бросил.

Вроде как начал разбираться со стандартным DbGridView. Вроде то и его достаточно, но чуть-чуть чего-то не хватает...

Так что, ломание — это уже вопрос теоретический (на будущее). Вопрос грида открытый, но, посмотрев архив RSDN, я так понял, что эта тема наболевшая и нормального решения так и не найдено.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[10]: MSIL -> ?
От: kig Россия  
Дата: 17.11.05 19:59
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

[]

Если интерес остался — моя почта в профайле
Re[11]: MSIL -> ?
От: kig Россия  
Дата: 17.11.05 20:14
Оценка:
Здравствуйте, kig, Вы писали:

Дополнение — в сабже напиши RSDN, а то как бы со спамом не выкинул
Re[13]: MSIL -> ?
От: EM Великобритания  
Дата: 03.02.06 17:41
Оценка:
Здравствуйте, TK, Вы писали:

TK>Hello, "Anton Batenev"

>>
>> TK>Плюс, можно просто для опреденного PublicKey отключить подобные проверки.
>>
>> А можно по подробнее?

TK>Есть утилита в SDK — sn.exe. Один из ее ключиков позволяет это сделать



Если нужно слегка поправить чужую софтину то Strong name обычно сносят нафик — есть специальные утилиты
Вот например
Опыт — это такая вещь, которая появляется сразу после того, как была нужна...
Re[9]: MSIL -&gt; ?
От: Аноним  
Дата: 20.09.06 05:17
Оценка:
2Anton Batenev

ну как добил igrid?

очень интересно

и ещё может кто знает grid с цветной раскрасской?


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[10]: MSIL -&gt; ?
От: Anton Batenev Россия https://github.com/abbat
Дата: 23.09.06 02:16
Оценка:
Здравствуйте, gortol, Вы писали:

G>ну как добил igrid?

G>очень интересно

Добил, но не я

G>и ещё может кто знает grid с цветной раскрасской?


А igrid разве не позволяет?

P.S. Вообще, с переходом на 2.0 и появлением в распоряжении DataGridView, стало хватать стандартных компонентов.
Folding@Home on TSC! Russia
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.