SergBrNord Опубликовано 2 декабря, 2017 Поделиться Опубликовано 2 декабря, 2017 Всем салют! Засел ломать старенькую игрушку "Злобный Гений". Нашёл деньги; хранятся там они так: сотые в одной ячейке, больше сотых — в другой. Т.е. 19200 => 19000 и 200. Суть не в этом. После установки нужного количества денег, через N времени, количество денег всё же сбрасывается на действительное. И это при том, что я уверен, что использую реальное, не экранное значение. В общем, помогите кто понять, что идёт не так. Прилагаю таблицу Первая функция - добавляет денег при расходе; Вторая функция - добавляет денег при увеличении баланса (заработок с глобальной карты). Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 2 декабря, 2017 Поделиться Опубликовано 2 декабря, 2017 55 минут назад, SergBrNord сказал: Прилагаю таблицу @SergBrNord, чисти табличку, перед выкладкой, от Анализов структур - у тебя она весит 806 KB, после чистки 6 KB Ссылка на комментарий Поделиться на другие сайты Поделиться
SergBrNord Опубликовано 2 декабря, 2017 Автор Поделиться Опубликовано 2 декабря, 2017 1 час назад, Garik66 сказал: @SergBrNord, чисти табличку, перед выкладкой, от Анализов структур - у тебя она весит 806 KB, после чистки 6 KB Не знал, что CE сохраняет эти вещи. Собственно, в динамической памяти оно как-то и бесполезно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 2 декабря, 2017 Поделиться Опубликовано 2 декабря, 2017 1 минуту назад, SergBrNord сказал: Не знал, что CE сохраняет эти вещи. Собственно, в динамической памяти оно как-то и бесполезно. Наверное задел на будущее, чтобы потом можно было сравнить структуру например 3-невной давности и сегодняшнюю (но пока не доделан) Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 2 декабря, 2017 Поделиться Опубликовано 2 декабря, 2017 5 часов назад, SergBrNord сказал: что идёт не так. Игру качать влом, попробуй так в обоих скриптах сделать: Скрытый текст newmem: add ebx, #1000000 code: add [esi+000000A4],ebx jmp return Игра визуально, судя поэтому: "EvilGeniusExeStub-Release.exe"+E5426: 69 DB F4 01 00 00 - imul ebx,ebx,000001F4 Похожа на Дьябло только в Дьябло кучки кратные 5000, а у тебя как видишь кратно 500 (000001F4). И вот добавление денег у меня и работало нормально. И также: я просто, так как в игре по сути деньги нужны только для торговли с торговцами, я делал скрипт на покупку у них без денег. Это не сложно. Ссылка на комментарий Поделиться на другие сайты Поделиться
SergBrNord Опубликовано 3 декабря, 2017 Автор Поделиться Опубликовано 3 декабря, 2017 (изменено) 11 час назад, Garik66 сказал: ... Похожа на Дьябло только в Дьябло кучки кратные 5000, а у тебя как видишь кратно 500 (000001F4). Да, если 1800 будет, то положит 300 в ячейку с сотнями, а всё остальное запихнёт в основную, то есть там будет 1500. Плюс, есть такая особенность, когда значение становится больше определённого уровня, оно переносится в другую область памяти. 11 час назад, Garik66 сказал: newmem: add ebx, #1000000 code: add [esi+000000A4],ebx jmp return Вроде бы делал что-то такое, но перепроверить не мешает.... Изменено 3 декабря, 2017 пользователем SergBrNord Ссылка на комментарий Поделиться на другие сайты Поделиться
SergBrNord Опубликовано 3 декабря, 2017 Автор Поделиться Опубликовано 3 декабря, 2017 (изменено) 12 часа назад, Garik66 сказал: И также: я просто, так как в игре по сути деньги нужны только для торговли с торговцами, я делал скрипт на покупку у них без денег. Это не сложно. Проверил предложенный тобой твой вариант - не сработало. Я думаю, деньги тут как объект, т.к. они отображаются в виде штабелей золота, которые увеличиваются и уменьшаются. И когда у меня совсем закончился штабель золота, деньги тут же в 0 сбросились. Изменено 3 декабря, 2017 пользователем SergBrNord Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 15 декабря, 2017 Поделиться Опубликовано 15 декабря, 2017 В 02.12.2017 в 20:25, SergBrNord сказал: В общем, помогите кто понять, что идёт не так. Скрипты; "Без расходов." Скрытый текст { Game : EvilGeniusExeStub-Release.exe Version: Date : 2017-12-15 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(MONEY,EvilGeniusExeStub-Release.exe,01 9E A4 00 00 00 33 DB 8B) // should be unique alloc(newmem,$1000) label(code) label(return) registersymbol(MONEY) newmem: xor ebx,ebx // Обнуление расходов - кратных 500 xor ebp,ebp // Обнуление расходов - остатка code: add [esi+000000A4],ebx jmp return MONEY: jmp newmem DB 90 return: [DISABLE] MONEY: db 01 9E A4 00 00 00 unregistersymbol(MONEY) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "EvilGeniusExeStub-Release.exe"+E5AC1 "EvilGeniusExeStub-Release.exe"+E5A9A: FF 50 28 - call dword ptr [eax+28] "EvilGeniusExeStub-Release.exe"+E5A9D: 8B 86 B0 00 00 00 - mov eax,[esi+000000B0] "EvilGeniusExeStub-Release.exe"+E5AA3: 85 C0 - test eax,eax "EvilGeniusExeStub-Release.exe"+E5AA5: 0F 85 99 FE FF FF - jne EvilGeniusExeStub-Release.exe+E5944 "EvilGeniusExeStub-Release.exe"+E5AAB: EB 1C - jmp EvilGeniusExeStub-Release.exe+E5AC9 "EvilGeniusExeStub-Release.exe"+E5AAD: 8B 8E B0 00 00 00 - mov ecx,[esi+000000B0] "EvilGeniusExeStub-Release.exe"+E5AB3: 2B FB - sub edi,ebx "EvilGeniusExeStub-Release.exe"+E5AB5: 57 - push edi "EvilGeniusExeStub-Release.exe"+E5AB6: E8 D5 DF FF FF - call EvilGeniusExeStub-Release.exe+E3A90 "EvilGeniusExeStub-Release.exe"+E5ABB: 69 DB 0C FE FF FF - imul ebx,ebx,FFFFFE0C // ---------- INJECTING HERE ---------- "EvilGeniusExeStub-Release.exe"+E5AC1: 01 9E A4 00 00 00 - add [esi+000000A4],ebx // ---------- DONE INJECTING ---------- "EvilGeniusExeStub-Release.exe"+E5AC7: 33 DB - xor ebx,ebx "EvilGeniusExeStub-Release.exe"+E5AC9: 8B 7C 24 28 - mov edi,[esp+28] "EvilGeniusExeStub-Release.exe"+E5ACD: 69 DB F4 01 00 00 - imul ebx,ebx,000001F4 "EvilGeniusExeStub-Release.exe"+E5AD3: 03 EB - add ebp,ebx "EvilGeniusExeStub-Release.exe"+E5AD5: 5B - pop ebx "EvilGeniusExeStub-Release.exe"+E5AD6: 79 08 - jns EvilGeniusExeStub-Release.exe+E5AE0 "EvilGeniusExeStub-Release.exe"+E5AD8: F7 DD - neg ebp "EvilGeniusExeStub-Release.exe"+E5ADA: 89 AE AC 00 00 00 - mov [esi+000000AC],ebp "EvilGeniusExeStub-Release.exe"+E5AE0: 8B 4E 0C - mov ecx,[esi+0C] "EvilGeniusExeStub-Release.exe"+E5AE3: E8 78 72 F9 FF - call EvilGeniusExeStub-Release.exe+7CD60 } "Записать скоко нужно денюжков." Скрытый текст { Game : EvilGeniusExeStub-Release.exe Version: Date : 2017-12-15 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(Money1,EvilGeniusExeStub-Release.exe,8B A9 AC 00 00 00) // should be unique alloc(newmem,$1000) label(code) label(return) registersymbol(Money1) newmem: mov [ecx+000000AC],0 mov [ecx+000000A8],0 mov [ecx+000000A4],#1000000 code: mov ebp,[ecx+000000AC] jmp return Money1: jmp newmem db 90 return: [DISABLE] Money1: db 8B A9 AC 00 00 00 unregistersymbol(Money1) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "EvilGeniusExeStub-Release.exe"+7CA29 "EvilGeniusExeStub-Release.exe"+7CA12: 85 C9 - test ecx,ecx "EvilGeniusExeStub-Release.exe"+7CA14: 74 F2 - je EvilGeniusExeStub-Release.exe+7CA08 "EvilGeniusExeStub-Release.exe"+7CA16: 3B C6 - cmp eax,esi "EvilGeniusExeStub-Release.exe"+7CA18: 8B C8 - mov ecx,eax "EvilGeniusExeStub-Release.exe"+7CA1A: 74 77 - je EvilGeniusExeStub-Release.exe+7CA93 "EvilGeniusExeStub-Release.exe"+7CA1C: 8D 64 24 00 - lea esp,[esp+00] "EvilGeniusExeStub-Release.exe"+7CA20: 8B 11 - mov edx,[ecx] "EvilGeniusExeStub-Release.exe"+7CA22: 8B 0A - mov ecx,[edx] "EvilGeniusExeStub-Release.exe"+7CA24: 84 59 08 - test [ecx+08],bl "EvilGeniusExeStub-Release.exe"+7CA27: 74 16 - je EvilGeniusExeStub-Release.exe+7CA3F // ---------- INJECTING HERE ---------- "EvilGeniusExeStub-Release.exe"+7CA29: 8B A9 AC 00 00 00 - mov ebp,[ecx+000000AC] // ---------- DONE INJECTING ---------- "EvilGeniusExeStub-Release.exe"+7CA2F: 03 A9 A8 00 00 00 - add ebp,[ecx+000000A8] "EvilGeniusExeStub-Release.exe"+7CA35: 03 A9 A4 00 00 00 - add ebp,[ecx+000000A4] "EvilGeniusExeStub-Release.exe"+7CA3B: 85 ED - test ebp,ebp "EvilGeniusExeStub-Release.exe"+7CA3D: 7F 23 - jg EvilGeniusExeStub-Release.exe+7CA62 "EvilGeniusExeStub-Release.exe"+7CA3F: 8D 4A 04 - lea ecx,[edx+04] "EvilGeniusExeStub-Release.exe"+7CA42: 83 39 00 - cmp dword ptr [ecx],00 "EvilGeniusExeStub-Release.exe"+7CA45: 75 10 - jne EvilGeniusExeStub-Release.exe+7CA57 "EvilGeniusExeStub-Release.exe"+7CA47: 8B 48 04 - mov ecx,[eax+04] "EvilGeniusExeStub-Release.exe"+7CA4A: 83 C0 04 - add eax,04 "EvilGeniusExeStub-Release.exe"+7CA4D: 85 C9 - test ecx,ecx } Видео: Скрытый текст Табличка: Окончательный скрипт и табличку выложил ЗДЕСЬ 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 15 декабря, 2017 Поделиться Опубликовано 15 декабря, 2017 Зы: @SergBrNord, отпишись о результатах теста. Ссылка на комментарий Поделиться на другие сайты Поделиться
SergBrNord Опубликовано 15 декабря, 2017 Автор Поделиться Опубликовано 15 декабря, 2017 3 часа назад, Garik66 сказал: Зы: @SergBrNord, отпишись о результатах теста. Не работают. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 15 декабря, 2017 Поделиться Опубликовано 15 декабря, 2017 Жаль. Скорее всего это всё-таки видимое значение (тяжело - когда игры не знаешь копаться в ней). Завтра ещё посмотрю. А можно в игре ускорить как то расходы, чтобы быстрее проверить результат? Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 15 декабря, 2017 Поделиться Опубликовано 15 декабря, 2017 13 часа назад, SergBrNord сказал: Не работают. А как ты проверял? Я решил проверить - просто пару раз уже были случаи. когда пользователи писали (либо не проверяя, либо. что-то делая не правильно) что якобы не работает, а на деле все работало. Поэтому я проверил - у меня строительство продолжается, хотя денег по идее уже нет. Скрытый текст Скрипт (на всякий случай) "Без расходов 2" Скрытый текст { Game : EvilGeniusExeStub-Release.exe Version: Date : 2017-12-15 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(MONEY2,EvilGeniusExeStub-Release.exe,8B 8E B0 00 00 00 2B FB) // should be unique registersymbol(MONEY2) MONEY2+6: db 90 90 [DISABLE] MONEY2+6: db 2B FB unregistersymbol(MONEY2) { // ORIGINAL CODE - INJECTION POINT: "EvilGeniusExeStub-Release.exe"+E5AAD "EvilGeniusExeStub-Release.exe"+E5A8B: 89 50 04 - mov [eax+04],edx "EvilGeniusExeStub-Release.exe"+E5A8E: 89 02 - mov [edx],eax "EvilGeniusExeStub-Release.exe"+E5A90: 89 01 - mov [ecx],eax "EvilGeniusExeStub-Release.exe"+E5A92: 8B 8E B0 00 00 00 - mov ecx,[esi+000000B0] "EvilGeniusExeStub-Release.exe"+E5A98: 8B 01 - mov eax,[ecx] "EvilGeniusExeStub-Release.exe"+E5A9A: FF 50 28 - call dword ptr [eax+28] "EvilGeniusExeStub-Release.exe"+E5A9D: 8B 86 B0 00 00 00 - mov eax,[esi+000000B0] "EvilGeniusExeStub-Release.exe"+E5AA3: 85 C0 - test eax,eax "EvilGeniusExeStub-Release.exe"+E5AA5: 0F 85 99 FE FF FF - jne EvilGeniusExeStub-Release.exe+E5944 "EvilGeniusExeStub-Release.exe"+E5AAB: EB 1C - jmp EvilGeniusExeStub-Release.exe+E5AC9 // ---------- INJECTING HERE ---------- "EvilGeniusExeStub-Release.exe"+E5AAD: 8B 8E B0 00 00 00 - mov ecx,[esi+000000B0] // ---------- DONE INJECTING ---------- "EvilGeniusExeStub-Release.exe"+E5AB3: 2B FB - sub edi,ebx "EvilGeniusExeStub-Release.exe"+E5AB5: 57 - push edi "EvilGeniusExeStub-Release.exe"+E5AB6: E8 D5 DF FF FF - call EvilGeniusExeStub-Release.exe+E3A90 "EvilGeniusExeStub-Release.exe"+E5ABB: 69 DB 0C FE FF FF - imul ebx,ebx,FFFFFE0C "EvilGeniusExeStub-Release.exe"+E5AC1: E9 3A A5 7D 02 - jmp 02CC0000 "EvilGeniusExeStub-Release.exe"+E5AC6: 90 - nop "EvilGeniusExeStub-Release.exe"+E5AC7: 33 DB - xor ebx,ebx "EvilGeniusExeStub-Release.exe"+E5AC9: 8B 7C 24 28 - mov edi,[esp+28] "EvilGeniusExeStub-Release.exe"+E5ACD: 69 DB F4 01 00 00 - imul ebx,ebx,000001F4 "EvilGeniusExeStub-Release.exe"+E5AD3: 03 EB - add ebp,ebx } Окончательный скрипт и табличку выложил ЗДЕСЬ Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 15 декабря, 2017 Поделиться Опубликовано 15 декабря, 2017 А что если накатить вот так к примеру Я заприметил место, но я в такое играть даже не умею.. Что там надо делать, я не понимаю.. Скрытый текст [ENABLE] aobscanmodule(Cash,EvilGeniusExeStub-Release.exe,8B 86 AC 00 00 00 * * * * * * 89 86 AC 00 00 00) Cash+06: db B8 00 00 00 01 90 registersymbol(Cash) [DISABLE] Cash+06: db 3B E8 7F 0D 2B C5 unregistersymbol(Cash) Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 15 декабря, 2017 Поделиться Опубликовано 15 декабря, 2017 23 минуты назад, LIRW сказал: А что если накатить вот так к примеру :Жень, любишь ты неконтролируемые вещи - ты видел какое число ты записал?. А во вторых проверить просто - потрать деньги со своим скриптом, сделай сохранение и загрузки игру с сохранения без скрипта и посмотри что будет в статистике. Мои скрипты работают, твой нет. Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 15 декабря, 2017 Поделиться Опубликовано 15 декабря, 2017 3 минуты назад, Garik66 сказал: А во вторых проверить просто - потрать деньги со своим скриптом Умел бы я ещо в такое играть.. Я и не знаю как там сохранять то.. Попробую щас... Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 15 декабря, 2017 Поделиться Опубликовано 15 декабря, 2017 13 часа назад, SergBrNord сказал: Не работают. @SergBrNord, сейчас проверил (своим методом через сохранку), нужны оба скрипта. Так что окончательный скрипт "Без расходов" Скрытый текст { Game : EvilGeniusExeStub-Release.exe Version: Date : 2017-12-15 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(MONEY,EvilGeniusExeStub-Release.exe,01 9E A4 00 00 00 33 DB 8B) // should be unique alloc(newmem,$1000) label(code) label(return) registersymbol(MONEY) aobscanmodule(MONEY2,EvilGeniusExeStub-Release.exe,8B 8E B0 00 00 00 2B FB) // should be unique registersymbol(MONEY2) MONEY2+6: db 90 90 newmem: xor ebx,ebx // Обнуление расходов - кратных 500 xor ebp,ebp // Обнуление расходов - остатка code: add [esi+000000A4],ebx jmp return MONEY: jmp newmem DB 90 return: [DISABLE] MONEY: db 01 9E A4 00 00 00 MONEY2+6: db 2B FB unregistersymbol(MONEY2) unregistersymbol(MONEY) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "EvilGeniusExeStub-Release.exe"+E5AC1 "EvilGeniusExeStub-Release.exe"+E5A9A: FF 50 28 - call dword ptr [eax+28] "EvilGeniusExeStub-Release.exe"+E5A9D: 8B 86 B0 00 00 00 - mov eax,[esi+000000B0] "EvilGeniusExeStub-Release.exe"+E5AA3: 85 C0 - test eax,eax "EvilGeniusExeStub-Release.exe"+E5AA5: 0F 85 99 FE FF FF - jne EvilGeniusExeStub-Release.exe+E5944 "EvilGeniusExeStub-Release.exe"+E5AAB: EB 1C - jmp EvilGeniusExeStub-Release.exe+E5AC9 "EvilGeniusExeStub-Release.exe"+E5AAD: 8B 8E B0 00 00 00 - mov ecx,[esi+000000B0] "EvilGeniusExeStub-Release.exe"+E5AB3: 2B FB - sub edi,ebx "EvilGeniusExeStub-Release.exe"+E5AB5: 57 - push edi "EvilGeniusExeStub-Release.exe"+E5AB6: E8 D5 DF FF FF - call EvilGeniusExeStub-Release.exe+E3A90 "EvilGeniusExeStub-Release.exe"+E5ABB: 69 DB 0C FE FF FF - imul ebx,ebx,FFFFFE0C // ---------- INJECTING HERE ---------- "EvilGeniusExeStub-Release.exe"+E5AC1: 01 9E A4 00 00 00 - add [esi+000000A4],ebx // ---------- DONE INJECTING ---------- "EvilGeniusExeStub-Release.exe"+E5AC7: 33 DB - xor ebx,ebx "EvilGeniusExeStub-Release.exe"+E5AC9: 8B 7C 24 28 - mov edi,[esp+28] "EvilGeniusExeStub-Release.exe"+E5ACD: 69 DB F4 01 00 00 - imul ebx,ebx,000001F4 "EvilGeniusExeStub-Release.exe"+E5AD3: 03 EB - add ebp,ebx "EvilGeniusExeStub-Release.exe"+E5AD5: 5B - pop ebx "EvilGeniusExeStub-Release.exe"+E5AD6: 79 08 - jns EvilGeniusExeStub-Release.exe+E5AE0 "EvilGeniusExeStub-Release.exe"+E5AD8: F7 DD - neg ebp "EvilGeniusExeStub-Release.exe"+E5ADA: 89 AE AC 00 00 00 - mov [esi+000000AC],ebp "EvilGeniusExeStub-Release.exe"+E5AE0: 8B 4E 0C - mov ecx,[esi+0C] "EvilGeniusExeStub-Release.exe"+E5AE3: E8 78 72 F9 FF - call EvilGeniusExeStub-Release.exe+7CD60 } Окончательный скрипт и табличку выложил ЗДЕСЬ Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 15 декабря, 2017 Поделиться Опубликовано 15 декабря, 2017 19 минут назад, Garik66 сказал: :Жень, любишь ты неконтролируемые вещи - Скрытый текст [ENABLE] aobscanmodule(Cash1,EvilGeniusExeStub-Release.exe,8B 86 A8 00 00 00 57 * * * * * * * * * * 89 86 A8 00 00 00) Cash1+0B: db B8 00 00 00 01 90 registersymbol(Cash1) [DISABLE] Cash1+0B: db 3B F8 7F 0C 2B C7 unregistersymbol(Cash1) Тогда вот так.. С сохранки пашет всё.. Там подумать и можно всё сделать норм... Было бы желание как говорится.. PS: Да и Игорь - какие то это не контролируемые вещи я люблю ? как буд то я так каждый раз делаю.. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 15 декабря, 2017 Поделиться Опубликовано 15 декабря, 2017 4 минуты назад, LIRW сказал: какие то это не контролируемые вещи я люблю ? 16925216 монет это по твоему контролируемое число? 6 минут назад, LIRW сказал: С сохранки пашет всё.. Ничего не пашет - только что проверил. Деньги уменьшились. после нескольких расходов с твоим скриптом, сделал сохраненку, отключил твой скрипт, загрузил сохранку: Если бы твой скрипт работал, то денег бы было 16925216, а их - 148499. Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 15 декабря, 2017 Поделиться Опубликовано 15 декабря, 2017 3 минуты назад, Garik66 сказал: 16925216 монет это по твоему контролируемое число? Странно.. У меня 800 000 пишется и загружается столько же Первый скрипт да - там не множко не тестировано было. Ну без сохранки. А потом в меню глянул на что сохранять и сохранился, скрипт вырубил как ты говорил - и денег как сохранился, так и было 800 000 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 15 декабря, 2017 Поделиться Опубликовано 15 декабря, 2017 29 минут назад, LIRW сказал: Странно.. Да сейчас перепроверил - оказалось я оба раза твой первый скрипт смотрел. Вот проверка твоего и моего скриптов: Скрытый текст 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 16 декабря, 2017 Поделиться Опубликовано 16 декабря, 2017 5 часов назад, Garik66 сказал: Вот проверка твоего и моего скриптов: Игорь смотри. Попробуй включить вот этот скрипт.. Что не будь купи и вроде не чего такого не заметно.. Далее сохранись, отпусти скрипт и загрузись Скрытый текст [ENABLE] aobscanmodule(SuperCash,EvilGeniusExeStub-Release.exe,89 81 10 01 00 00 C2) alloc(newmem,$1000) label(return) newmem: mov eax,#1000000 mov [ecx+00000110],eax jmp return SuperCash: jmp newmem db 90 return: registersymbol(SuperCash) [DISABLE] SuperCash: db 89 81 10 01 00 00 unregistersymbol(SuperCash) dealloc(newmem) Это не визуал! Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 16 декабря, 2017 Поделиться Опубликовано 16 декабря, 2017 В 02.12.2017 в 20:25, SergBrNord сказал: В общем, помогите кто понять, что идёт не так. Короче написал именно о чем я тебе говорил изначально - обнуление не расходов, а именно цен. Как говорится: "Утро вечера мудренее" 1 час назад, LIRW сказал: Игорь смотри. Жень, не люблю я всякие большие и не понятные цифры. Вот скрипт, он обнуляет именно цены любой покупки, т.е. купить можно будет любую вещь - пусть она стоит и 1000000000000000. Скрипт "Zero Price" Скрытый текст { Game : EvilGeniusExeStub-Release.exe Version: Date : 2017-12-16 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(Price,EvilGeniusExeStub-Release.exe,57 8B 7C 24 24 3B F8 7F) // should be unique alloc(newmem,$1000) label(code) label(return) registersymbol(Price) newmem: push edi mov edi,0 mov [esp+24],edi code: mov edi,[esp+24] jmp return Price: jmp newmem return: [DISABLE] Price: db 57 8B 7C 24 24 unregistersymbol(Price) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "EvilGeniusExeStub-Release.exe"+E58CD "EvilGeniusExeStub-Release.exe"+E58B7: 5B - pop ebx "EvilGeniusExeStub-Release.exe"+E58B8: 83 C4 3C - add esp,3C "EvilGeniusExeStub-Release.exe"+E58BB: C2 08 00 - ret 0008 "EvilGeniusExeStub-Release.exe"+E58BE: 90 - nop "EvilGeniusExeStub-Release.exe"+E58BF: 90 - nop "EvilGeniusExeStub-Release.exe"+E58C0: 83 EC 10 - sub esp,10 "EvilGeniusExeStub-Release.exe"+E58C3: 55 - push ebp "EvilGeniusExeStub-Release.exe"+E58C4: 56 - push esi "EvilGeniusExeStub-Release.exe"+E58C5: 8B F1 - mov esi,ecx "EvilGeniusExeStub-Release.exe"+E58C7: 8B 86 A8 00 00 00 - mov eax,[esi+000000A8] // ---------- INJECTING HERE ---------- "EvilGeniusExeStub-Release.exe"+E58CD: 57 - push edi "EvilGeniusExeStub-Release.exe"+E58CE: 8B 7C 24 24 - mov edi,[esp+24] // ---------- DONE INJECTING ---------- "EvilGeniusExeStub-Release.exe"+E58D2: 3B F8 - cmp edi,eax "EvilGeniusExeStub-Release.exe"+E58D4: 7F 0C - jg EvilGeniusExeStub-Release.exe+E58E2 "EvilGeniusExeStub-Release.exe"+E58D6: 2B C7 - sub eax,edi "EvilGeniusExeStub-Release.exe"+E58D8: 89 86 A8 00 00 00 - mov [esi+000000A8],eax "EvilGeniusExeStub-Release.exe"+E58DE: 33 ED - xor ebp,ebp "EvilGeniusExeStub-Release.exe"+E58E0: EB 0E - jmp EvilGeniusExeStub-Release.exe+E58F0 "EvilGeniusExeStub-Release.exe"+E58E2: 8B EF - mov ebp,edi "EvilGeniusExeStub-Release.exe"+E58E4: 2B E8 - sub ebp,eax "EvilGeniusExeStub-Release.exe"+E58E6: C7 86 A8 00 00 00 00 00 00 00 - mov [esi+000000A8],00000000 "EvilGeniusExeStub-Release.exe"+E58F0: 8B 86 AC 00 00 00 - mov eax,[esi+000000AC] } Видео: Скрытый текст Табличка: EvilGeniusExeStub-Release.CT 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
SergBrNord Опубликовано 16 декабря, 2017 Автор Поделиться Опубликовано 16 декабря, 2017 11 час назад, Garik66 сказал: А как ты проверял? Просто построил всего на 250 000 и значение сбросилось в 0. Собственно, как и в моих попытках — как только штабель золота закончился, деньги сбросилисть в ноль. Сейчас проверю новые скрипты из темы P.S. Вчера сильно устал, поэтому сразу после сообщения о нерабочих скриптах пошёл на боковую =) Ссылка на комментарий Поделиться на другие сайты Поделиться
SergBrNord Опубликовано 16 декабря, 2017 Автор Поделиться Опубликовано 16 декабря, 2017 7 часов назад, Garik66 сказал: Табличка: Работает, как скрипт на нулевую стоимость объектов. Как ты на эту инструкцию вышел? Я пробовал отсеивать по стоимости при постройке, допустим, коридоров... но что-то у меня не вышло найти нужное.... 9 часов назад, LIRW сказал: Показать содержимое [ENABLE] aobscanmodule(SuperCash,EvilGeniusExeStub-Release.exe,89 81 10 01 00 00 C2) alloc(newmem,$1000) label(return) newmem: mov eax,#1000000 mov [ecx+00000110],eax jmp return SuperCash: jmp newmem db 90 return: registersymbol(SuperCash) [DISABLE] SuperCash: db 89 81 10 01 00 00 unregistersymbol(SuperCash) dealloc(newmem) Вот этот скрипт мне очень понравился. Сделан через анимацию штабелей с золотом. Анимацию ещё найти надо умудриться +) 15 часов назад, LIRW сказал: Показать содержимое [ENABLE] aobscanmodule(Cash1,EvilGeniusExeStub-Release.exe,8B 86 A8 00 00 00 57 * * * * * * * * * * 89 86 A8 00 00 00) Cash1+0B: db B8 00 00 00 01 90 registersymbol(Cash1) [DISABLE] Cash1+0B: db 3B F8 7F 0C 2B C7 unregistersymbol(Cash1) А вот тут байты меня угнетают и требуются пояснения... Основная идея понятна. Заменяем 3 инструкции по 6 байт. B8 как "mov eax", дальше сдвигаем число и оставшийся байт заменяем "nop"... но редактор реагирует на это дело так, словно в память ноли пишутся.... Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 16 декабря, 2017 Поделиться Опубликовано 16 декабря, 2017 2 часа назад, SergBrNord сказал: Как ты на эту инструкцию вышел? Обычно. Бряк на адрес золота - основной +А4. "С какими инструкциями работает". Ну и потом "Прерваться и трассировать инструкции" и смотришь что и откуда идет На обе инструкции так и выходил. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения