Сейчас на форуме: asfa (+6 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› эмулятор байт-кода MSIL |
Посл.ответ | Сообщение |
|
Создано: 22 июня 2010 15:37 · Личное сообщение · #1 |
|
Создано: 22 июня 2010 16:51 · Личное сообщение · #2 |
|
Создано: 22 июня 2010 17:20 · Личное сообщение · #3 |
|
Создано: 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 как образец работы обфускатора ![]() ![]() |
|
Создано: 29 июня 2010 10:12 · Личное сообщение · #5 |
![]() |
eXeL@B —› Вопросы новичков —› эмулятор байт-кода MSIL |