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

 eXeL@B —› Вопросы новичков —› Требуется помощь в разборе формата
Посл.ответ Сообщение

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

Создано: 12 сентября 2011 14:40
· Личное сообщение · #1

Доброго времени !!!

Взялся разбирать формат одной программы, в двух словах сохраняет параметры процессов в файл и позволяет выводить графики. Так как накладно устанавливать данную программу на всех компьютерах решил написать свой утиль. Формат вроде не сложный - почти все понятно, но:
- я нашел место где храниться значение - например 1000 - соответствует 7A 44 0A.
Решил пойти другим путем, заставив программу писать от 1 до ... получил в итоге:

1 - 00 80 3F
2 - 00 00 40
3 - 00 40 40
4 - 00 80 40
5 - 00 AO 40
6 - 00 C0 40
7 - 00 E0 40
8 - 00 00 41
9 - 00 10 41
10 - 00 20 41
11 - 00 30 41
12 - 00 40 41
13 - 00 50 41
14 - 00 60 41
15 - 00 70 41
16 - 00 80 41
17 - 00 88 41

Вроде все логично , но на последней и первой строчке я впух, господа реверсеры вопрос - каким способом производится расчет в данном формате ?

(на всякий случай добавил еще:
7A 44 0A - 1000
3C 1C 46 - 9999
00 FA 44 - 2000
80 3B 45 - 3000)




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 12 сентября 2011 15:51
· Личное сообщение · #2

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

-----
Stuck to the plan, always think that we would stand up, never ran.





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

Создано: 12 сентября 2011 15:56
· Личное сообщение · #3

Надо брать и саму программу смотреть, как она из одного значения получает другое. Уже 33 раза тут писали, что не кошерно гадать сидеть по входу и выходу.



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

Создано: 12 сентября 2011 15:58
· Личное сообщение · #4

С десятыми и сотыми целого не реально - попробовал тупо поменять значение одной цифры +1 - улетает в миллионы
У меня мысля - может здесь какая арифметическая операция ? Пытал весь день инженеров - пугают их системы отличные от десятичной ...



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

Создано: 12 сентября 2011 16:00
· Личное сообщение · #5

Archer

Скада система iFix 3.5 - работает с ключиками сентинел, рабочие машины операторов - время позаниматься немного имеется, могу получить любое значение любого числа, ставить отладчик - чтобы отвалить процесс нереально...



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

Создано: 12 сентября 2011 16:41 · Поправил: foxmail
· Личное сообщение · #6

testprogs, значения не 3-х а 4-х байтные с плавающей запятой. Для конвертации значения используй fld и fistp

80f9_12.09.2011_EXELAB.rU.tgz - FLOAT2DWORD.exe

| Сообщение посчитали полезным: testprogs

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

Создано: 12 сентября 2011 16:43 · Поправил: testprogs
· Личное сообщение · #7

foxmail

А пример можно - лучше дельфи\паскаль\С++ ?

Add
Ну блин объяснил так объяснил - извиняюсь перед всеми - внимание на впереди стоящий нолик не обратил, foxmail - спасибо, впервые взялся за такое дело, так что не обессудьте...



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

Создано: 12 сентября 2011 17:13
· Личное сообщение · #8

testprogs если у тя в массиве байт храняца цифры то
FloatToStr(PSingle(@bData[0])^) даст тебе значение.. гдето так

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....





Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 12 сентября 2011 17:38
· Личное сообщение · #9

testprogs пишет:
писать от 1 до ... получил в итоге

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

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




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

Создано: 12 сентября 2011 17:44
· Личное сообщение · #10

Isaev

Не реально цифры, пробовал менять - меняется и график, время считывания там в другом месте, тоже поддается редактированию - но пока для меня важно - это значения, foxmail все правильно сказал (еще походу я значение 1000 - 7A 44 0A перепутал), кому интересно завтра могу целого файла залить
Сейчас перевожу все это дело в Дельфи



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

Создано: 14 сентября 2011 17:37
· Личное сообщение · #11

В общем во всем разобрался - так что не вижу смысла в данной теме, закрою, foxmail - спасибо за подсказки и за исходники


 eXeL@B —› Вопросы новичков —› Требуется помощь в разборе формата
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати