Jump to content

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


Electr0
 Share

Recommended Posts

иногда при декомпиляции 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 };

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...