![]() |
eXeL@B —› Основной форум —› Декомпиляция .NET - _IMAGE_DOS_HEADER |
Посл.ответ | Сообщение |
|
Создано: 03 января 2007 18:55 · Личное сообщение · #1 Есть некий SDK для .NET, почти все сборки прекрасно переподписались и перекомпилировались, работают отлично ![]() в парочке сборок ildasm выдает такую вещь: .field public static valuetype _IMAGE_DOS_HEADER j at 0x00000000 /* WARNING: rogue pointer! */ И ilasm отказывается это компилировать. some.dll.il(612) : error : syntax error at token '0x00000000' in: .field public static valuetype _IMAGE_DOS_HEADER j at 0x00000000 /* WARNING : rogue pointer! */ Что ему можно туда вместо нулей написать? Как ему передать этот указатель на структуру _IMAGE_DOS_HEADER? Ildasm использовал и от 1.1 и от 2.0, результат одинаковый. ![]() |
|
Создано: 04 января 2007 09:37 · Личное сообщение · #2 |
|
Создано: 04 января 2007 12:11 · Личное сообщение · #3 Все headers на месте, это полноценная DLL. И класс этот объявлен: // // ============== CLASS STRUCTURE DECLARATION ================== // .class public sequential ansi sealed _IMAGE_DOS_HEADER extends [mscorlib]System.ValueType { } // end of class _IMAGE_DOS_HEADER И вот тут он зачем-то используется IL_006d: ldsflda valuetype _IMAGE_DOS_HEADER j IL_0072: ldc.i4.1 IL_0073: ldc.i4.0 IL_0074: call int32 modopt([mscorlib]System.Runtime.CompilerServices.CallConvStdcall) a(void*, unsigned int32 modopt([Microsoft.VisualC]Microsoft.VisualC.IsLongModifier), void*) Все сборки этого SDK обработаны dotfuscator-ом, что в принципе особо не помеха ![]() А может быть, там добавлен нативный код и сборка смешанная? ![]() |
|
Создано: 04 января 2007 15:48 · Личное сообщение · #4 |
|
Создано: 04 января 2007 22:10 · Личное сообщение · #5 |
|
Создано: 05 января 2007 00:37 · Личное сообщение · #6 Nimnul пишет: Посмотри ep этих файлов. EP выглядит так: .100114CE: FF2558D10410 jmp _CorDllMain ;mscoree .100114D4: 8B4604 mov eax,[esi][04] .100114D7: 85C0 test eax,eax .100114D9: 7444 je .01001151F ---↓ (1) .100114DB: 8D5008 lea edx,[eax][08] .100114DE: 803A00 cmp b,[edx],000 и дальше идет x86 код. Это смешанная сборка? jfx пишет: а обязательно перекомпилировать? Может можно решить без этого? Почему-то не получается. Все остальные сборки SDK пришлось переподписать и заменить publickeytoken на свой. Совсем без подписи SDK работать не хочет - не грузится общая сборка лицензирования. Переподписанные и перекомпилированные работают ок, но дополнительные кодеки дают вот такой трабл при декомпиляции. Просто заменить в hiew токен не получается - валится в exception. Я так думаю, что разработчики SDK лицензировали кодек у авторов, и замешали в одной сборке оригинальный код x86 и MSIL. Подружить его с остальными сборками без декомпиляции не получается ![]() ![]() |
|
Создано: 05 января 2007 01:31 · Личное сообщение · #7 |
|
Создано: 05 января 2007 01:46 · Личное сообщение · #8 |
|
Создано: 05 января 2007 03:47 · Личное сообщение · #9 |
|
Создано: 05 января 2007 03:48 · Личное сообщение · #10 |
|
Создано: 05 января 2007 17:54 · Поправил: Nimnul · Личное сообщение · #11 |
|
Создано: 05 января 2007 19:10 · Личное сообщение · #12 Вот минимальный комплект, нужный для работы (1,5MB): rapidshare.com/files/10430877/atalasoft.rar.html jfx пишет: У меня есть patch/keygen для 3 версии с исходниками. Перекомпиляция не требуется. В версии 4 они сделали DLL проверки лицензий at@lasoft.shared.dll. Файл лицензий подписан RSA. Любой патч нарушает strongname, соответственно требуется переподписание сборок своим ключом и перекомпиляция с измененными references. Nimnul пишет: должна присутствовать правильная дериктория IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR, Можешь посмотреть, насколько она правильная? ![]() |
|
Создано: 06 января 2007 03:06 · Личное сообщение · #13 |
|
Создано: 06 января 2007 03:37 · Личное сообщение · #14 |
|
Создано: 06 января 2007 03:59 · Личное сообщение · #15 |
|
Создано: 06 января 2007 08:03 · Личное сообщение · #16 |
|
Создано: 06 января 2007 09:42 · Личное сообщение · #17 |
![]() |
eXeL@B —› Основной форум —› Декомпиляция .NET - _IMAGE_DOS_HEADER |