Перейти к содержанию

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

Всем салют!

Засел ломать старенькую игрушку "Злобный Гений".

Нашёл деньги; хранятся там они так: сотые в одной ячейке, больше сотых — в другой. Т.е. 19200 => 19000 и 200.

Суть не в этом. После установки нужного количества денег, через N времени, количество денег всё же сбрасывается на действительное.

И это при том, что я уверен, что использую реальное, не экранное значение.

В общем, помогите кто понять, что идёт не так.

 

Прилагаю таблицу

Первая функция - добавляет денег при расходе;

Вторая функция - добавляет денег при увеличении баланса (заработок с глобальной карты).

Ссылка на комментарий
Поделиться на другие сайты

55 минут назад, SergBrNord сказал:

Прилагаю таблицу

@SergBrNord, чисти табличку, перед выкладкой, от Анализов структур - у тебя она весит 806 KB, после чистки 6 KB

 

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, Garik66 сказал:

@SergBrNord, чисти табличку, перед выкладкой, от Анализов структур - у тебя она весит 806 KB, после чистки 6 KB

 

Не знал, что CE сохраняет эти вещи. Собственно, в динамической памяти оно как-то и бесполезно.

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, SergBrNord сказал:

Не знал, что CE сохраняет эти вещи. Собственно, в динамической памяти оно как-то и бесполезно.

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

 

Ссылка на комментарий
Поделиться на другие сайты

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). 

И вот добавление денег у меня и работало нормально.

И также: я просто, так как в игре по сути деньги нужны только для торговли с торговцами, я делал скрипт на покупку у них без денег. Это не сложно.

Ссылка на комментарий
Поделиться на другие сайты

11 час назад, Garik66 сказал:

...

Похожа на Дьябло только в Дьябло кучки кратные 5000, а у тебя как видишь кратно 500 (000001F4). 

 

Да, если 1800 будет, то положит 300 в ячейку с сотнями, а всё остальное запихнёт в основную, то есть там будет 1500.

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

 

11 час назад, Garik66 сказал:
 


newmem:
  add ebx, #1000000

code:
  add [esi+000000A4],ebx
  jmp return

 

 

 

Вроде бы делал что-то такое, но перепроверить не мешает.... 

 

Изменено пользователем SergBrNord
Ссылка на комментарий
Поделиться на другие сайты

12 часа назад, Garik66 сказал:

И также: я просто, так как в игре по сути деньги нужны только для торговли с торговцами, я делал скрипт на покупку у них без денег. Это не сложно.

Проверил предложенный тобой твой вариант - не сработало. Я думаю, деньги тут как объект, т.к. они отображаются в виде штабелей золота, которые увеличиваются и уменьшаются. И когда у меня совсем закончился штабель золота, деньги тут же в 0 сбросились.

Изменено пользователем SergBrNord
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...
В 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
Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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
}

 

Окончательный скрипт и табличку выложил ЗДЕСЬ

Ссылка на комментарий
Поделиться на другие сайты

А что если накатить вот так к примеру :rolleyes: Я заприметил место, но я в такое играть даже не умею.. Что там надо делать, я не понимаю.. 

Скрытый текст

[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)

 

 

Ссылка на комментарий
Поделиться на другие сайты

23 минуты назад, LIRW сказал:

А что если накатить вот так к примеру :rolleyes:

 

:Жень, любишь ты неконтролируемые вещи - :D ты видел какое число ты записал?.

А во вторых проверить просто - потрать деньги со своим скриптом, сделай сохранение и загрузки игру с сохранения без скрипта и посмотри что будет в статистике. Мои скрипты работают, твой нет.

Ссылка на комментарий
Поделиться на другие сайты

3 минуты назад, Garik66 сказал:

А во вторых проверить просто - потрать деньги со своим скриптом

:rolleyes: Умел бы я ещо в такое играть.. Я и не знаю как там сохранять то.. :) Попробую щас...

Ссылка на комментарий
Поделиться на другие сайты

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
}

 

Окончательный скрипт и табличку выложил ЗДЕСЬ

Ссылка на комментарий
Поделиться на другие сайты

19 минут назад, Garik66 сказал:

:Жень, любишь ты неконтролируемые вещи - :D

Скрытый текст

[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: 

Да и Игорь - какие то это не контролируемые вещи я люблю ?:D как буд то я так каждый раз делаю..

Ссылка на комментарий
Поделиться на другие сайты

4 минуты назад, LIRW сказал:

какие то это не контролируемые вещи я люблю ?

16925216 монет это по твоему контролируемое число?;)

6 минут назад, LIRW сказал:

С сохранки пашет всё..

Ничего не пашет - только что проверил. Деньги уменьшились. после нескольких расходов с твоим скриптом, сделал сохраненку, отключил твой скрипт, загрузил сохранку:

Если бы твой скрипт работал, то денег бы было  16925216, а их - 148499.

Ссылка на комментарий
Поделиться на другие сайты

3 минуты назад, Garik66 сказал:

16925216 монет это по твоему контролируемое число?

Странно.. У меня 800 000 пишется и загружается столько же :mellow: Первый скрипт да - там не множко не тестировано было. Ну без сохранки. А потом в меню глянул на что сохранять и сохранился, скрипт вырубил как ты говорил - и денег как сохранился, так и было 800 000

Ссылка на комментарий
Поделиться на другие сайты

29 минут назад, LIRW сказал:

Странно..

Да сейчас перепроверил - оказалось я оба раза твой первый скрипт смотрел.:rolleyes:

Вот проверка твоего и моего скриптов:

Скрытый текст

 

 

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

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)

 

Это не визуал!

555.jpg

Ссылка на комментарий
Поделиться на другие сайты

В 02.12.2017 в 20:25, SergBrNord сказал:

В общем, помогите кто понять, что идёт не так.

Короче написал именно о чем я тебе говорил изначально - обнуление не расходов, а именно цен. Как говорится: "Утро вечера мудренее" :D

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
Ссылка на комментарий
Поделиться на другие сайты

11 час назад, Garik66 сказал:

А  как ты проверял?

Просто построил всего на 250 000 и значение сбросилось в 0. Собственно, как и в моих попытках — как только штабель золота закончился, деньги сбросилисть в ноль. Сейчас проверю новые скрипты из темы

P.S.

Вчера сильно устал, поэтому сразу после сообщения о нерабочих скриптах пошёл на боковую =)

Ссылка на комментарий
Поделиться на другие сайты

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"... но редактор реагирует на это дело так, словно в память ноли пишутся....

 

 

 

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, SergBrNord сказал:

Как ты на эту инструкцию вышел?

Обычно. Бряк на адрес золота - основной +А4. "С какими инструкциями работает".

Ну и потом "Прерваться и трассировать инструкции" и смотришь что и откуда идет

На обе инструкции так и выходил.

 

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.