#51 Re: О сайте и форумах » Вопросы и предложения » 22-12-2011 16:02

Такое действительно возможно. Если так, я сильно извиняюсь.

Если это был первый пост - это вполне вероятно. Обычно я смотрю на дату регистрации и количество постов (ну, и на содержимое поста). Но, в общем потоке вполне мог ошибиться (ежедневно удаляется порядка десятка спамеров).

#53 Re: Справочная информация » Ресурсы и структуры GTA IV » 13-12-2011 23:29

Основная обновляемая база - EfLC 1.1.2.0
Увы, последние два месяца, на новой работе так напрягают, что я уже забыл, когда послений раз в дизассемблер залезал

#54 Re: Программирование » Интересный вопрос » 05-12-2011 18:38

__cdecl

(иначе, невозможны были бы функции с переменным числом параметров, например, printf)

#55 Re: Серия GTA » XLive Wrapper / XLiveLess » 05-12-2011 13:06

@Tarith - Попробовать можно.
Нужен .exe-шник (выложить куда-нибудь и кинуть мне ссылку).

Скорее всего, достаточно будет убрать проверку результата XLiveUnprotectData

#56 Re: Вопросы по скриптингу » Один вопрос » 27-11-2011 00:51

@Den_spb - Если верить debug info из GTA III, эта структура, оригинально называлась CPlayerInfo.
Их не пул, а массив. Для III/VC/SA, в массиве два элемента (на консолях был режим с двумя игроками, каждый со своего пада). Для IV - 16/32 объекта (консоли/PC).

#57 Re: Вопросы по скриптингу » Один вопрос » 19-11-2011 20:12

Возможно, это от незнания о FORCE_WEATHER (не помню, как он в опкодах называется)

#58 Re: Работа с памятью, EXE » Вопрос по памяти » 18-11-2011 03:06

@Wire - Все структуры с описаниями есть в RenderWare SDK
по смещению +0x18 в любом Entity хранится указатель либо на RpClump, либо RpAtomic.
BoundBox возвращается виртуальным методом _m24 в CEntity и всех его потомках.

#59 Re: Программы для GTA » scocl - компилятор SCO скриптов для GTA IV » 13-11-2011 18:37

Не _делал_. Делаю.  Но, как говорится - чуть-чуть не считается.

Я всегда говорил, что времени у меня на это постоянно не хватает, и если его сделает кто-то другой, я буду только рад.
Особенно, после того, как будет готов нормальный декомпилятор, и можно будет писать полноценные миссии и сюжет (в смысле, будет нормальное построение структур и глобального сегмента, а также сигнатурный анализатор).

#60 Re: Работа с памятью, EXE » Улучшенная gta_sa.exe » 03-11-2011 07:25

[@~AquaZ~ - Можно, но все места, использующие __thiscall придется заменять ассемблерными вставками, а их там много.

gta_dll оно называется по историческим причинам. Вернее, в настоящий момент оно называется sa_dll, чтобы не путать с vc_dll и iv_dll.

#61 Re: Беседка » Распространение модов: правовая сторона вопроса » 27-10-2011 03:37

@Yoda, @~AquaZ~ -

Распространение компакта (не)легально настолько же, насколько и любого другого No-DVD.
Оригинальный .exe - шифрованный, и сделать с ним что-то достаточно тяжело.

То, что называется 1.0US (как и 1.1US и 1.0EU) - это не до конца расшифрованные .exe соответствующей версии. Т.е., в них осталось ~10M мусора и ~3000 шифрованных фрагментов кода, которые расшифровываются на базе этого мусора. В компакте - все эти фрагменты расшифрованы и мусор выкинут (ох, и задолбался же я это делать), так что он более оригинальный чем 1.0US, который брался за основу wink

Прикладывать к моду его не стоит; на крайний случай, можно выложить на какой-нибудь файлообменник и дать ссылку.

#62 Re: Вопросы по скриптингу » Один вопрос » 22-10-2011 03:09

@Sw[ee]t, @Voron295 -

#include <windows.h>

BOOL APIENTRY DllMain( HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved) {
	switch (ul_reason_for_call) {
	case DLL_PROCESS_ATTACH:
            // инициализируемся
            break;
	case DLL_PROCESS_DETACH:
            // освобождаем ресурсы
            break;
	}
	return true;
}

#63 Re: Работа с памятью, EXE » Вопрос по памяти » 18-10-2011 23:02

@DK22Pac - применить функцию для всех атомиков в клампе; применить функцию ко всем объектам фрейма.

#64 Re: Работа с памятью, EXE » Вопрос по памяти » 16-10-2011 10:51

@Shag - соответствующий объект должен присутствовать в .dff

@DK22Pac - про renderPrimitive (как и про RwRenderStateSet), лучше всего заглянуть в документацию (там все написано подробно). Аналогично с RpAtomic -> RpClump -> RwFrame

вкратце, clump - это набор atomic-ов

#65 Re: Беседка » WiFi в Linux » 15-10-2011 12:40

отказывается ставиться с какой формулировкой?

#66 Re: Беседка » WiFi в Linux » 11-10-2011 20:43

С настройкой линукса не справляется даже народ, который точки доступа делает.
А что. на ноуте виндовой наклейки нету?

#67 Re: Беседка » WiFi в Linux » 11-10-2011 18:04

Снести линукс. Линукс и WiFi - вещи слабосовместимые.
Если не хочется виндов - поставить FreeBSD.

#68 Re: Беседка » Вибрация ноутбука » 09-10-2011 10:43

Да, только заземление должно быть нормальным, как положено по СНИПам (а не "провод в цветочный горшок" wink )

#69 Re: Беседка » Вибрация ноутбука » 09-10-2011 07:54

Это утечка напряжения в фильтре блока питания. (Там на входе стоят два конденсатора).
Заземление решает эту проблему. (и многие другие).

Теоретически, ничего опасного в этом нет, но за корпус и за батарею одновременно браться сильно не рекомендуется).

#70 Re: Работа с памятью, EXE » Вопрос по памяти » 03-10-2011 11:10

@DK22Pac - Кусок какого-то кода wink
Кусок слишком мелкий, чтобы сказать, что он делает

_vB0 = ??? / 32767.f * 0.3f + 0.7f * static_cast<float>(_vB0) / 65535.f
RwEngineInstance->RwRenderStateSet (rwRENDERSTATETEXTURERASTER, ????)

??? - то, что отсутствует в этом куске.

PS. Сам-то кусок я нашел, но он противный, нужно разбирать почти всю функцию, чтобы понять, что там делается. Там цикл по массиву структур над которым хорошо поработал оптимизатор и есть куча указателей в середину структур.

#71 Re: Справочная информация » Организация и анализ структур в коде » 29-09-2011 05:39

http://www.hexblog.com/wp-content/uploa … hinsky.pdf
Рекомендуется. Здесь есть еще несколько вещей, с которыми лично я не сталкивался.

#72 Re: Вопросы по скриптингу » Один вопрос » 28-09-2011 00:51

444andrei444 wrote:

У меня нету базы listenera напишите, что я должен изменить ну какие адреса. (или объясните как загрузить базу в программу ida pro 6.1 demo)

demo не позволяет загружать сохраненные базы (ограничение демо-версии).
Ищи не-демо (рутрекер в помощь).

#73 Re: Вопросы по скриптингу » Один вопрос » 27-09-2011 07:23

@444andrei444 - погоду не смотрел, а с маркерами - это багофича. В оригинале, предполагалось, что цвет маркера - это индекс в таблице от 0, до 8. На практике, если значение больше восьми, то оно возвращается просто так, без обращений к таблице.

#74 Re: Программирование » DLL Loader » 25-09-2011 20:09

BritishColonist wrote:

есть где-нибудь годный гайд с примерами на тему инжекта кода?
хочу повторить код, который есть в стандартном exe (естественно вызывать его в нужное мне время и с нужными мне параметрами), но я не знаю, как найденный код перенести на C++ (сложность в том, чтобы обозначить границы действительно нужного ассемблерного кода).
...
если нет гайдов, не мог бы кто-нибудь привести пример описания у себя функции с параметрами (здесь уже речь об описании прототипа функции, без использования ассемблерных вставок)?

Гайда нет. Все, что могу предложить - посмотреть, как я это делаю в gta_sa_dll или в openRage.


BritishColonist wrote:

и ещё. когда копаю эти функции, нередко натыкаюсь на "ненужные" параметры перед собственно вызовом функции по адресу (наряду с важными для функции значениями (передаваемыми параметрами) в стек пихаются какие-нибудь нули или единицы (независимо от параметров)). как у себя описывать такие функции (тут уже не куски кода, а описание функции на C++ с указанием её адреса в пространстве)? в смысле, есть функция void FUNCTION (int, float). я точно уверен, что важны два параметра и могу определить их в отладчике, однако в коде зачем-то в стек пихается больше значений, чем два. в общем, я даже не знаю как сформулировать вопрос grin как приложение понимает, что функция, вызываемая как FUNCTION (10, 234.55) на самом деле принимает только 2 параметра и как мне описать такую FUNCTION, если я наткнусь на непонятные "лишние" параметры в стеке?

http://sannybuilder.com/forums/viewtopic.php?id=159 - здесь есть все, кроме, собственно, примеров.

В дополнение к этому, стоит сказать, что для __cdecl функций можно описывать параметры произвольно.  Для __stdcall и __thiscall, важно, чтобы совпадал общий размер параметров. Тип незадействованных параметров - не критичен.

BritishColonist wrote:

ещё. предположим, я хочу повторить функцию лечения игрока (например, ту, которая срабатывает при покупке газировки). вот я нашёл, какая операция меняет собственно значение здоровья игрока. где-то выше этого кода стопроцентно всегда идёт нужный для работы функции код. как понять, где этот нужный код начинается? неужели нужен весь код до первого встречного выше ret?

Можно, конечно. заменить только несколько команд через __declspec(naked). На практике, это делать очень сильно не рекомендуется. Подавляющее большинство функций в отреверсенном виде занимает меньше ста строк. Разводить ради этого возню с ассемблером и регистрами - непродуктивно.

Впрочем, из этого правила есть исключение. новые компиляторы могут не соблюдать calling convention для внутренних функций и передавать параметры в произвольных регистрах. В этом случае, корректный реверсин требует переписывания всех "неправильных" функций, и общий объем получаться вполне ощутимым. В этом случае, naked функции оправданы.

#75 Re: Вопросы по скриптингу » Один вопрос » 23-09-2011 03:33

@444andrei444 - Почему же? Нужно просто найти эту текстуру в памяти и заменить на свою.

auto generateLicenseplateMaterial = reinterpret_cast<RpMaterial * (__cdecl *)(CClump *, char *, DWORD)>(0x6FE0F0);

Board footer

Powered by FluxBB