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

 eXeL@B —› Основной форум —› Немогу отловить передачу данных
. 1 . 2 . >>
Посл.ответ Сообщение

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

Создано: 19 мая 2006 18:10
· Личное сообщение · #1

Ломаю одну програмку. В принципе она уже сломана, только вот проблема:

- прога работает, но при печати 10 строк (а в них важные данные) выводит не целые числа, т.е. например должно быть 1 а выводит 0,96.

Так вот вопрос, как это можно отловить ?

Вот пример того как оно выглядит на оригинальной версии и на ломаной:

Оригинальная:
img157.imageshack.us/img157/5372/orig8kv.jpg

Ломаная:
img92.imageshack.us/img92/5541/cracked6ak.jpg

Заранее спасибо всем.

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




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

Создано: 19 мая 2006 18:36
· Личное сообщение · #2

В чём собственно вопрос?
Вроде как: разыскивается экстрасенс с большим опытом.

newborn пишет:
но при печати 10 строк

А если строк 9?

newborn пишет:
выводит не целые числа, т.е. например должно быть 1 а выводит 0,96.

Возможно там по трассе не так много операций сопроцессора, обрати внимание на то, при каких условиях они выполняются.

Авторам подобных тем
По возможности ссылку.
Если ссылки нет:
1) на чём написана прога;
2) как именно она взломана (подробно);
3) что уже пробовал.
И вообще, от конкретики ещё никому не было плохо.

-----
Всем привет, я вернулся




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

Создано: 19 мая 2006 18:45 · Поправил: newborn
· Личное сообщение · #3

Bitfry пишет:
В чём собственно вопрос?


Личку глянь плиз.

Bitfry пишет:
А если строк 9?

Всё равно сколько.

П.С. Вообщем кто захочет помочь в личку черкните плиз.

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





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

Создано: 19 мая 2006 20:01
· Личное сообщение · #4

лови через createfile, может она CRC свой чекает..

-----
[nice coder and reverser]




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

Создано: 19 мая 2006 20:53
· Личное сообщение · #5

Ломал както прогу, был глюк на подобии этого. С виду прога работала но чет не правильно считала. Пмоему кривой лом чейто. Ломай с 0 сам



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

Создано: 19 мая 2006 22:21
· Личное сообщение · #6

Можно еще поискать константу 0,04 и -0,04. Это явно float, вот как он будет выглядеть:
0x3d23d70a это 0,04
0xbd23d70a это -0,04

-----
MicroSoft? Is it some kind of a toilet paper?




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

Создано: 19 мая 2006 23:07
· Личное сообщение · #7

WoLFeR
Эта наверно таже прога :=) , я решил её добить.

Hellspawn пишет:
лови через createfile, может она CRC свой чекает..

Не чекает 100%, проверил.

Tim пишет:
Можно еще поискать константу 0,04 и -0,04. Это явно float, вот как он будет выглядеть:
0x3d23d70a это 0,04
0xbd23d70a это -0,04

Как такой константы там нету, так как каждый раз пересчитывается с разными данными.

stahh пишет:
Ну сходу можно сказать - ищи сравнение с 9 или 10. Где-то в функции которая вводит строки. Не могу сказать точнее, т.к. прогу не видел. Или, если нет кмп, может быть счетчик. В той же функции.

Там нет разницы сколько строк, там прикол в подсчёте.


Вообщем вот ссыль на прогу:
rapidshare.de/files/20851679/Cc.rar.html
весит где-то 3,5 Мб

Защита состоит из ключа, длиной примерно 200 символов вида:
3A0D186D2B8D208FB1C6863141FD96CB941040
Что вообщем наталкивает на мыслю что это Хекс код, хотя хз

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

Если у кого-то получиться ломануть так что б прога запустилась нормально и были активны все меню и кнопки то это хорошо и соотвественно пол пути, остальные пол пути я могу росказать потом.

Для запуска проги она просит имя и код, надо ввести имя: admin

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

Очень надеюсь на вашу помощь. Заранее спасибо за ответы.

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





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

Создано: 20 мая 2006 00:05
· Личное сообщение · #8

Может быть такой вариант. Если ты убил какую-то ф-цию(колл занопил или рет на входе) которая учавствует в проверке регистрации. Так эта ф-ция может использоваться для нормальной работы. Вот в проге, которую Тим попросил доломать была такая фигня - прога регистрацию не проверяет, нормально пашет, но при завершении - вылетает. Посмотри в этом плане.
Качать не буду - лимит на подходе.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 20 мая 2006 10:01
· Личное сообщение · #9

Bitfry пишет:
разыскивается экстрасенс с большим опытом.

Тута я! Если округлить числа до целого, то результаты верные. Значит newborn при взломе мог просто отключить округление. Просто однажды я в Экселе для экономии места обрезал дробную часть, а потом долго и упорно искал недостающую цифирь



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

Создано: 20 мая 2006 10:03
· Личное сообщение · #10

stahh
Не, нечё не нопил и рэт не ставил, там всё проще - 1 байт меняется и всё, в процедуру там где этот байт меняется можно попасть с 2 мест, с 1 места попадаем всегда при загрузке програмы, а со второго некогда не попадаем, хотя я пробовал специально попасть. Так что я думаю что этот 1 байт не влеяет как таковой на всю защиту, хотя как говориться ХЗ.

Спецы, откликнитесь, помогите.

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




Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 20 мая 2006 10:20
· Личное сообщение · #11

newborn пишет:
1 байт меняется и всё, в процедуру

Ну батенька, это вряд ли так просто.
Процедура регистрации там такая : заполняете свои данные и программа закручивает это все в хекс.
Затем отсылаете на фирму, там естественно пришлют вам назад что-то. Это что-то обрабатывается и уж наверняка не один байт правится. Иначе авторы защиты полные идиоты.
Скорее всего просто прога после правки в целых полях поменяла тип поля на вещественный с 2 знаками или вообще это деньги(рубли.копейки). Прога на Дельфи написана, использует MD4 и MD5 - может и ломанется - только я пока не могу ей заниматься.




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

Создано: 20 мая 2006 10:40
· Личное сообщение · #12

Тута я! Если округлить числа до целого, то результаты верные. Значит newborn при взломе мог просто отключить округление.
Вот и я о том же. Ищи в этом направлении. Байт может высчитываться кучей способов - хрен надешь. Поэтому нужно или восстановить то, что ты поменял . Для юзанья из других ф-ций. Или искать другой способ обхода защиты.




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

Создано: 20 мая 2006 10:41
· Личное сообщение · #13

Скинь мне в личку всю инфу по проге. Может сёдня ночью скачаю.



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

Создано: 20 мая 2006 15:04
· Личное сообщение · #14

stahh
Кинул всю инфу тебе в личку. Если ещё кто захочет помочь всю инфу предоставлю.

Очень надеюсь на помощь.

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




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

Создано: 21 мая 2006 10:23
· Личное сообщение · #15

newborn пишет:
Если ещё кто захочет помочь всю инфу предоставлю

Кинь мне...
Или лучше выложи прям тут...




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

Создано: 21 мая 2006 18:45
· Личное сообщение · #16

Хрень какая-то. То не мог закачать, а теперь файла нету. Ну чо не залить на вебфайл? Не пашет у меня рапида.



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

Создано: 22 мая 2006 11:44
· Личное сообщение · #17

stahh пишет:
Хрень какая-то. То не мог закачать, а теперь файла нету. Ну чо не залить на вебфайл? Не пашет у меня рапида


Вот залил ещё на другой хостинг
files.to/get/50169/1411/Cc.rar

Вся инфа в личке

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




Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 22 мая 2006 12:09 · Поправил: tundra37
· Личное сообщение · #18

newborn
Пока только научился точки получать. Юзеров нашел в олли, взял последний заказ и смотрю "заявку на фурнитуру" - цифирь там другая, но пункты те же и кол-во с точками.
Хорошо бы все-таки в Акцесовскую базу взглянуть и обрабатывающие программы посмотреть. По крайней мере при экпорте в Эксель в пунктах кол-во дробные числа. Попробуй сделать для этого заказа "экспорт списания в формате Эксель" на лицензионной программе и проверь графу кол-во : есть ли там дробная часть.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 22 мая 2006 14:22 · Поправил: tundra37
· Личное сообщение · #19

Результаты исследования :
1) DeDe работает без проблем и отловить выдачу "испорченной картинки" можно и возможно найдется и "флаг", который ее портит.
2) Защита (это моя гипотеза) устроена так : сначала все запрещают, а потом при проверке лицензии открывают что нужно. newborn исправил флаг "работать разрешено" именно в том месте, где
все запрещают. Т.к. в этом месте одновременно идут и начальные настройки, то отловить что-то тяжело.
3) Пока можно поискать флаг, который портит обработку графы кол-во(там на стек кладут 'Kol') и подправить его. Но где гарантия, что он один.
+++++++++++++++++++++++++++++++
Вот начало программы, которая должна кончится разрешением

0062FD44 /$ 55 PUSH EBP

А вот заветный вызов с EDX=0, но только сюда мы не попадаем.

0063013D |> 33D2 XOR EDX,EDX
0063013F |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
00630142 |. E8 45200000 CALL Ccalc0.0063218C



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

Создано: 22 мая 2006 15:09 · Поправил: newborn
· Личное сообщение · #20

Вообщем методом научного тыка получили:

- прога где-то при запуске считывает какие-то данные про комп (скорей всего данные про проц, особенно потешило что розделяет оно данные на 2 типа AMD and Pentium с каждым билдом проца) было замечено на 3 машинах, на 2 пентюх и селерон а на одной Семпрон, так вот где Семпрон считает всё ок.

П.С. Для тех кто помогает ломать, типа прога в начале просит создать ключ и отослать его розработчику, я думаю где-то тут кроется считывание данных, а потом просит ввести ключ тоже идёт како-ето сравнение, может стоит копать в этом направлении ?

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




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

Создано: 22 мая 2006 18:56
· Личное сообщение · #21

Напомните пожалуйста, какие есть бряки на доступ к железу или считывания инфы о нём в ольке.

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




Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 22 мая 2006 20:23
· Личное сообщение · #22

004CF9B8 |. B8 01000000 MOV EAX,1
004CF9BD |. 0FA2 CPUID
004CF9BF |. AB STOS DWORD PTR ES:[EDI]
004CF9C0 |. 89D8 MOV EAX,EBX
004CF9C2 |. AB STOS DWORD PTR ES:[EDI]
004CF9C3 |. 89C8 MOV EAX,ECX
004CF9C5 |. AB STOS DWORD PTR ES:[EDI]
004CF9C6 |. 89D0 MOV EAX,EDX
004CF9C8 |. AB STOS DWORD PTR ES:[EDI]
====================
Только подсовывание ложных данных не помогает.




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

Создано: 23 мая 2006 20:15
· Личное сообщение · #23

А чо тема закрыта? НУ ладно, а то я тока скачал.
Прога уже работает или нет? Чот я не понял.
Вот интересное место
0062F5FC . 0000803F DD FLOAT 1.000000
0062F600 55 PUSH EBP
0062F601 8BEC MOV EBP, ESP
0062F603 83C4 F8 ADD ESP, -8
0062F606 |. 84D2 TEST DL, DL

Если забить эту ф-цию - прога запускается с кучей траблов, но рабочая. Тока я вообще не понял чо с ней делать. Как проверить эти цифры?



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 24 мая 2006 10:27
· Личное сообщение · #24

stahh пишет:
А чо тема закрыта?

Пока, нет. Известно, что флаг, который крак newborn меняет в 0, действительно проверяется при каждом рабочем действии. Но автор защиты добавил "козявку" - при вычислении "штук", причем не во всех местах, добавил корректировку их. Чтобы проверить правильность работы войди в Справочники->Заказы, выбери последний заказ двойным кликом и нажми кнопку Печать. Там будет длинный список - найди Заявки и последний пункт - Заявки ..... (Детали). В поле Кiл-... будут нецелые значения. Должно быть почти во всех полях - 5.



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

Создано: 24 мая 2006 11:32
· Личное сообщение · #25

tundra37
Абсолютно всё правельно, сук как достала эта прога, жаль бросить, потому как угрохал стоко времени на неё.

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




Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 24 мая 2006 19:44
· Личное сообщение · #26

newborn
1) Нашел я нечто похожее на "бяку" и решил еще раз в базу заглянуть. Так вот, в базе старой версии(где еще не было бяк) в таблице SkladKols в колонке Kol попадается много целых чисел. В базе новой версии эта таблица либо пустая, либо после вызова CCalc.exe заполняется полностью нецелыми числами. Причем дробь вида ххх.148 А вот на печать выдается ххх.3 Т.е. если автор сильно нагадил, то либо он как-то "шифрует" целые числа в базе и непонятно, где искать бяку - с Акцессовской базой он SQL-запросами общается - возможно там он и зашил "конвертор". Короче - большая головная боль. Посмотри все-таки в лицензионной базе эту таблицу ?!
2) Прокоментирую то место, где "гадят". Может кто быстрее меня докопается до сути.

====================================
005F104C /$ 55 PUSH EBP
005F104D |. 8BEC MOV EBP,ESP
005F104F |. 83C4 F0 ADD ESP,-10
005F1052 |. 53 PUSH EBX
005F1053 |. 894D F4 MOV [LOCAL.3],ECX
005F1056 |. 8955 F8 MOV [LOCAL.2],EDX
005F1059 |. 8945 FC MOV [LOCAL.1],EAX
005F105C |. 8D45 F4 LEA EAX,[LOCAL.3]
005F105F |. E8 AC48E1FF CALL Ccalc.00405910
Здесть грузят название колонки Кол-во.

!!!!!!!!!!!!!
005F10C3 |. E8 3C3DE1FF CALL Ccalc.00404E04
2.3 Double
Здесь возвращают 2.3 вместо 1 ( это только моя гипотеза), но можно посмотреть, что у вас тут.
Вроде с 2.3 лажа - она всегда ее возвращает.

Эта прога вызывается много раз из разных мест, но в нашем случае она меняет 'Kol' на 'KOL'
- это вроде нормально.

00404E0E . 50 PUSH EAX
00404E0F . 52 PUSH EDX
00404E10 . 8B42 FC MOV EAX,DWORD PTR DS:[EDX-4]
00404E13 . E8 5C000000 CALL Ccalc.00404E74
00404E18 . 89C2 MOV EDX,EAX
00404E1A . 58 POP EAX
00404E1B . 52 PUSH EDX
00404E1C . 8B48 FC MOV ECX,DWORD PTR DS:[EAX-4]
00404E1F . E8 B8E2FFFF CALL Ccalc.004030DC


Вот таблица в которой КО . Может тут что найдется.

01005AE8 EA E3 2E 00 D0 4C 00 01 01 00 00 00 03 00 00 00 кг..РL.......
01005AF8 E3 F0 2E 00 D0 4C 00 01 01 00 00 00 02 00 00 00 гр..РL.......
...................................................................... ............................................
01005B48 41 72 74 00 D0 4C 00 01 01 00 00 00 03 00 00 00 Art.РL.......
01005B58 4B 4F 00 00 D0 4C 00 01 44 44 4D 00 60 97 02 01 KO..РL.DDM.`—



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 24 мая 2006 20:31 · Поправил: tundra37
· Личное сообщение · #27

005E05BD |> \8B45 E8 |MOV EAX,[LOCAL.6]
005E05C0 |. BA 10095E00 |MOV EDX,Ccalc.005E0910 ; ASCII "KOL"
005E05C5 |. E8 F64BE2FF |CALL Ccalc.004051C0
005E05CA EB 40 JNZ SHORT Ccalc.005E060C
======================================
Вот здесь происходит анализ имени поля, и если оно KOL, то JNZ не срабатывает.
Если заменить его на JMP, то все на печати нормально, только поле Кол-во(которое гадится) остается пустым. Стало быть надо анализировать CALL Ccalc.004051C0 - там вроде очень сложная проверка
трех букв и кусок 005E05CС - 5E060C в котором "гадские" числа переводятся в текст.
Не исключено конечно, что правильное заполнение поля просто отключено аналогичным способом, ну тогда ищем похожую комбинашку :
005DE6DE |> \8B45 E8 |MOV EAX,[LOCAL.6]
005DE6E1 |. BA A4F25D00 |MOV EDX,Ccalc.005DF2A4 ; ASCII "KOL"
005DE6E6 |. E8 D56AE2FF |CALL Ccalc.004051C0
005DE6EB |. 75 31 |JNZ SHORT Ccalc.005DE71E
005DE6ED |. 83BD 68FFFFFF>|CMP [LOCAL.38],0
005DE6F4 |. 74 28 |JE SHORT Ccalc.005DE71E

Это место отрабатывает на соседней заявке, где Кол-во правильное. Но на нашей заявке(Детали) сюда мы просто не попадаем. Надо копать почему Хотя может, что все сложнее



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

Создано: 25 мая 2006 10:53
· Личное сообщение · #28

tundra37
Именно это я копал вчера часа 4. Я думаю всё таки проверка не там, а при загрузке проги, там вроде выше кто-то написал, что на при загрузке с начала всё запрещает, а потом розрешает, только вот тот байт что меняется для запуска проги видать только запускает прогу, а вот идея появилась поискать такое же для печати. Хотя я тут могу дико ошибаться.

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

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





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

Создано: 25 мая 2006 12:02
· Личное сообщение · #29

Непонятно. Даже если вы найдете проверки этих КОЛ, это прогу полностью не оживит. Или я чот не понял. У меня при том патче, что newborn показал, прога запускается, но ни кнопки, ни эдиты не активны.
Кто-нить щупал проверку серийника. Вопрос к newborn.Ты с рабочей прогой имеешь дело. Я не могу отловить считывание ключа из окна. Второе. Ключ состоит из символов ABCDEF1234567890, что наводит на мысль, что это не просто ключ, а набор команд. Не понятно только, как команды могут отличаться в зависимости от железа. Хотя - может половина мусора, и всего пара команд нужных для запуска рабочей проги. Попробуй на рабочей проге отследить считывание ключа в память. Думаю, дальше этот ключ по частям помещается куда-то, а вот потом должен идти переход на полнофункциональную прогу. Попробуй это дело отловить.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 25 мая 2006 12:54
· Личное сообщение · #30

newborn пишет:
с начала всё запрещает

Это я и писал. Нас здесь всего трое осталось.
newborn пишет:
Именно это я копал вчера часа 4.

Там вроде ничего не вычисляется, только цифры готовые тащит. Значит будем смотреть, где они вычисляются. Тем более теперь есть с чем сравнивать - рядышком числа целые и правильные.

stahh пишет:
Кто-нить щупал проверку серийника.

Я пытался, но бросил. Похоже там часть информации защифровано, часть хеши всякие. Сам серийник уже есть в ini-файле, только последняя цифра должна быть 3( а не 4). Правда у меня с патчем работало и с 4-кой, только названия фирмы не было. Еще идет привязка к имени компа и номеру диска, но тоже не удалось отследить.
Кстати, по адресу 0062F600 - подпрограмма которая все инициализирует и забивать ее не надо. В ней флаг обнуляется( т.е. работать можно), но потом в другом месте устанавливается в 1 - там где патч newborn


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