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

 eXeL@B —› Основной форум —› Поиск CRC
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 30.4 (посетитель)
Активность: 0.020.01
Статус: Участник

Создано: 05 февраля 2006 22:44
· Личное сообщение · #1

Кто как ищет функцию которая считает CRC. Ща в мня полетят камни. CreateFile, ReadFile. Это понятно и не очень сложно когда вся прога- один екзешник. А вот представте что у неё 10-20 длл-ок и несколько из них защищены CRC. ReadFile происходит сотни, а то и тысячи раз. F5 топтать замучишся. А если CRC считается не всего файла, а лишь важных участков кода. Давайте делиться своими наработками и приёмами.



Ранг: 210.5 (наставник), 2thx
Активность: 0.140
Статус: Участник

Создано: 05 февраля 2006 23:30 · Поправил: arnix
· Личное сообщение · #2

Есть плагин такой у PEiD, называется kanal

[правка]

Я еще раз прочитал твой вопрос и понял что возможно я не правильно понял твой вопрос. Этот плагин только находит сигнатуры таблиц константных циферок известных хеш и крипт функций, но конечно не находит саму функцию в которой они используются, но найти будет не сложно, надо ставить braek on access на найденные конст. значения и смотреть когда они используются. А если испоьзуется самодельный алгоритм считывания хеша то плагин конечно уже не поможет.




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 05 февраля 2006 23:38
· Личное сообщение · #3

Если CRC считается, значит это кому-нибудь нужно. Имхо отсюда и надо плясать - смотреть оригинальный и измененный файл и поведение измененного. Мессага, закрытие проги и т.п.




Ранг: 122.3 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 05 февраля 2006 23:41
· Личное сообщение · #4

при вычислении crc32 часто(или всегда?) используется стандартный полином 0xEDB88320.

соответственно можно сделать групповой поиск 16-ричного значения 20 83 B8 ED




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

Создано: 05 февраля 2006 23:56
· Личное сообщение · #5

intty пишет:
или всегда?


Используется-то он всегда, только в особо хитрожопых реализациях он вычисляется динамически - чтоб никто не догадался

-----
Люблю повеселиться, особенно пожрать





Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 06 февраля 2006 00:09
· Личное сообщение · #6

Я думаю, что CRC было приведено не в качестве алгоритма CRC32 к примеру, а в качестве собирательного названия проверки целостности файла\кода.




Ранг: 122.3 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 06 февраля 2006 00:29 · Поправил: intty
· Личное сообщение · #7

ну если так, тогда как было сказано выше нужно смотреть реакцию приложения на модификацию. потом искать ф-ию проверки crc, она может одна применятся в нескольких файлах, или вообще вынесена в dll.
хотя опять же реакция приложения может быть и через неделю/месяц...
или ф-ия проверки целостности можно реализовать по-разному..
наверное тут трудно найти универсальное решение



Ранг: 30.4 (посетитель)
Активность: 0.020.01
Статус: Участник

Создано: 08 февраля 2006 19:13
· Личное сообщение · #8

А чем можно лог ввиде текстого файла скинуть, что бы сравнить как прога реагирует?




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 08 февраля 2006 19:23 · Поправил: Hellspawn
· Личное сообщение · #9

PalR пишет:
А чем можно лог ввиде текстого файла скинуть, что бы сравнить как прога реагирует?

в olly есть такая фишка вроде... run trace? там и в файл мона...
тока я ей не пользуюсь +) и ещё есть такая прога... jmp log как то так
называется, но она довольно долго работает %( да и не нашёл я её что то на харде...

-----
[nice coder and reverser]




Ранг: 153.9 (ветеран)
Активность: 0.120
Статус: Участник
reborn

Создано: 08 февраля 2006 19:24
· Личное сообщение · #10

PalR пишет:
А чем можно лог ввиде текстого файла скинуть, что бы сравнить как прога реагирует?


Шпиёном каким-то, помоему Керберос это делает и ApiSpy, я ими пользуюсь для таких целей.

-----
~ the Power Of Reversing team ~





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 08 февраля 2006 19:25 · Поправил: Jupiter
· Личное сообщение · #11

-

-----
EnJoy!





Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 08 февраля 2006 19:28 · Поправил: Hellspawn
· Личное сообщение · #12

newborn пишет:
Шпиёном каким-то, помоему Керберос это делает и ApiSpy, я ими пользуюсь для таких целей.


я так понял он имел ввиду, проследить как выполнялись сравнения в проге...
и условные прышки.. что бы выявить.. с какого момента прога пошла
не по тому пути... а api шмионы это не могут =\ (можно отследить лишь последствия
мессагебох или выход из проги)

--> Jupiter надо предыдущие посты читать иногда =) я же там всё запостил...

-----
[nice coder and reverser]




Ранг: 153.9 (ветеран)
Активность: 0.120
Статус: Участник
reborn

Создано: 08 февраля 2006 19:39
· Личное сообщение · #13

Hellspawn пишет:
я так понял он имел ввиду, проследить как выполнялись сравнения в проге...
и условные прышки.. что бы выявить.. с какого момента прога пошла
не по тому пути... а api шмионы это не могут =\ (можно отследить лишь последствия
мессагебох или выход из проги)


А точно, непонял вопроса, сорри, чё-то я сёдня туплю.

-----
~ the Power Of Reversing team ~





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 08 февраля 2006 19:40 · Поправил: Jupiter
· Личное сообщение · #14

Hellspawn
ты б на время поста посмотрел!
то, что мы написали почти одно и то же - не значит, что я не читал посты.
когда я начал писать ответ - последний пост был PalR, твоего поста не было.
я убрал содержимое своего поста, чтобы тебя не смущать, но ты и сам будь внимательнее, смотри на время постов.

-----
EnJoy!





Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 08 февраля 2006 19:44
· Личное сообщение · #15

Jupiter пишет:
ты б на время поста посмотрел! .......


ок учту... просто создалось такое впечатление... посты были очень уж похожи...
да на время я не посмотрел... =) 2 мин разницы всего... без обид...

-----
[nice coder and reverser]




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

Создано: 11 февраля 2006 19:02 · Поправил: Asas
· Личное сообщение · #16

http://crackworld.stsland.ru/page/works/crc32.rar http://crackworld.stsland.ru/page/works/crc32.rar - если надо сэмпл
там crc32 реализован на асме.



Ранг: 30.4 (посетитель)
Активность: 0.020.01
Статус: Участник

Создано: 12 февраля 2006 13:16
· Личное сообщение · #17

Asas
Спасибо канешно. Только мне не это надо то. Как реализовать я знаю. Нужно узнать где в подопытной проге это происходит. Там при помощи утечек памяти али ещё чего
Поковыряв прогу мне показалось что вычисляется CRC и результат сравнения 0 | 1 кладется в некоторую переменную. А при наступлении некоторого события, происходит проверка этой переменной и вылет по таймеру. При этом проверка может произойти и через 5 минут и через 1 час работы. Ловить на таймер не представляется возможным по причине его очень частого использования и полезными функциями самой проги.
Я пробовал подгонять в уже пропадченном файле CRC при помощи известного плагина, но прога обнаруживает что пропатчена. Возможно канешно используется свой алгоритм подсчёта. Даже скорее всего свой.




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 12 февраля 2006 13:17
· Личное сообщение · #18

PalR
Может проще прогу выложить? Потом расскажут, какую методику использовали для поиска.



Ранг: 30.4 (посетитель)
Активность: 0.020.01
Статус: Участник

Создано: 12 февраля 2006 13:17
· Личное сообщение · #19

intty
Полином не обнаружился



Ранг: 30.4 (посетитель)
Активность: 0.020.01
Статус: Участник

Создано: 12 февраля 2006 13:19
· Личное сообщение · #20

Ara
Я понимаю, что мы все маньяки тут. Но ктож станет 1,5 Гига качать что бы посмотреть.



Ранг: 30.4 (посетитель)
Активность: 0.020.01
Статус: Участник

Создано: 12 февраля 2006 13:23
· Личное сообщение · #21

А ещё мне кажется что защиту навешивал кто то из тут присутствующих. Потому как нестандартных фокусов уже обнаружено много.




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 12 февраля 2006 13:25
· Личное сообщение · #22

PalR
Ну я в самом начале предлагал ловить прогу на события, которые идут после проверки CRC. Если прога вылетает, то лови соответствующие АПИ, смотри откуда они вызываются, с большой вероятностью выйдешь на нужную проверку.



Ранг: 30.4 (посетитель)
Активность: 0.020.01
Статус: Участник

Создано: 12 февраля 2006 13:30
· Личное сообщение · #23

Ara
Самое прикольное, что прога сообщает что обнарущила своё изменение. Только вот вернуться в неё не получается. После нажатия на OK всё захлопывается наглухо и в отладчике можно попасть только в системные процессы (ntdll,kernl и другое г..но). Типа HALT и всё тут.




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 12 февраля 2006 13:34
· Личное сообщение · #24

PalR пишет:
Самое прикольное, что прога сообщает что обнарущила своё изменение.

Ну и лови вызов этой мессаги.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 12 февраля 2006 19:52
· Личное сообщение · #25

PalR пишет:
и в отладчике можно попасть только в системные процессы

АСПР тоже так делает. Помещает в стек адрес ExitProcess и вызывает мессагу джампом, поэтому из мессаги прога сразу падает на ExitProcess. Решение (но не для АСПРа): взять АПИ шпион у узнать какую АПИ прога вызывала до мессаги и ее адрес возврата. Ищем выше этого адреса вызов этой АПИ и ставим бряк. Запускаем прогу приземляемся на бряке. Ставим бряк на MessageBoxA и жмем Shift+F11 (в Оли). Приземляемся на бряке и начинаем жать на клавишу "-" (минус). При этом Оли начинает выполнять обратную трассировку, т.е. как бы проходит прогу назад, при этом показывая состояния регистров и стека на тот момент. Ну а там сам увидишь команды сравнения и что было бы если б они выполнились подругому.

-----
Yann Tiersen best and do not fuck




Ранг: 30.4 (посетитель)
Активность: 0.020.01
Статус: Участник

Создано: 13 февраля 2006 20:08
· Личное сообщение · #26

PE_Kill
Вот это уже очень дельно. Сенкс. Я не знал о таких штучках.



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

Создано: 15 февраля 2006 21:10
· Личное сообщение · #27

PalR так вот эта самая реализация на асме часто используется переведи в хекс с помощью bin2db и ищи на здоровье



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

Создано: 16 февраля 2006 11:09
· Личное сообщение · #28

to PE_Kill прямая трассировка вызывается комбинацией CtrL+F11!!!




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 16 февраля 2006 11:26 · Поправил: PE_Kill
· Личное сообщение · #29

rummy ну блин перепутал, мысли путались.

-----
Yann Tiersen best and do not fuck




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

Создано: 07 апреля 2006 15:19
· Личное сообщение · #30

вообще-то, CRC16/32 можно и восстановить ;)
в смысле после изменения хакнутых байтов
добавить еще 4е специальных байта, чтобы
получилось идентичное CRC, как будто бы мы
ничего и не трогали ;)

вот ссылки по теме:

# faq по вычислению и обращению CRC
faqs.org.ru/progr/common/crc_faq.htm

#CRC and how to Reverse it A CRC Tutorial & The c00l way to Reverse CRC
pulltheplug.org/kdb/ptp/crc/crctut1.htm


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


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