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

 eXeL@B —› Вопросы новичков —› эмулятор байт-кода MSIL
Посл.ответ Сообщение

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

Создано: 22 июня 2010 15:37
· Личное сообщение · #1

В ходе анализа программы (на платформе NET) возникла необходимость понять, что именно выполняет определенный кусок кода.
Сама программа обработана обфускатором и сложна для анализа.

Нет такой программы эмулятора, в которую скопировал текст подпрограмки (IL) и пошагово пройтись по ней?



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

Создано: 22 июня 2010 16:51
· Личное сообщение · #2

DSA пишет:
Сама программа обработана обфускатором и сложна для анализа.


Нельзя ли ознакомиться с этой программой?

strike_boss пишет:
В онлайне почти целые сутки !


Смотри не сгори...




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 22 июня 2010 17:20
· Личное сообщение · #3

Для рефлектора плагин-отладчик есть, вроде. И непонятно, что топ делает в программировании.



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

Создано: 22 июня 2010 19:39 · Поправил: DSA
· Личное сообщение · #4

Отладчик-плагин для рефлектора есть, но он цепляет к процессу аттачем. А нужный код там в секции иниациализации. Пока цепляещь плагин к процессу - нужный код уже "пролетел".

Есть простой способ определить тип обфускатора?
Характерная особенность:
1) классы и переменные нумеруются буквами английского алфавита
2) строки шифруются по схеме:
L_0009: ldstr "\u1221\u6a23\ ... "
L_000e: ldloc num
L_0012: call string <Module>::a(string, int32)
3) сам модуль a(string, int32): (перемена мест полубайта + хор )
.method privatescope hidebysig static string a(string A_0, int32 A_1) cil managed
{
.maxstack 8
.locals init (
[0] char[] chArray,
[1] int32 num,
[2] int32 num2,
[3] uint8 num3,
[4] uint8 num4)
L_0000: ldarg.0
L_0001: callvirt instance char[] [mscorlib]System.String::ToCharArray()
L_0006: stloc.0
L_0007: ldc.i4 0x72b4fc1e
L_000c: ldarg.1
L_000d: add
L_000e: stloc.1
L_000f: ldc.i4.0
L_0010: dup
L_0011: ldc.i4.1
L_0012: blt.s L_0047
L_0014: dup
L_0015: stloc.2
L_0016: ldloc.0
L_0017: ldloc.2
L_0018: ldloc.0
L_0019: ldloc.2
L_001a: ldelem.i2
L_001b: dup
L_001c: ldc.i4 0xff
L_0021: and
L_0022: ldloc.1
L_0023: dup
L_0024: ldc.i4.1
L_0025: add
L_0026: stloc.1
L_0027: xor
L_0028: conv.u1
L_0029: stloc.3
L_002a: dup
L_002b: ldc.i4.8
L_002c: shr
L_002d: ldloc.1
L_002e: dup
L_002f: ldc.i4.1
L_0030: add
L_0031: stloc.1
L_0032: xor
L_0033: conv.u1
L_0034: stloc.s num4
L_0036: pop
L_0037: ldloc.s num4
L_0039: ldloc.3
L_003a: stloc.s num4
L_003c: stloc.3
L_003d: ldloc.s num4
L_003f: ldc.i4.8
L_0040: shl
L_0041: ldloc.3
L_0042: or
L_0043: conv.u2
L_0044: stelem.i2
L_0045: ldc.i4.1
L_0046: add
L_0047: dup
L_0048: ldloc.0
L_0049: ldlen
L_004a: conv.i4
L_004b: blt.s L_0014
L_004d: pop
L_004e: ldloc.0
L_004f: newobj instance void [mscorlib]System.String::.ctor(char[])
L_0054: call string [mscorlib]System.String::Intern(string)
L_0059: ret
}


В аттаче - DLL как образец работы обфускатора

a771_22.06.2010_CRACKLAB.rU.tgz - WealthLab.International.dll



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

Создано: 29 июня 2010 10:12
· Личное сообщение · #5

Отладчик-плагин для рефлектора есть, но он цепляет к процессу аттачем.

Тогда этим - sourceforge.net/projects/dile/

2) строки шифруются по схеме:

Деобфусцировать строки можно этим - sites.google.com/site/simpledotnet/simple-assembly-explorer


 eXeL@B —› Вопросы новичков —› эмулятор байт-кода MSIL
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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