Сейчас на форуме: (+7 невидимых) |
eXeL@B —› Протекторы —› принцип работы защиты CodeVeil 3.x |
Посл.ответ | Сообщение |
|
Создано: 14 января 2010 10:40 · Поправил: Модератор · Личное сообщение · #1 Кто не будь юзал CodeVeil 3 , я бьюсь над распаковкой этого непобедимого монстра ! после упаковки все полезные методы сборки становятся пустыми.... Вазнакли вопросы по поводу функций которые он добавляет при пакетировании class '<PrivateImplementationDetails>{F0D87D88-4EF7-4579-AC24-2CAF0E294600}' '$$method0x6000009-0' '$$method0x600000A-0' .... '$$method0x600000z-0' cldss ____KILL class T .'\n_2' ..... Наивно предполагаю что какой то из них является распаковщиком одно знаю точно так то что всегда в канце дизасемблированого файла находиться все сжате методы вот в таком виде .data cil I_00004C80 = bytearray ( 9D 18 EF C8 B0 49 D5 56 83 0F 03 AA 34 E1 80 BA // .....I.V....4... D4 FC 6B 26 60 73 02 6C 2C 4E 55 1B CC 1B 7D EA // ..k&`s.l,NU...}. CF 58 E3 64 B3 9F 80 9C D5 57 BF 31 64 2E 8A 00 // .X.d.....W.1d... 46 B0 BC 9E 5B 83 36 22 BA EF B1 F3 09 1B D8 E3 // F...[.6"........ 64 F9 9A 1D 66 62 E6 64 9B E0 D1 B3 A2 53 44 95 // d...fb.d.....SD. от модератора: достаточно выложить файл, не нужно столько текста! J Как я понял распаковка идёт буквально перед JIT компиляцией , как перехватить этот момент ?? Проблема в том что дизасемблеры падают в этот момент т.к CodeVeil 3 ставит защиту от де компиляции ! всё это касается деманстрационно бесплатно версии CodeVeil буду благодарен любой полезной информации ! Пример упаковки прикреплён в файле: 4527_13.01.2010_CRACKLAB.rU.tgz - CV_3.2.unpackme |
|
Создано: 14 января 2010 12:51 · Поправил: NIKOLA · Личное сообщение · #2 В рефлекторе выбирай декомпиляцию в IL, тогда рефлектор падать не будет. Фактически, ни какой распаковки нет. alexeyshevchenko пишет: Вазнакли вопросы по поводу функций которые он добавляет при пакетировании class '<PrivateImplementationDetails>{F0D87D88-4EF7-4579-AC24-2CAF0E294600}' один класс занимается восстановлением данных (непосредственно перед компиляцией), другой расшифровывает все строки. |
|
Создано: 15 января 2010 10:12 · Личное сообщение · #3 NIKOLA в клссе '<PrivateImplementationDetails>{F0D87D88-4EF7-4579-AC24-2CAF0E294600}' метод $$method0x6000008-0 не имеет кода понять логику этого этого класса сложно врятли он будит заиматься восстановлением или расшифровкой поскольку непонятно кто его будит восстанавливать класс T вообще имеет только один метод (статический конструктор .cctor()) который инициализирует статические поля и ничего больше ..... cldss ____KILL -абсолютно пустой ! |
|
Создано: 15 января 2010 11:19 · Личное сообщение · #4 alexeyshevchenko используйте ildasm от MS, узнаете много интересного, например: (или как сказал NIKOLA - декомпиляцию в IL в Рефлекторе (View -> Options -> Disassembler -> Language -> IL .method /*06000002*/ private hidebysig static pinvokeimpl("kernel32.dll" as "GetModuleHandle" winapi) native int '$$method0x6000008-0'(string '') cil managed preservesig noinlining // SIG: 00 01 18 0E { } |
|
Создано: 15 января 2010 12:29 · Поправил: alexeyshevchenko · Личное сообщение · #5 собственно говоря я и работаю с ildasm, с методом method0x6000008 ошибочка вышла он не пустой, method0x600000B пустой ... Работа всего класса '<PrivateImplementationDetails>... сводится к вызову method0x600000D .field static privatescope uint32 '$$method0x600000E-0$PST04000001' at I_000022D0 .field static privatescope uint32 '$$method0x600000F-0$PST04000002' at I_0000265C .method private hidebysig static bool method0x600000D (int32 A,int32 B) cil managed noinlining { .maxstack 8 IL_0000: ldarg B IL_0004: ldarg A IL_0008: ldsflda uint32 '<PrivateImplementationDetails>...::'$$method0x600000E-0$PST04000001' IL_000d: ldsflda uint32 '<PrivateImplementationDetails>...::'$$method0x600000F-0$PST04000002' а тут вызывается функция по адрессу IL_0012: calli unmanaged cdecl bool(int32,int32,native int) IL_0017: ret } Как узнать что эта за функция и что она делает? |
|
Создано: 15 января 2010 13:00 · Личное сообщение · #6 alexeyshevchenko пишет: IL_0012: calli unmanaged cdecl bool(int32,int32,native int) IL_0017: ret } Как узнать что эта за функция и что она делает? Эта функция вызывает Х86 код, о котором я и zeppe1in тебя предупреждали на http://exelab.ru/f/action=vthread&forum=1&topic=15602 |
|
Создано: 15 января 2010 13:30 · Поправил: alexeyshevchenko · Личное сообщение · #7 |
|
Создано: 15 января 2010 15:48 · Личное сообщение · #8 Вот как аргументы передаются в .NET: Code:
а потом смотри эту строчку Code:
Значит RVA x86 кода=0x0000265C |
|
Создано: 10 февраля 2010 05:28 · Поправил: alexeyshevchenko · Личное сообщение · #9 как устроена защита CodeVeil 3.2 может у кого всё таки есть ссылачка почитать? со многим разобрался в часности выяснил что метод T.U(int32) расшифровывает константные строки немогу понять что хранит T.FieldName byte[] - массив байт есть подозрения что это бинарник расшифрованы методов но не уверен . также неразобрался что делает класс <PrivateImplementationDetails>{F0D87D88-4EF7-4579-AC24-2CAF0E294600} |
|
Создано: 10 февраля 2010 21:15 · Поправил: Kiev78 · Личное сообщение · #10 |
|
Создано: 11 февраля 2010 07:34 · Поправил: alexeyshevchenko · Личное сообщение · #11 |
|
Создано: 11 февраля 2010 14:37 · Личное сообщение · #12 |
|
Создано: 11 февраля 2010 20:58 · Личное сообщение · #13 |
eXeL@B —› Протекторы —› принцип работы защиты CodeVeil 3.x |