Сейчас на форуме: 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 ~




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

Создано: 25 мая 2006 17:16
· Личное сообщение · #2

00619F05 |. 8B45 FC MOV EAX,[LOCAL.1]
00619F08 |. 8B55 F4 MOV EDX,[LOCAL.3]
00619F0B |. 8B4A 20 MOV ECX,DWORD PTR DS:[EDX+20]
00619F0E |. 8948 20 MOV DWORD PTR DS:[EAX+20],ECX
00619F11 |. 8B4A 24 MOV ECX,DWORD PTR DS:[EDX+24]
00619F14 |. 8948 24 MOV DWORD PTR DS:[EAX+24],ECX
==========================
Вот тут происходит пересылка данных. Существует магическое число 1.298 - оно заменяет 1 в "порченных количествах". Сейчас проверю, что будет если поставить условный останов и поголовную замену 1.298 на 1. Просто уже замучился отлавливать источник - прошел только одну пересылку.
Олька уже два раза висла
Если моя гипотеза правильная, то вместо 7.3 получится 7 ( где-то еще 0.298 набрасывается).
Портится по формуле округляем[N*(1+e)+0.4999999] +e , где e=0.298
Если е заменить на 0, то все будет правильно считать. Осталось найти откуда оно берется.
Кажись понял - из кода. Для правильного кода получается 0, а для неправильного - у всех разное к сожалению.



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

Создано: 25 мая 2006 17:57 · Поправил: tundra37
· Личное сообщение · #3

Что-то вроде этого. Если присваивать 1, и почти 1, получается следующее : вместо 5 - 6.3, вместо 4 - 5.3 и 1 чистая. Т.е. копаю правильно, но неглубоко Придется дальше копать -



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

Создано: 26 мая 2006 18:17
· Личное сообщение · #4

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




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

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

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




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

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

newborn Скока прога хоть стоит?

Вообще код лихо закручен. Как будто прогу писали на асме, а не на делфи. Все критичные места зашиты в основной код и переплетены. Я уже думал об инлайне.




Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

Создано: 29 мая 2006 13:09
· Личное сообщение · #7

crc-проверка?

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.




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

Создано: 29 мая 2006 13:26
· Личное сообщение · #8

Crawler пишет:
crc-проверка?

Написано же - код регистрации используется в алгоритме. Прямо как у Алладина в инструкциях


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