Можно ли менять разрешение окна уо?

ASM, Perl, IRW, other injections and script modules

Moderators: Murderator+, Murderator

Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

wap2 wrote:
Grin wrote:

Code: Select all

...

вот так
Не подскажешь, чем и как внести это в клиент?

Это уже есть в клиенте.

Нужно просто немного подредактировать под себя.

Я бы о своими мизерными знаниями ассемблера, а вернее вообще не применяя их, поменял бы 280h и 1E0h (640 и 480 соответственно, просто в HEX) на нужные циферки и когда в уо ставил бы 640х480 - теоретически появлялось бы прописанное мной разрешение -)
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
Eventualis
Posts: 123
Joined: 2008-03-03 22:49:34
Contact:

Post by Eventualis »

вот и вопрос в том как подредактировать, я хз даже чем клиент открыть 8) а хотя удобней было бы так как у Грина - вписывать в конфиг
wap2
Posts: 91
Joined: 2006-07-29 19:08:18

Post by wap2 »

Destruction wrote:
wap2 wrote:
Grin wrote:

Code: Select all

...

вот так
Не подскажешь, чем и как внести это в клиент?

Это уже есть в клиенте.

Нужно просто немного подредактировать под себя.

Я бы о своими мизерными знаниями ассемблера, а вернее вообще не применяя их, поменял бы 280h и 1E0h (640 и 480 соответственно, просто в HEX) на нужные циферки и когда в уо ставил бы 640х480 - теоретически появлялось бы прописанное мной разрешение -)
Нммм... Тогда чем его открывать для редактирования? Я просто в программировании не разбираюсь...
For flood and honour. Хорошо флудить - это тоже искусство.
В стадии разработки: http://uorpg.net
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Любым Hex-редактором -)
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
wap2
Posts: 91
Joined: 2006-07-29 19:08:18

Post by wap2 »

Destruction wrote:Любым Hex-редактором -)
Ну открываю. Вижу кучу мало понятных цифорок( http://www.softsoft.ru/image.php?url=ht ... -large.jpg ), а дальше-то что? :)
For flood and honour. Хорошо флудить - это тоже искусство.
В стадии разработки: http://uorpg.net
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Переходишь к нужному адресу и правишь байтики -)
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
wap2
Posts: 91
Joined: 2006-07-29 19:08:18

Post by wap2 »

Destruction wrote:Переходишь к нужному адресу и правишь байтики -)
Так ничего и не понял. За что ведь какие байтики отвечают на них не написано. А в разделе текста сделав поиск по "800" нахожу только само сообщение, которое выскакивает, если поменять разрешение. Ничего подобное написаному Грином в редакторе не видно. Правда большая часть текста - просто ничего не значащий набор символов... Снята ли кодировка точно не знаю, но вроде должна быть снята. Вроде...
For flood and honour. Хорошо флудить - это тоже искусство.
В стадии разработки: http://uorpg.net
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Grin привёл листинг дизассемблера.. Не знаю для какой версии, в 6.0.10 такого не нашёл.

И вообще, проги править - это вам не хухры-мухры.

Кроме того, логично искать не так как ты искал, а искать конкретные байты, т.к. это HEX-редактор то и указывать нужно циферки в шестнадцатеричном формате -)

В общем вечерком гляну какой-нибудь 2.0.3, попробую пошаманить.

PS: Вы меня не слушайте, я в этом совсем не разбираюсь..
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

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

А кто разбирается в листинге асма, тот и так все поймет.

В конечном итоге весь патч сводится к функции вида

Code: Select all

GameWindowSize  proc near 
mov     eax, [esp+4]
mov     dword_50CC3C, eax
mov     eax, [esp+8]
mov     dword_50CC40, eax
retn

все лишнее просто игнорируется. аргументы функции не подвергаются никакой проверке.
Eventualis
Posts: 123
Joined: 2008-03-03 22:49:34
Contact:

Post by Eventualis »

Грин, если тебе это не сложно, исправь клиент 4,11, как это делал с 6061, пригодиться всем раз и навсегда.
http://fileland.ru/file_id-239878
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

HIEW, поискал cmp eax, 320h и всего делов...

Скачать файл cli_4.exe

PS функция сопрежена с другой посредством перехода (jmp) тож надо учесть...
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Code: Select all

.text:004DB810 sub_4DB810      proc near               ; CODE XREF: sub_454360+8Fp
.text:004DB810                                         ; strstreambuf::strstreambuf(char *,int,char *)+A4p ...
.text:004DB810
.text:004DB810 arg_0           = dword ptr  4
.text:004DB810 arg_4           = dword ptr  8
.text:004DB810
.text:004DB810                 mov     eax, [esp+arg_0]
.text:004DB814                 mov     edx, 280h
.text:004DB819                 cmp     eax, edx
.text:004DB81B                 mov     ecx, 1E0h
.text:004DB820                 jnz     short loc_4DB837
.text:004DB822                 mov     eax, [esp+arg_4]
.text:004DB826
.text:004DB826 loc_4DB826:                             ; CODE XREF: sub_4DB810+2Cj
.text:004DB826                                         ; sub_4DB810+3Bj
.text:004DB826                 mov     dword_5AA40C, edx
.text:004DB82C                 mov     dword_5AA410, ecx
.text:004DB832
.text:004DB832 loc_4DB832:                             ; CODE XREF: sub_4DB810+4Cj
.text:004DB832                 jmp     sub_47AF10
.text:004DB837 ; ---------------------------------------------------------------------------
.text:004DB837
.text:004DB837 loc_4DB837:                             ; CODE XREF: sub_4DB810+10j
.text:004DB837                 cmp     eax, 320h
.text:004DB83C                 jnz     short loc_4DB826
.text:004DB83E                 push    esi
.text:004DB83F                 mov     esi, [esp+4+arg_4]
.text:004DB843                 mov     eax, 258h
.text:004DB848                 cmp     esi, eax
.text:004DB84A                 pop     esi
.text:004DB84B                 jnz     short loc_4DB826
.text:004DB84D                 mov     dword_5AA40C, 320h
.text:004DB857                 mov     dword_5AA410, eax
.text:004DB85C                 jmp     short loc_4DB832
.text:004DB85C sub_4DB810      endp

Ну а это уже IDA постаралась:) но время ее работы того не стояло:)

А это что стало

Code: Select all

.text:004DB810 sub_4DB810      proc near               ; CODE XREF: sub_454360+8Fp
.text:004DB810                                         ; strstreambuf::strstreambuf(char *,int,char *)+A4p ...
.text:004DB810
.text:004DB810 arg_0           = dword ptr  4
.text:004DB810 arg_4           = dword ptr  8
.text:004DB810
.text:004DB810                 mov     eax, [esp+arg_0]
.text:004DB814                 mov     dword_5AA40C, eax
.text:004DB819                 mov     eax, [esp+arg_4]
.text:004DB81D                 mov     dword_5AA410, eax
.text:004DB822                 jmp     sub_47AF10
.text:004DB822 sub_4DB810      endp
Edikus
Posts: 98
Joined: 2004-07-12 13:03:57

Post by Edikus »

grin, посмотри пожалуйста вот Этот 6.0.10.0 клиент www.dellirium.info/client.exe

я понимаю что он с 6.0.6.0 в принципе идентичен, но в хекс редакторе которым я посмотрел слишком много байтов различалось :)

возможно ли убрать шифрование, сделать мультиклиента и возможность задавать разшрешение Экрана через конфиг?
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

10 эдентичен 7-9 если память не изменяет. Мульти там не более 2-х окон, опять если память не изменяет. А разрешение уже для подобных клиентов меняли.

Сегодня не обещаю.
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

6.0.10.zip
полный набор...
wap2
Posts: 91
Joined: 2006-07-29 19:08:18

Post by wap2 »

Грин, можешь, пожалуйста, объяснить поподробнее и по-порядку. Я программированием не занимаюсь и то что кому-то ясно само собой, мне отнюдь не ясно. Сюдя же по теме ничего очень сложного и долгого тут быть не должно...
Вот открываю клиент IDA нахожу кусок, напоминающий тобой выложенный, что дальше с ним делать? Править, отключая строчки, или какая функция есть? Ты просто написал: IDA постаралась, это навело мысль о функции... Потом что дальше с этим делать, обратно в ехе этой прогой вроде не запишешь... Ассемблер? Что-то меня берут сомнения, что он не криво все восстановит из этого кода. Еще 1 любопытная штука - огромное количество строчек в конце кода - не содержащих ничего. Похоже тоже прикол IDA, так как их в файле тоже явно нет...
В общем, если можешь, объясни по-порядку...

P.s.

Code: Select all

.text:00446FA0 sub_446FA0      proc near               ; CODE XREF: sub_4303F0+7Ap
.text:00446FA0                                         ; sub_437500+12D7p
.text:00446FA0
.text:00446FA0 arg_0           = dword ptr  4
.text:00446FA0 arg_4           = dword ptr  8
.text:00446FA0
.text:00446FA0                 mov     eax, [esp+arg_0]
.text:00446FA4                 cmp     eax, 280h
.text:00446FA9                 jnz     short loc_446FC8
.text:00446FAB                 mov     ecx, [esp+arg_4]
.text:00446FAF                 mov     eax, 1E0h
.text:00446FB4                 cmp     ecx, eax
.text:00446FB6                 jnz     short loc_446FEC
.text:00446FB8                 mov     dword_50284C, 280h
.text:00446FC2                 mov     dword_502850, eax
.text:00446FC7                 retn
.text:00446FC8 ; ---------------------------------------------------------------------------
.text:00446FC8
.text:00446FC8 loc_446FC8:                             ; CODE XREF: sub_446FA0+9j
.text:00446FC8                 cmp     eax, 320h
.text:00446FCD                 jnz     short loc_446FEC
.text:00446FCF                 mov     ecx, [esp+arg_4]
.text:00446FD3                 mov     eax, 258h
.text:00446FD8                 cmp     ecx, eax
.text:00446FDA                 jnz     short loc_446FEC
.text:00446FDC                 mov     dword_50284C, 320h
.text:00446FE6                 mov     dword_502850, eax
.text:00446FEB                 retn
.text:00446FEC ; ---------------------------------------------------------------------------
.text:00446FEC
.text:00446FEC loc_446FEC:                             ; CODE XREF: sub_446FA0+16j
.text:00446FEC                                         ; sub_446FA0+2Dj ...
.text:00446FEC                 push    offset aGraphicmanag_0 ; "GraphicManager::setGameplayWindowPixelW"...
.text:00446FF1                 call    sub_4C8500
.text:00446FF6                 pop     ecx
.text:00446FF7                 retn
.text:00446FF7 sub_446FA0      endp
For flood and honour. Хорошо флудить - это тоже искусство.
В стадии разработки: http://uorpg.net
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

что бы ответить тебе на все вопросы надо пару лекций провести.

ИДА не редактор, это дизасемблер, совсем не давно унее появились еще и функции дебага. ИДА делает то что не умеют делать другие продукты (аналогичных продуктов хотя просто нет). Она лочисески связывает весь код програмы.

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

Я рекомендую HIEW так как этот редактор работает в 3-х режимах (Текст, hex, disasm). В отличии от ИДЫ он не дизасемблирует весь файл, а только маленький интересующий тебя кусок. Ну и как очередной плюс он умет редактировать (во всех режимах).

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

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

Вообще если серьездно, то для патча необходимо у меть в иде только пару вещей и понимания всей кухни попросту не к чему. Достаточно уметь искать по листинку (это то что вам там ИДА все рисует:) в виде буквк стрелочек и тд.) определеное сочетание символов, команд.
Как я уже говорил у нас тут есть пара ключевых цифр: 640, 480, 800, 600. Не обходимо отыскать у частки кода где все эти 4 цифры встречаются в месте (впределах не большого блока). Опять таки цифра может быть в одной из систем исчисления (с основанием 10, 16, 2), тогда на помощь приходит поиск ЗНАЧЕНИЙ (immediate value), он найдет все цифры не зависимо от их основани. Вот нашли, сравнили с кодом который выше я на писал, сов пало визуально процентов на 90% значит оно:) Дальше запоменаем адрес функции (адреса в этом состоянии уже ЭФФЕКТИВНЫЕ(тут опять лекция)), HIEW умет работать с эффективными адресами, так как есть интерпритатор PE фаелов (ууу тут опять целая лекция:), но смысл в том что HIEW знает по какому адресу будет загружен сегмент КОДА). Загружаем HIEW, открываем наш файлик, преходим в режим Decode(дизасемблер), жмем F5 октивируется поле для перехода поадресу, следовательно если в начале адреса поставить ".", то он будет восприниматся как ЭФФЕКТИВНЫЙ, в нашем случаи это и надо, а если точку не ставвить то адрес будет интерпритироватся как смешение от начала файла.
Переходим на участок кода, ну а дальше интуитивно. Нас интересуют F3 (Edit) F9 (UPDATE), про HIEW можно почитать в инете. Там все интуитивно и просто, но самое главное, что в режиме редактирования можно просто писать на языке asm.

PS В ИДЕ не пользуйтесь графическим режимом (отображение кода в виде графов), переходите сразу в текстовый.

PSS Найдите того кто потратит на все это, гораздо меньше времяни чем вы, выгода очевидна - время:)

PSSS wap2 а тебе то какой клиент надо "расширить"?
wap2
Posts: 91
Joined: 2006-07-29 19:08:18

Post by wap2 »

Спасибо, Грин. Попробую во вторник-среду порыть HIEW'ом. Если не получится, придется забить на это дело и к тебе обратиться. :)
Время мне на это не жалко, так как мне ни сколько сам клиент переделать нужно, сколько уже из принципа хочется в этом разобраться. Не люблю бросать что-то недоделанным.
Клиент вроде 2.0.3, во всяком случае он точно работает вместо 2.0.3



П.с. 2 в нике значит не более чем то, что я когда-то забыл и пароль и мейл от 1 акка wap.
For flood and honour. Хорошо флудить - это тоже искусство.
В стадии разработки: http://uorpg.net
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Тогда купи себе книгу по асемблету от Юрова:)
Edikus
Posts: 98
Joined: 2004-07-12 13:03:57

Post by Edikus »

Grin большое тебе спасибо, а я то думал что нужно в хекс редакторе найти значение которые различаются :oops:

:)))
Post Reply