Все посты %s в %S - AMK Team
Перейти к контенту

Редактирование движка X-Ray


Rolan

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

Уважаемые знатоки, а не могли бы Вы в промежутках между дебатами выложить или хотя-бы порекомендовать литературу

по IDA , ведь наверняка у вас есть свои подборки того, что легче и понятней переваривается. Может еще на примере того-же

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

страждущих и тема будет жить.

Поделиться этим сообщением


Ссылка на сообщение

Призрак, а dd 0.2 - это действительно параметр плотности? Я в этом ничего не понимаю, просто как мартышка за тобой

повторил манипуляции с IDA - (IDA Pro 5.2.0.908(32-bit) - но у меня другие значения r__detail_density,

 

fit_100993F4 dd 6.0000002e-1

 

xrRender_R1.dll из первого патча ЗП

Изменено пользователем nuklia

Поделиться этим сообщением


Ссылка на сообщение

Народ, ткните носом пож. "Data format" -> "Single Float (32 bit)" что-то найти не могу контекстное меню НЕХ в IDA.

Поделиться этим сообщением


Ссылка на сообщение

Призрак,

Находится в ХЕКС_ВИЕВ, правая кнопка мыши...."Data format" -> "Single Float (32 bit)"

У меня там только Сopy и Sunhronize winh -> IDA View, в чем проблема?

Поделиться этим сообщением


Ссылка на сообщение

Народ, может все-таки подскажет кто, почему в HEX View может быть недоступно редактирование?

(IDA Pro 5.2.0.908 + Hex-Rays 1.0) В контекстном меню Hех View только Сopy и Sunhronize winh -> IDA View,

и никакого намека на Data format" -> "Single Float (32 bit)

 

Поделиться этим сообщением


Ссылка на сообщение

Попробовал на ЗП плотность травы увеличивать, так-же нашел и указал другую переменную со значением dd 0.2 -

плотность судя по движку плотности травы увеличилась процентов на 30. Ковырял xrRender_r1 (идет для статического освещения).

А родная переменная несколько раз применяется в других функциях(проверяется установкой курсора на имени

переменной fit_xxxxxxx и нажатием клавиши Х)

Вот только не нашел чтото bpatch - dll-ку пришлось править в НЕХ-ке - благо в файле отличий указан адрес и что на что менять,

может кто даст ссылку на bpatch.

Поделиться этим сообщением


Ссылка на сообщение

_Призрак_, пробовал по твоему тутору создать новую переменную и сослаться на нее, но возникла некая

загадка; моя переменная с именем proba

.ndata:100C9000 ; Section 7. (virtual address 000C9000)

.ndata:100C9000 ; Virtual size : 00001000 ( 4096.)

.ndata:100C9000 ; Section size in file : 00001000 ( 4096.)

.ndata:100C9000 ; Offset to raw data for section: 000B6000

.ndata:100C9000 ; Flags E0000060: Text Data Executable Readable Writable

.ndata:100C9000 ; Alignment : default

.ndata:100C9000 ; ===========================================================================

.ndata:100C9000

.ndata:100C9000 ; Segment type: Pure code

.ndata:100C9000 ; Segment permissions: Read/Write/Execute

.ndata:100C9000 _ndata segment para public 'CODE' use32

.ndata:100C9000 assume cs:_ndata

.ndata:100C9000 ;org 100C9000h

.ndata:100C9000 assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing

.ndata:100C9000 proba dd 0.02

.ndata:100C9004 db 0

.ndata:100C9005 db 0

.ndata:100C9006 db 0

.ndata:100C9007 db 0

Но когда я ее пытаюсь применить для значения плотности травы, то получаю:

.text:10001F66 fld ds:flt_100993F4

.text:10001F6C or dword_100B90DC, eax

.text:10001F72 sub esp, 8

.text:10001F75 fstp [esp+30h+var_2C]

.text:10001F79 mov ecx, offset unk_100B9004

.text:10001F7E fld dword ptr ds:algn_100A1BDF+27421h

.text:10001F84 fstp [esp+30h+var_30]

.text:10001F87 push offset aSs ; "ЪЩЩ>"

.text:10001F8C push offset aR__detail_dens ; "r__detail_density"

Надеялся увидеть fld ds:proba а получилось fld dword ptr ds:algn_100A1BDF+27421h

Хотя трава стала гуще, тем не менее такая строка смущает. А как у тебя это выглядит?

Поделиться этим сообщением


Ссылка на сообщение

_Призрак_, я так понимаю, что сумма чисел 100A1BDF+27421 = 100C9000(адрес моей переменной - в шестнадцатиричной

арифметике не силен)? А как расшифровать dword ptr ds:algn_ - что сие значит на удобоваримом языке? И можно-ли как-то

заставить IDA прописать адрес новой переменной более внятно - fld ds:proba.

Извиняюсь за назойливость.

 

Вопрос снимается - открыл свою откорректированную dll-ку в IDA - все стало на свои места:

моя переменная приобрела нормальное имя и ссылку :

.ndata:100C9000 flt_100C9000 dd 0.02 ; DATA XREF: sub_10001CE0+29Er

.ndata:100C9004 align 1000h

.ndata:100C9004 _ndata ends

и по ссылке все ОК

.text:10001F7E fld ds:flt_100C9000

.text:10001F84 fstp [esp+30h+var_30]

.text:10001F87 push offset aSs ; "ЪЩЩ>"

.text:10001F8C push offset aR__detail_dens ; "r__detail_density"

Изменено пользователем nuklia

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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