Вопрос о 'печати Баала'...

Тема в разделе "WASM.ASSEMBLER", создана пользователем Xanasu, 7 сен 2004.

  1. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    обновил до VS 2005 SP1
     
  2. ALLeX

    ALLeX Member

    Публикаций:
    0
    Регистрация:
    21 окт 2004
    Сообщения:
    141
    Адрес:
    Ukraine
    У меня похоже не работает (пишет SORRY на любом exe). В своем собственном файле, утилита нечто находит по адресу: 00000A8C
    Проверенные версии link.exe: 5.12.8078, 7.10.3077, 7.10.6030, 8.00.50727.762
    Тестовый exe в аттаче.
     
  3. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    ALLeX
    Его на линкер натравливать надо.
     
  4. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    ALLeX
    на уже пропатченных может не работать, и естественно его нужно на link.exe натравливать,
    если найдет то найдет file offset (Alt-F1 в hiew -> F5 -> .найденный_offset -> сравнить визуально с приложенной докой и пропатчить нужное)
     
  5. ALLeX

    ALLeX Member

    Публикаций:
    0
    Регистрация:
    21 окт 2004
    Сообщения:
    141
    Адрес:
    Ukraine
    Работает всё ok. Сорри, я протормозил...
     
  6. Domo

    Domo New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2006
    Сообщения:
    1
    Если кому еще интересно насчет констант, зашитых в линкер, то...
    это всего лишь номер билда конкретного линкера! ;) Напимер:

    bogrus писал:
    А число 9DEA - не что иное как 40426! И так далее.
     
  7. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Покопал для линкера 8.00.50727.42 AMD64 (PE64), который из студии (64битный бинарь).

    Итого: смещение 8157А, заменить 93 на 8В. Особо не тестил, но сигнатуры нет.

    код:
    Код (Text):
    1. .text:0000000000482168 E8 83 BC FF FF            call    ?CbBuildProdidBlock@IMAGE@@AEAAKPEAPEAX@Z ; IMAGE::CbBuildProdidBlock(void * *)
    2. .text:000000000048216D 8B E8                     mov     ebp, eax
    3. .text:000000000048216F 8B 8B E0 02 00 00         mov     ecx, [rbx+2E0h]
    4. .text:0000000000482175 8D 54 0D 00               lea     edx, [rbp+rcx+0]
    5. .text:0000000000482179 89 93 E4 02 00 00         mov     [rbx+2E4h], edx
    6. .text:000000000048217F FF 15 C3 F4 F7 FF         call    cs:__imp__tzset
    7. .text:0000000000482185 80 3D 0C 81 05 00+        cmp     cs:?fReproducible@@3_NA, 0 ; bool fReproducible
    Для версии IA64 (PE32) 8.00.50727.198 (из ДДК):
    файловое смещение 6A284, заменить 03 97 на 90 90.

    Код (Text):
    1. .text:0046AE77 E8 64 A1 FF FF            call    sub_464FE0
    2. .text:0046AE7C 8B 95 5C 02 00 00         mov     edx, [ebp+25Ch]
    3. .text:0046AE82 8B F8                     mov     edi, eax
    4. .text:0046AE84 03 D7                     add     edx, edi
    5. .text:0046AE86 89 95 60 02 00 00         mov     [ebp+260h], edx
    6. .text:0046AE8C FF 15 40 13 40 00         call    ds:_tzset
    С остальными версиями (кроме IA64 (PE64) :) ) SignFinder сам справляется.
     
  8. CoolCmd

    CoolCmd New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2007
    Сообщения:
    21
    Адрес:
    Moscow
    У меня практический вопрос. :)
    Зачем патчить link.exe, если можно прописать в post-build вызов какой-нибудь утилиты, которая заменит stub на любой нужный нам? Например бесплатная http://www.hiew.ru/files/dexem153.zip с этим вроде справляется.
     
  9. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    проще один раз пропатчить, чем прописывать каждый раз постбилд.
     
  10. CoolCmd

    CoolCmd New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2007
    Сообщения:
    21
    Адрес:
    Moscow
    n0name
    Это с какой стороны посмотреть. У меня в системе link.exe 5 штук - 2 в wdk и 3 в VS. При этом для VS2008 SignFinder ничего не находит. :dntknw: Нашел в файле _tzset, но алгоритм уже какой-то другой, ну не хакер я... Ну ладно, допустим пропатчу, а с установкой сервис пака проблем не будет? Или придется сначало устанавливать оригинальные версии link.exe? И еще смущает фраза
    А если какая-то ошибка всплывет. Этож пипец, ищешь ее в своем коде, а она в линкере.
    А для вставки в проект вызова утили нужно просто copy+paste.
     
  11. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Ну и что, у меня 7 штук только у масма, не считая других дистрибутивов. Все пропатчены. Если неохота самому патчить, попроси кого-нить, пусть напишут патчер с учётом всех версий. Конечно, можешь просто заменять заглушку, если так больше нравится.

    Вряд ли. Код у линкера однозначный и если результатом патча является исчезновение печати, а бинарик вполне корректный, то вероятность скрытой ошибки небольшая. Тем более, за столько времени ещё ничего не всплыло :)
     
  12. CoolCmd

    CoolCmd New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2007
    Сообщения:
    21
    Адрес:
    Moscow
    Небольшое добавление на тему о dexem.exe. Он в принципе отказывается вставлять стаб меньше чем 80 байт. А если при замене стаба секции сместятся к началу файла, то не будет доступна отладочная информация (по-умолчанию она создается даже в релизе). И 64 бита не поддерживает. И контрольную сумму не обновляет. Вот такие ограничения. :dntknw:
    Никто не разбирался, как линкер из VS2008 изменить?
     
  13. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    В теме о дошлёпке сразу приведена инфа.
     
  14. CoolCmd

    CoolCmd New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2007
    Сообщения:
    21
    Адрес:
    Moscow
    Проверил для VS2008 professional rtm:

    link.exe / x86 и x86_amd64 / 9.00.21022.08 / 790008 bytes
    0006A20F: 03 C8 --> 90 90

    link.exe / amd64 / 9.00.21022.08 / 1045496 bytes
    00078204: 89 93 EC 02 00 00 --> 89 8B EC 02 00 00

    64-битную версию не проверял, т.к. винды подходящей нету.
     
  15. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    А всё-таки напрягает каждый раз засовывать линкер с х64 в иду :-\
     
  16. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    типа ты каждый день студии х64 переставляешь :)
     
  17. ZagZag

    ZagZag New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    3
    Держите патчик, чтоб каждый раз руками не лазать в линкере.
    Спасибо CoolCmd за инфу.
    http://slil.ru/25498983 - vs2008.x86.linker.patch.winupack.exe
    http://www.virustotal.com/analisis/d01be3fb4f209012ec222f831e51c47c - Антивири ругаются, но, чтоб меня забанили, вирусов там нет!
    Кто попробует - отпишитесь и скажите что вирей там действительно нет, а то ведь никто не поверит новичку.
    Выставил только для x86 версию. Делал для себя.
     
  18. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Asterix
    Доставляю новые :) Не каждый день, слава амд. А доделай SignFinder под х64 линкер, а?
     
  19. ZagZag

    ZagZag New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    3
    Мне несложно под AMD сделать, но надо оригинальный линкер. А у меня его нет

    Выкладываю здесь (разобрался как) незапакованный патч под vs2008 x86
     
  20. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    530
    Адрес:
    Russia
    Статья Microsoft's Rich Signature (undocumented)
    Опубликована: 05/03/2008
    Автор: Daniel Pistelli

    Статья на английском.

    Описание:

    http://www.ntcore.com/Files/richsign.htm

    Также в разделе Articles есть другие интересные статьи.