починил

Подписчиков: 1     Сообщений: 74     Рейтинг постов: 545.8

посуда починил песочница скрепка баянометр молчал 

посуда,починил,песочница,скрепка,баянометр молчал
Развернуть
Комментарии 4 20.08.202316:26 ссылка -7.9

ассемблер Игры баги починил 

Чиним баги(добавляем фичи) с помощью чит энджина.

В общем суть. Есть одна визуальная новелла Steins;Gate Elite. К ней вышел руссификатор полусырой, разработчики на него забили, и где нужно не проставили перенос строки. По итогу получаем мы в результате вот такое:

& Бгетз^аге ЕЩЕ
Несколько автоматов с игрушками в к; ны с надписью “Родина японского ПК”.
[Ез] АНТОНЕ «К1Р)
□
X,ассемблер,Игры,баги,починил

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

Что делать дальше? А дальше думать, если искомый текст не находится, то есть вероятность, что игрой используется кастомная кодировка. Мы слепы как кроты, но не стоит отчаиваться, нужно просто немного схитрить. Мы не знаем как выглядит текст в кастомной кодировке, но есть кое-что, что нам известно. Например количество символов в строке. Ну и понеслась. Новое сканирование, тип 4 байта. Подсчитываем количество символов, сканируем. Жмакаем кнопку, снова подсчитываем символы уже в новой строке, жмакаем кнопку. Так пока не останется только один, два адреса. А потом просто смотрим какие функции обращаются к этому адресу.

И тут мы находим это

Memory Viewer - Running
File Search View Debug Tools Kernel tools
t	^	fc-
• • •
Toggle Breakpoint Run Step Into Step Over Step Out Run till.
Address
>>Game.exe+DAC77 Game.exe+DAC7D Game.exe+DAC7F Game.exe+DAC82 Game.exe+DAC84 Game.exe+DAC8A Game.exe+DAC91 Game.exe+DAC98 Game.exe+DAC9F

Что же, вот она, функция где форматируется текст. Если пролистать дальше, то можно будет увидеть работу с символами из строки. Красным если что выделена строка текста в кастомной кодировке, опытным путем выяснил значение контролирующих байтов: 01 80 - начало имени 02 80 - конец. 03 80 - конец текста.
Тааак, вот это уже интересно. У меня уже был опыт добавления переноса текста по словам в Rewrite стимовский, поэтому стал искать место где может формироваться уже новая строка с контрольными байтами переноса строки. Но тут меня ждало фиаско. Строка есть только одна, ебись с ней как хочешь. Но ведь как-то же движок переносит текст на новую строчку в игре?
Дальше я стал проводить эксперименты, высчитал нужную букву перед которой происходит перенос. Поставил на неё брейкпоинт, тыкался - тыкался в дебаггере, что там блядь происходит, нихуя не понятно. Думаю хуй с тобой золотая рыбка. Решил найти производится ли учет количества строк, но нет, нужной переменной не нашел. Далее координаты текста по оси y, и бинго. Нашел 

IDA - Game.exe.idb (Game.exe) C:\SG_ELITE\Game.exe.idb
File Edit Jump Search View Debugger Lumina Options Windows Help
& ▼ *4 ▼	% t 0-	SI Q	¡ê ui st -S+ - & m X	>03 0 Local Windows debugger v	te â'
Library function |_| Regular function Instruction Data Unexplored External symbol Lumina function

для лучшей наглядности. Ну думаю отлично, тут как раз есть проверочка, возможно это оно и нужно. В чит энджине jnz меняю на jmp, проверяю строку и есть.

& Бгетз^аге ЕЩЕ
Маюри уставилась на автомат с игрушками. Табличка впереди н
ПЕз] АНТОНЕ НК1Р)
□
X,ассемблер,Игры,баги,починил

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

Поэтому что в этом случае можно придумать? А вот что, заводим булевую. Пускай будет единица когда произойдет перевод на новую строку, но переводить мы не будем. Будем каждый символ проверять является ли он пробелом и если да, тогда уже делать перевод на новую строку. По итогу получается как-то так.

Auto Assemble edit: Auto Assemble script File View Template
11	(INJECT,Game.exe,
12	(newmem, $	)
13
14	(code)
15	(return)
16	(flag)
17	(hook)
18	(flag)
19	//Game.exe+DA544: 80 7C 11 01 07
20	//------------INJECTING	HERE -
21	//Game.exe+DA549: OF 85 0A 02 00 00
22	//------------DONE

И результат собственно 

& Бгетз^аге ЕЩЕ
Несколько автоматов с игрушками в к; ны с надписью “Родина японского ПК”.
[Ез] АНТОНЕ «К1Р)
□
X,ассемблер,Игры,баги,починил
&!	ЕЩЕ	-
ИЩ1
Несколько автоматов с игрушками в капсулах выстроены в ряд до пластины с надписью “Родина японского ПК”. @
[Ез] АНТОНЕ «К1Р),ассемблер,Игры,баги,починил
& Steins;Gate ELITE
Маюри уставилась на автомат с игрушк асит: “RaiNet AccessBattlers: Upa Collée
ÍESAÜTOHEUKIP)
□
X,ассемблер,Игры,баги,починил
& Steins;Gate ELITE
Маюри уставилась на автомат с игрушкам “RaiNet AccessBattlers: Upa Collection.”.
ÍES AMTOHE SKIP)
□
X,ассемблер,Игры,баги,починил
& Бгетз^аге ЕЩЕ
Выглядит как яйцо с торчащими конеч] ормированную собаку. О
ПЕз] АНТОНЕ НК1Р)
□
X
3 J,ассемблер,Игры,баги,починил
& Бгетз^аге ЕЩЕ
Выглядит как яйцо с торчащими конечностями и собаку. ^
ПЕз] АНТОНЕ НК1Р)
□
X,ассемблер,Игры,баги,починил
На третьем примере кстати видно недостаток подобного подхода, слишком сильно сжимает, по хорошему надо учитывать ширину символов, но итак сойдет. Ну и в конце всё это запилить в дллку, но я ебал его в рот, не люблю кресты, плюс еще не правильно чего сделаешь привет утечки памяти и прочие радости. А я точно неправильно сделаю, так-как на крестах не пишу.
Если кому нужна таблица для чит энджина: https://cdn.discordapp.com/attachments/128912752604348416/1000075342477787227/SteinsGateElite.CT
На сим всё. На самом деле там еще дохуя работы, в глоссарии пиздец тоже творится, но мне лень уже этим заниматься, все равно не так часто туда заходишь.
Развернуть

поломалось лестница ступеньки починил песочница 

поломалось,лестница,ступеньки,починил,песочница
Развернуть
Комментарии 9 23.05.202116:46 ссылка -6.1

авто починил я у мамы инженер песочница 

авто,починил,я у мамы инженер,песочница
Развернуть

Отличный комментарий!

А что именно он починил?
yourmomisfat yourmomisfat24.03.202115:31ссылка
+2.3
ввод выхлопных газов от едущего впереди дизеля прямо в ебло
SobakaBalabaka SobakaBalabaka24.03.202115:32ссылка
+35.3

ноутбук починил 

ноутбук,починил


Развернуть

скамейка починил Малобюджетный скамейк 

 ' ' —, SÉÉ •/ " ; -«í* 1 - ' . . ‘ , ' Л» Г ‘4>#r*ï*L. • •' 7“ т^ • - • Г ■/l-yA" у/»» г! Г\\ . -^ . 'V • . г ] kJ . • ' ' . '-’* Z -> .ч *л # / й ,/ ft wn '”í”A/|V»k 4,'i* .. V V : * Tj .* "V- * ¡jf*‘*- - Л.'Дв,скамейка,починил,Малобюджетный скамейк


Развернуть

coub смешное скутер починил песочница 

Когда сам починил скутер

Развернуть

Отличный комментарий!

Звук просто шикарен
Lictor Lictor12.07.202015:07ссылка
+30.7

починил щит 

починил,щит


Развернуть

ИКЕА кольчуга починил брутальность хаос 

Починка кольчуги
в полевых условиях
ат) (ЭцаШ$ *>->т*ее4- /ЧбКНГЕК,ИКЕА,кольчуга,починил,брутальность,хаос
Развернуть

песочница скотч починил 

r r±*T 1 U ' ply ff y f • ;_uxl 1 % JB I ■ Mr V flUB Ш1 / * -Ат г пИ. j ш1/ >1 vf fth\^*A л 1*1 ,* F' Li ij * д I •' El .•i ■ jUj ■ li » л 4 Л-w^ -гг*- V Ш\ *MJ V *•' г }* ш я Ж ' А ■ ^ • я \ V « Я ^В' ' I Г(
Развернуть
В этом разделе мы собираем самые смешные приколы (комиксы и картинки) по теме починил (+74 картинки, рейтинг 545.8 - починил)