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

 eXeL@B —› Основной форум —› Декомпиляция .NET - _IMAGE_DOS_HEADER
Посл.ответ Сообщение

Ранг: 77.1 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 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, результат одинаковый.




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 04 января 2007 09:37
· Личное сообщение · #2

Посмотри этот файл (DLL по идее) в hiew - там должен быть dos header и pe header. Если нет, то файлик не кусок сборки. Может он порченый, а может это static lib....



Ранг: 77.1 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 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-ом, что в принципе особо не помеха , но вот парочка не хочет перекомпилироваться из-за этого /* WARNING: rogue pointer! */.
А может быть, там добавлен нативный код и сборка смешанная?



Ранг: 56.4 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 04 января 2007 15:48
· Личное сообщение · #4

а обязательно перекомпилировать? Может можно решить без этого?




Ранг: 218.9 (наставник), 42thx
Активность: 0.160
Статус: Участник
dotnet

Создано: 04 января 2007 22:10
· Личное сообщение · #5

Sh[AHT]

Посмотри ep этих файлов.

-----
have a nice day




Ранг: 77.1 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 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. Подружить его с остальными сборками без декомпиляции не получается



Ранг: 56.4 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 05 января 2007 01:31
· Личное сообщение · #7

Название?
и ссылка



Ранг: 77.1 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 05 января 2007 01:46
· Личное сообщение · #8

hттp://www.atalasoft.com
Atalasoft DotImage 4.0
кодеки Jpeg2000 Jbig2
прямой ссылки нет, чуть позже выложу либо полный дистр (за 40 метров), либо скомпоную минимальный пакет.



Ранг: 56.4 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 05 января 2007 03:47
· Личное сообщение · #9

Lz0 зарелизили недавно - ищи на 0days. У меня есть patch/keygen для 3 версии с исходниками. Перекомпиляция не требуется.



Ранг: 56.4 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 05 января 2007 03:48
· Личное сообщение · #10

Кстати, это был мой первый кряк для .NET




Ранг: 218.9 (наставник), 42thx
Активность: 0.160
Статус: Участник
dotnet

Создано: 05 января 2007 17:54 · Поправил: Nimnul
· Личное сообщение · #11

Sh[AHT] пишет:
100114CE: FF2558D10410 jmp _CorDllMain ;mscoree


Прикол в том что должна присутствовать правильная дериктория IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR,
скорее всего в этих файла в ep правятся указатели на нее перед jmp.

-----
have a nice day




Ранг: 77.1 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 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,

Можешь посмотреть, насколько она правильная?



Ранг: 56.4 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 06 января 2007 03:06
· Личное сообщение · #13

Переподписать сборки и исправить референсы можно без перекомпиляции, простым битхаком. Замени публичный ключь на свой и поправть токены на свои. Плсле этого sn -R assm.dll newkey.snk



Ранг: 77.1 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 06 января 2007 03:37
· Личное сообщение · #14

jfx пишет:
Замени публичный ключь на свой и поправть токены на свои.

Ключ и токены заменил, но сборка рушится. Видимо, что-то недозаменил.



Ранг: 77.1 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 06 января 2007 03:59
· Личное сообщение · #15

Кстати, для лентяев - утилита замены ключей
ahteam.org/files/tools/SNReplace.zip

Требует sn.exe и сгенерированный *.snk.



Ранг: 56.4 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 06 января 2007 08:03
· Личное сообщение · #16

по моему проще в WinHex-е это сделать, к томуже еще референсы править нужно.



Ранг: 77.1 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 06 января 2007 09:42
· Личное сообщение · #17

Спасибо, нашел кейген. Но все-таки любопытно, как они умудрились его сделать.


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


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