Сейчас на форуме: asfa, bartolomeo (+7 невидимых)

 eXeL@B —› Вопросы новичков —› Нужна помощь, вопрос нубский, но уже час мозг ломаю (нужно подкорректировать функцию)
Посл.ответ Сообщение

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

Создано: 06 апреля 2012 21:21
· Личное сообщение · #1

Всем здрасте.
Была программа, написана на с# с обфускатором Реактором
Реактор убрал, программа разбирается ildasm'ом и прекрасно собирается ilasm'ом
Даже при это работает) Нужно подправить функцию, а конкретно убрать процедуру,
но приходится делать это в файле il
Хотелось бы узнать может есть конвертеры из того же самого Рефлектора в CIL или
поможете подкорректировать функцию на il
у меня плохо со стековой организацией кода
Вот такая она например в Рефлекторе

[STAThread]
private static void Main()
{
LicenseManager.Validate(typeof(Class222));
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(true);
Application.Run(new Form1());
}

и вот такая в иле

.class private abstract auto ansi sealed Class222
extends [mscorlib]System.Object
{
.custom instance void [System]System.ComponentModel.LicenseProviderAttribute::.ctor(class [mscorlib]System.Type) = ( 01 00 06 43 6C 61 73 73 31 00 00 ) // ...Class1..
.method private hidebysig static void Main() cil managed
{
.entrypoint
.custom instance void [mscorlib]System.STAThreadAttribute::.ctor() = ( 01 00 00 00 )
// Размер кода: 38 (0x26)
.maxstack 8
IL_0000: nop
IL_0001: ldtoken Class222
IL_0006: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
IL_0008: call void [System]System.ComponentModel.LicenseManager::Validate(class [mscorlib]System.Type)
IL_0010: call void [System.Windows.Forms]System.Windows.Forms.Application::EnableVisualStyles()
IL_0015: ldc.i4.1
IL_0016: call void [System.Windows.Forms]System.Windows.Forms.Application::SetCompatibleTextRenderingDefault(bool)
IL_001b: newobj instance void Form1::.ctor()
IL_0020: call void [System.Windows.Forms]System.Windows.Forms.Application::Run(class [System.Windows.Forms]System.Windows.Forms.Form)
IL_0025: ret
} // end of method Class222::Main

} // end of class Class222



Мне нужно убрать вызов

LicenseManager.Validate(typeof(Class222));


Что должно быть в il???

Заранее спасибо за помощь)




Ранг: 105.6 (ветеран), 36thx
Активность: 0.10
Статус: Участник

Создано: 06 апреля 2012 22:01
· Личное сообщение · #2

Code:
  1. IL_0001: ldtoken Class222
  2. IL_0006: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
  3. IL_0008: call void [System]System.ComponentModel.LicenseManager::Validate(class [mscorlib]System.Type)

убери

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

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

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

Спасибо, все супер, все заработало!


 eXeL@B —› Вопросы новичков —› Нужна помощь, вопрос нубский, но уже час мозг ломаю (нужно подкорректировать функцию)
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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