Сейчас на форуме: rmn, exp50848 (+7 невидимых)

 eXeL@B —› Основной форум —› IDA FLAIR 5.2 Utils - не могу сделать *.sig для Crypto++ LIB! Че делать? :(
Посл.ответ Сообщение

Ранг: 19.9 (новичок)
Активность: 0.010
Статус: Участник

Создано: 14 февраля 2008 10:15
· Личное сообщение · #1

Приветствую, [all]!

Как создать *.sig для данной библиотечки?

Линк: Crypto++ для всех версий http://www.cryptopp.com/#download

Уточню проблему:
- есть "некая программа", к которой статически прилинкована эта библиотека(версию не опознал) и очень хочеться в "наглядном" виде видеть какая ф-ция используется в ней в том, или ином месте.

Как сделать лучше?



Ранг: 39.2 (посетитель), 16thx
Активность: 0.020
Статус: Участник

Создано: 14 февраля 2008 18:13
· Личное сообщение · #2

делал сигнатуры когда то для версии 5.2.1, не думаю что многое изменилось тех пор:
drop.io/do42chl



Ранг: 24.1 (новичок), 1thx
Активность: 0.010
Статус: Участник

Создано: 14 февраля 2008 19:20
· Личное сообщение · #3

А в чем проблема-то? Не знаешь, как пользоваться FLAIR? Или что-то конкретно не получается? Или нет библиотеки, с которой надо делать сигнатуру?

P.S. Можно найти готовые сигнатуры для 5.0-5.1



Ранг: 19.9 (новичок)
Активность: 0.010
Статус: Участник

Создано: 14 февраля 2008 23:02
· Личное сообщение · #4

bbuc, Биг Сенькс!


RedAbishai:
Только докачиваю MS VS'08 буду компилить(сорсы от Crypto++).. т.к версия .dll и .lib файлов в комплекте с Crypto++ почемуто(хм?.. ) не хочет "проглатываться" pcf.exe из FLAIR 5.2.

Пишет, что файл не является COFF-файлом, и точка. пробовал сигнатуру подставить( через "-g") - таж хрень.

Пробовал: DLL2LIB(BINARY-SOFT), LIB2INC затем INC2LIB, короче..
Толи руки не туда вставлены, толи еще чего - но не получилось у меня создать *.pat файл для создания *.sig.

Хочу попробовать сейчас сам скомпилить исходники от Crypto++ 5.х и уже созданную MSVC компиллером "либу" подсунуть pfc.exe из FLAIR-а...
посмотрим..



Ранг: 8.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 24 июня 2008 20:35
· Личное сообщение · #5

пробую:
pcf "C:\Program Files\Microsoft Visual Studio 9.0\VC\lib\msvcrt.lib" crt

выдаёт:
Fatal [C:\Program Files\Microsoft Visual Studio 9.0\VC\lib\msvcrt.lib] (MSVCR90.dll): not a coff module

подскажите где я ошибся, почему не хотит пат файл создавать? мож параметры какие указать? или этот либ действительно не coff? тогда какой? и как сделать сигны? пробовал ещё plb тоже пишет формат не тот..



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 25 июня 2008 00:42
· Личное сообщение · #6

ты не ту либу пытаешь pcf скормить



Ранг: 8.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 25 июня 2008 03:06
· Личное сообщение · #7

а какую тогда надо шоб сигнды к 9й студии получить? я уж всё подряд ему кормлю, бесполезно...



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 25 июня 2008 23:32
· Личное сообщение · #8

если посмотришь внутрь msvcrt.lib которую ты пытаешься ему скормить то увидишь только ссылки на dll. тебе нужна статическая либа



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 25 декабря 2008 16:42 · Поправил: progopis
· Личное сообщение · #9

Может кто-нибудь уже сделал сигнатуру для Crypto++ 5.5.2? Пробовал юзать утилу Idb2Sig на файл cryptopp.dll - она сделала PAT файл, который "не очень хочет" браться sigmake'ом:
Code:
  1. See the documentation to learn how to resolve collisitions.
  2. : modules/leaves: 9021136/4066, COLLISIONS: 2990


Приложил саму библиотеку и lib-файл. Могу выложить полный комплект.

c0ee_25.12.2008_CRACKLAB.rU.tgz - Release.7z

P.S. Для моего случая всё-таки желательно сигнатура для Crypto++ скомпиленной в 8.0 версии студии. Приатаченный файл от 9.0.
P.P.S. Всё! Определился! Та либа, которую я сейчас исследую содержит код из 5.2.1. Может кто перевыложить?



Ранг: 14.5 (новичок)
Активность: 00.01
Статус: Участник

Создано: 26 декабря 2008 19:38
· Личное сообщение · #10

>Определился! Та либа, которую я сейчас исследую содержит код из 5.2.1

научи, пожалуйста, как определить версию, а?



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 26 декабря 2008 20:16 · Поправил: progopis
· Личное сообщение · #11

topmo3
Есть у меня либа, проверяющая серийник, частично содержит код из Crypto++. Определяю её линкер в PEiD. В моём случае определился как 8.0. Это навело меня на мысль о Visual Studio 2005, хотя компилятор PEiD не определил (с опытом можно распознавать компилятор, заглядывая в дизассемблер). Компилишь сам Crypto++ разных версий этой версией VC++. Далее в ход идёт плагин FindCrypt2 by Ilfak Guilfanov. Он находит, допустим инициализацию алго SHA-512:
Code:
  1. mov     eax, [esp+arg_0]
  2. mov     dword ptr [eax], 0F3BCC908h
  3. mov     dword ptr [eax+4], 6A09E667h
  4. mov     dword ptr [eax+8], 84CAA73Bh

Смотрим реализацию этого же кода в поздних версиях (можешь скачать мой атач из предыдущего поста - там 5.5.2 скомпиленная в VC++ 2008):
Code:
  1. push    esi
  2. _text:42962A4B                 push    edi
  3. _text:42962A4C                 mov     edi, [esp+0Ch]
  4. _text:42962A50                 push    10h
  5. _text:42962A52                 pop     ecx
  6. _text:42962A53                 mov     esi, offset dword_0_4299E4C8; 0F3BCC908h, 6A09E667h, ...
  7. _text:42962A58                 rep movsd
  8. _text:42962A5A                 pop     edi
  9. _text:42962A5B                 pop     esi
  10. _text:42962A5C                 retn

Код выше тоже определился как CryptoPP::SHA512::InitState(unsigned __int64 *). Это потому, что функция "выставлена" на экспорт.

Кроме того, с версии Crypto++ 5.5.1 код некоторых фунок (вот например SHA512_SSE2_Transform) будет один и тот же на любом компиляторе, так как написан асмовскими вставками:
Code:
  1. SHA512_SSE2_Transform:
  2.          push       ebx
  3.          mov         ebx, eax
  4.          push       ebx
  5.          push       esi
  6.          push       edi
  7.          lea         ebx, SHA512_K
  8.          mov         eax, esp
  9.          and         esp, 0xfffffff0
  10.          sub         esp, 27*16
  11.          push       eax
  12.          xor         eax, eax
  13.          lea         edi, [esp+4+8*8]
  14.          lea         esi, [esp+4+20*8+8]
  15.          movq    mm4, [ecx+0*8]
  16.          movq    [edi+0*8], mm4
  17.          movq    mm0, [ecx+1*8]
  18.          movq    [edi+1*8], mm0


P.S. Суть всегда одна: нас интересует разница в версиях - если бы её не было, то и не пришлось бы делать новые сигны. А если есть - надо смотреть какая версия вручную. Благо версий того же Crypto++ не так много...



Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 24 августа 2013 13:11
· Личное сообщение · #12

Тема конечно старая. Но у меня была такая же проблема:

Fatal [cryptlib.lib] (.\Win32\cryptlib\Release\zlib.obj): not a coff module

cryptlib.lib у меня статическая. Но все равно ругается.

А проблема решается просто. Нужно убрать опцию /GL




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 24 августа 2013 13:19
· Личное сообщение · #13

Сильно сомневаюсь, что оптимизация влияет на корректность модуля. В любом случае старый топ, закрыто.

| Сообщение посчитали полезным: b0s
 eXeL@B —› Основной форум —› IDA FLAIR 5.2 Utils - не могу сделать *.sig для Crypto++ LIB! Че делать? :(
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати