Сейчас на форуме: _MBK_, user99, ManHunter (+8 невидимых)

 eXeL@B —› Основной форум —› Взлом программы из нескольких exeшников (основная прога взломана, а дочерние нет)
Посл.ответ Сообщение

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

Создано: 02 ноября 2005 09:58
· Личное сообщение · #1

Добрый день! Помогите новичку
Такая проблема: Есть прога "Психологические тесты" состоит из основной проги - ведение базы опрашиваемых и пр. и кучи exe с отдельными тестами. При выборе в меню определенного теста запускается отдельный exe файл.
Защита - ключевая дискета с серийником.
Основную программу сломал... теперь дискету не просит, говорит добро пожаловать и все функции доступны, но если нажимаешь какой-нибудь тест, то в окне теста высвечивается TPanel с надписью нелегальная копия (все проги на дельфи). При этом ничего не спрашивает и дисковод не хрюкает. Кстати под этой панелью (если ее скрыть) список опрашивываемых.
Как тест узнает, что он нелегальный?
Как может передаваться в тест легальность?
Как отследить условия появления этой панели?
Каким путем пойти?
Подскажите




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

Создано: 02 ноября 2005 10:02
· Личное сообщение · #2

tracker пишет:
Как тест узнает, что он нелегальный?
Как может передаваться в тест легальность?

А ключевая дискета тогда зачем?
Ссылку давай...

-----
Сколько ни наталкивали на мысль – все равно сумел увернуться





Ранг: 299.6 (наставник)
Активность: 0.30
Статус: Участник
Armadillo Killer

Создано: 02 ноября 2005 10:15
· Личное сообщение · #3

tracker Возьми DeDe и посмотри раз все проги как ты сказал на Delphi




Ранг: 303.7 (мудрец), 4thx
Активность: 0.190
Статус: Участник
tPORt Manager

Создано: 02 ноября 2005 10:47
· Личное сообщение · #4

tracker
Раз они все в комплекте, следовательно у всех, как обычно бывает, одинаковые защиты, который ломаются по сингатурам...




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

Создано: 02 ноября 2005 16:58
· Личное сообщение · #5

tracker, ссылку дай или выложи на форум, а то так толкового совета не получишь.



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

Создано: 02 ноября 2005 22:17
· Личное сообщение · #6

Расскажу как ломалась основная программа.
Засунул екзешник в ДеДе получил кучу форм и кучу асмовских проц.
Выбрал процы, которые запускаются при создании (или активации не помню уж...) 2 форм: основной и формы которая просит засунуть дискету (название типа FormSN ). Сопвпало 2 процы (запускались и там и там) - вот я и решил, что в одной как раз проверка серийника и стоит. Так оно и было - в первой. Из асмовских команд знаю пока только 2 - je и jne. Ну соответственно и поменял в одном месте je на jne и о чудо! Прога сказала мне добро пожаловать (даже дисковод не хрюкнул...) Потом вернул как было, и исправил следующий je (там их всего 2 подозрительных было). Теперь флопарик хрюкает, но все равно - добро пожаловать. На том и успокоился.
С отдельными тестами такого не прокатило... там дискету засунуть не просят и флоп молчит.
и одинаковых проц при запуске разных форм дохрена... и только панелька в одном месте и лабелька в другом и кнопочки не все доступные... Такое ощущение, что осн. прога чего-то недодала тесту...
Может такое быть, что при запуске и проверке серийника что-то записывается в память (в той проце, которуюя я подпортил) а потом тест из этого места берет?
Или как в аналогичных случаях делается? (опыта нет)
Или может отлавливать условие по появлению панельки? В легальной копии она должна быть скрыта.
Насчет ссылки и закачки...
www.cogito.msk.ru - но там такого нету... (видно давно было) и вообще инфы никакой...
У меня все на компашке ~16М закачивать сюда не пустят да и не закачать столько... - это полная инсталляшка...
А по кускам типа пару екзешников - так они без своих баз работать не будут...
Насчет одинаковых защит - согласен одинаковые (между тестами), но в основной проге - другая...



Ранг: 27.7 (посетитель), 2thx
Активность: 0.01=0.01
Статус: Участник

Создано: 04 ноября 2005 11:31
· Личное сообщение · #7

Дочерние exe могут проверять целостность главного...




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

Создано: 04 ноября 2005 11:38
· Личное сообщение · #8

tracker пишет:
Может такое быть, что при запуске и проверке серийника что-то записывается в память (в той проце, которуюя я подпортил) а потом тест из этого места берет?

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

tracker пишет:
~16М закачивать сюда не пустят

Закачай на www.webfile.ru/

-----
Сколько ни наталкивали на мысль – все равно сумел увернуться





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

Создано: 04 ноября 2005 12:57
· Личное сообщение · #9

tracker, попробуй отследить какие файлы и ветви реестра использует основная прога(Filemon & Regmon тебе в помощь) может картина яснее станет.
ValdiS пишет:
А еще может необходимую инфу хранить во временных файлах, реестре, использовать инфу, которая должна быть на дискете, и т.д.

Полностью согласен с ValdiS, скорее всего так и есть.



Ранг: 228.7 (наставник), 2thx
Активность: 0.120
Статус: Участник
malware research

Создано: 05 ноября 2005 18:50
· Личное сообщение · #10

tracker пишет:
Ну соответственно и поменял в одном месте je на jne

Ну а что сравнивается перед этим переходом? Смотри что с чем сравнивается, и ставить бряк на доступ к области памяти с этим значением, а там искать место, где туда записывается значение, при котором переход выполнится наоборот. Дело в том, что флаг ты не изменил, и вероятно, что он проверяется еще раз в другом месте, соответственно и пишет потом "нелегальная копия". И еще, менять je на jne нехорошо, надо менять или на jmp или на несколько nop.

-----
Research is my purpose




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

Создано: 09 ноября 2005 13:03
· Личное сообщение · #11

Закачал 13М однако... webfile.ru/620859 - PsyTest.rar

2 Error_Log место где все происходит...

.004E767B: E838FFFFFF call .0004E75B8 --- (2)
.004E7680: 59 pop ecx
.004E7681: 84C0 test al,al
.004E7683: 750D jne .0004E7692 ; здесь я первый раз менял на je
......
.004E7688: E82BFFFFFF call .0004E75B8 ; здесь хрюкает дисковод
.004E768D: 59 pop ecx
.004E768E: 84C0 test al,al
.004E7690: 7408 je .0004E769A ; здесь второй раз менял на jne
......
.004E76B2: E871D2F1FF call .000404928 --- (4)
......
.004E76BA: E845D2F1FF call .000404904 --- (5)
.004E76BF: C3 retn

Последние дни пялюсь на внутренности 0004E75B8 (там где хрюкает) пока безуспешно...
Нашел, что на дискете ищет файл snumber.sn сделал дискету с таким файлом туда цифирки записал, даже потом вижу куда он эти цифры в память пишет... но дальше слишком все запутано... (для меня)



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

Создано: 10 ноября 2005 02:09
· Личное сообщение · #12

ХИ! ЛЮДИ! ОН СЛОМАЛСЯ!!!
правда нечаянно
Проца там где хрюкало:
.004E75B8: 55 push ebp
.004E75B9: 8BEC mov ebp,esp
.004E75BB: 83C4F0 add esp,-010 ;"Ё"
.004E75BE: 53 push ebx
.004E75BF: 8BD8 mov ebx,eax
.004E75C1: 33C0 xor eax,eax
.004E75C3: 8AC3 mov al,bl
.004E75C5: 8D1485D4855300 lea edx,[005385D4][eax]*4
.004E75CC: 8D45F0 lea eax,[ebp][-10]
.004E75CF: E848BAF1FF call .00040301C
.004E75D4: BA3C764E00 mov edx,0004E763C
.004E75D9: 8D45F0 lea eax,[ebp][-10]
.004E75DC: B10D mov cl,00D ;" "
.004E75DE: E809BAF1FF call .000402FEC
.004E75E3: 8D55F0 lea edx,[ebp][-10]
.004E75E6: 8B4508 mov eax,[ebp][08]
.004E75E9: 052CFEFFFF add eax,0FFFFFE2C
.004E75EE: E875D5F1FF call .000404B68
.004E75F3: 33DB xor ebx,ebx
.004E75F5: 8B4508 mov eax,[ebp][08]
.004E75F8: 50 push eax
.004E75F9: E85EFDFFFF call .0004E735C
.004E75FE: 59 pop ecx
.004E75FF: 84C0 test al,al
.004E7601: 740A je .0004E760D Исправил на jne
.004E7603: 8B4508 mov eax,[ebp][08]
.004E7606: 50 push eax
.004E7607: E830FEFFFF call .0004E743C
.004E760C: 59 pop ecx
.004E760D: B801000000 mov eax,000000001
.004E7612: EB01 jmps .0004E7615
.004E7614: 40 inc eax
.004E7615: 83F810 cmp eax,010 ;" "
.004E7618: 7F13 jg .0004E762D
.004E761A: 8B1530905300 mov edx,[00539030]
.004E7620: 8A1402 mov dl,[edx][eax]
.004E7623: 8B0D9C985300 mov ecx,[0053989C]
.004E7629: 3A11 cmp dl,[ecx]
.004E762B: 75E7 jne .0004E7614
.004E762D: 83F810 cmp eax,010 ;" "
.004E7630: 7F02 jg .0004E7634
.004E7632: B301 mov bl,001 ;" "
.004E7634: 8BC3 mov eax,ebx
.004E7636: 5B pop ebx
.004E7637: 8BE5 mov esp,ebp
.004E7639: 5D pop ebp
.004E763A: C3 retn

И все заработало!!!
Короче сделал я дискету, там серийник ввел 1111222233334444 такой длинный, потому что раньше встречал в памяти строчку ASCII 10 и тут какой-то цикл до 10, подправил файл, а он мне говорит, что таких длинных целых не бывает. Ну я потихоньку укорачивать стал... и тут бах и добро пожаловать
и тесты работают полноценно.
Завтра патч буду учиться писать
А можно еще пару вопросов:
1. Если кто все-таки скачал эту хрень, то как бы поступил настоящий крякер
Где и как вмешался бы в программу... или не вмешался бы (типа серийник бы подсмотрел)
2. Почему менять je на jne нехорошо, надо менять или на jmp или на несколько nop. ?



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

Создано: 10 ноября 2005 08:00
· Личное сообщение · #13

Я так понимаю - по адресу .004E75F9: E85EFDFFFF call .0004E735C происходит какая-то проверка и результат заносится в AL. Спускайся в процедуру и в самом начале ставь

mov al,1
ret

После этого программа при вводе любого серийника будет считать себя зареганной.

tracker пишет:
как бы поступил настоящий крякер

Пропатчит процедуру.

tracker пишет:
серийник бы подсмотрел

Давно уже не работает.

tracker пишет:
Почему менять je на jne нехорошо

Получится обратный результат - при вводе валидный серийников прога их не примет =)))

-----
TBR




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

Создано: 10 ноября 2005 08:13
· Личное сообщение · #14

Вдогонку:
tracker пишет:
.004E7688: E82BFFFFFF call .0004E75B8 ; здесь хрюкает дисковод
.004E768D: 59 pop ecx
.004E768E: 84C0 test al,al
.004E7690: 7408 je .0004E769A ; здесь второй раз менял на jne


Попробуй по адресу .004E75B8: 55 push ebp, вместо того, чтоб проходить, поставить
mov al,1
ret

А еще посмотри что стоит на выходе по .004E76BF: C3 retn.

-----
TBR




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

Создано: 10 ноября 2005 19:23
· Личное сообщение · #15

Оказалось не все тесты работают... только несколько...
Оказалось серийник состоит из двух частей и целиком выглядит так: xxxxxxxxx-xxxx
и от второй части зависит какие тесты запускаются, а какие нет
Времени разбираться дальше уже не было, стал просто перебирать разные вторые части.
при 200 - всего 2 теста работают... при FFF - почти все, а при FFFF - совсем все!!!
Как я крут как я крут круче только яйца
Что бы еще такого сломать

Спасибо всем, кто помог добрым советом.


 eXeL@B —› Основной форум —› Взлом программы из нескольких exeшников (основная прога взломана, а дочерние нет)
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати