Перейти к публикации

Декомпиляция DEC => HEX => FLOAT


Electr0

Рекомендованные сообщения

иногда при декомпиляции lysis'ом  исходников плагинов можно увидеть такое:

 

if (1097859072 == damage && (0.0 == damageForce[0] && 0.0 == damageForce[1] && 0.0 == damageForce[2]))

а на самом деле:

#define CHARGER_DMG_POUND       15.0
else if (damage == CHARGER_DMG_POUND && (damageForce[0] == 0.0 && damageForce[1] == 0.0 && damageForce[2] == 0.0))

выходит вместо 15.0 там оказалось 1097859072.

 

в чем дело я не знаю, но нашел способ конвертировать такие случаи, если мы точно знаем что там должен быть float: нашел темку на немецком https://www.sps-forum.de/hochsprachen-opc/71602-doppelwort-dbd-labview-auslesen.html и после чего понял что делать:

Цитата

1097859072 (dec) = 0x41700000 (hex) = 15.0

 

1. Конвертируем 1097859072 из dec в hex через Decimal to Hexadecimal converter, итоговое значение берем из поля Hex signed 2's complement получилось = 41700000

2. 41700000 конвертируем в float через IEEE-754 Floating Point Converter, вставив наше число в поле Hexadecimal Representation получилось 15.0 в поле Decimal representation

 

 

точно такая же проблема возникла при декомпиляции плагина l4d2_tank_protector.sp

new Float:c2m2SafePlace[3] = { -1008566272, -979118080, 1107296256 };
new Float:c5m2SafePlace[3] = { -972148736, -974813184, 1092616192 };
new Float:c5m2SafePlace2[3] = { -971503616, -977342464, 1126301696 };
new Float:c5m3SafePlace[3] = { 1168080896, 1167876096, 1092616192 };
new Float:c2m2Angles[3] = { 0, 1127153664, 0 };

а должно быть:

new Float:c2m2SafePlace[3] = { -453.0, -5243.0, 32.0 };
new Float:c5m2SafePlace[3] = { -9100.0, -7345.0, 10.0 };
new Float:c5m2SafePlace2[3] = { -9730.0, -6110.0, 162.0 };
new Float:c5m3SafePlace[3] = { 5104.0, 5004.0, 10.0 };
new Float:c2m2Angles[3] = { 0.0, 175.0, 0.0 };

 

Ссылка на комментарий
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в теме...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...