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

Garik66

Помогаторы
  • Постов

    5 750
  • Зарегистрирован

  • Победитель дней

    292

Весь контент Garik66

  1. Razi, Не cmp [009E3C1C],10 - в decimala cmp [009E3C1C],9 je mylabelну и не забывай про add [009E3C1C],01 jmp returnHereи mylabel:mov [009E3C1C],0jmp returnHereНу расписывать это долго, потому что работа скрипта будет зависеть от выбранной тобой инструкции и правильности написания скрипта. Поэтому попробуй, напиши скрипт и, если не сработает, выложи его сюда - поправим. ЗЫ: у меня от 0 до 398 (398 в HEX = 18e, если проскочит 399, то у меня будет вылет из игры) у тебя от 0 до 9
  2. А у меня при написании выглядит так: А после отправки, вот так: Браузер - Гугл -хром ЗЫ: Странно - сейчас получилось без косяков. Попробую ещё раз ЗЫ: Странно. Может NullAlex уже поправил?
  3. Razi, дал бы ссылку на свои скрипты с циклом, но для пользователей пока доступ в раздел "Скрипты" закрыт. поэтому вот пример: [ENABLE]aobscan(address24, 8D XX XX XX XX XX XX F3 A5 E8 XX XX XX XX FF XX XX XX XX XX XX 8D XX XX XX XX XX XX)alloc(newMem24, 64)label(returnHere24)label(mylabel24)registersymbol(address24)newMem24:lea esi,[eax+edx+00000DB8]repe movsdcmp [eax+550c],18e // 398 всего 399 предметов от 0 до 398je mylabel24mov [eax+5490],fe // Повышаем прочность предметаmov [eax+5494],feadd [eax+550c],01 // Просматриваем все предметы в игреjmp returnHere24 // и выбираем нужныйmylabel24:mov [eax+550c],0jmp returnHere24address24:jmp newMem24db 90 90 90 90returnHere24:[DISABLE]address24: {TH.exe+20CB5:}lea esi,[eax+edx+00000DB8]repe movsdunregistersymbol(address24)dealloc(newMem24)
  4. Решил попрактиковаться. А как говориться повторение - мать учения. Написал скрипты для всех 8 шагов (со 2 по 9) Туториала. С этой табличкой вы пройдёте Туториал меньше чем за полминуты. Сама табличка лентяям : Тута -
  5. Тоже не смог найти. Поэтому напишу здесь: NullAlex, при копировании части сообщения, появляется контекстное меню - очень удобное (Спасибо Xipho). Но, при написании сообщения с цитатой, цитата выглядит нормально, после же отправки сообщения, добавляются две пустых строки над цитатой и приходится редактировать сообщение. Ниже пример, не отредактированного сообщения Можно это поправить.
  6. Demono50601, ну это постольку - поскольку. Трейнеры - да, но чтобы их сделать, нужны скрипты. А вот скрипты в основном, особенно вначале, пишутся на ассемблер. Так что хочешь не хочешь, а придётся не много ассемблером позаниматься.
  7. Присоединюсь - С праздником!!! Купаться, к сожалению, тоже не ходил.
  8. Я очень люблю. partoftheworlD, прикольно совпало, я уже очень давно хотел поломать все 3 игры и сделать для всех 1 табличку. На прошлой неделе скачал себе репак от Механиков (где все три игрушки, плюс у меня где-то был МОД "Красные Пески"), а то у меня уже все диски потёрлись. Сегодня начал ломать, смотрю, а тут тоже уже ломают. Фильтровать не сложно, с моим текущим опытом (поиска фильтра) легко нашлась структура, где все характеристики в окне героя отличаются текстовой строкой, так что вот скрипт на редактировании 13 характеристик (пока без боёвки и инвентаря). Версия "Легенды о рыцаре" у меня 1.7 { Game : KB.exe Version: Date : 2016-01-18 Author : Garik66 This script does blah blah blah}[ENABLE]aobscanmodule(WindowCharacter,KB.exe,8B 2C 81 89 6C 24 18) // should be uniquealloc(newmem,$4000)label(code)label(return)label(XAR1)registersymbol(XAR1)label(XAR2)registersymbol(XAR2)label(XAR3)registersymbol(XAR3)label(XAR4)registersymbol(XAR4)label(XAR5)registersymbol(XAR5)label(XAR6)registersymbol(XAR6)label(XAR7)registersymbol(XAR7)label(XAR8)registersymbol(XAR8)label(XAR9)registersymbol(XAR9)label(XAR10)registersymbol(XAR10)label(XAR11)registersymbol(XAR11)label(XAR12)registersymbol(XAR12)label(XAR13)registersymbol(XAR13)registersymbol(WindowCharacter)newmem: push eax mov eax,[edi+04] cmp [eax+14],61747461 // attack jne @f cmp [eax+18],00006B63 jne @f mov [XAR1],ecx@@: cmp [eax+14],6B6F6F62 // booksize jne @f cmp [eax+18],657A6973 jne @f mov [XAR2],ecx@@: cmp [eax+14],73797263 // crystals jne @f cmp [eax+18],736C6174 jne @f mov [XAR3],ecx@@: cmp [eax+14],65666564 // defense jne @f cmp [eax+18],0065736E jne @f mov [XAR4],ecx@@: cmp [eax+14],65707865 // experience jne @f cmp [eax+18],6E656972 jne @f cmp [eax+1c],00006563 jne @f mov [XAR5],ecx@@: cmp [eax+14],65746E69 // intellect jne @f cmp [eax+18],63656C6C jne @f cmp [eax+1c],00000074 jne @f mov [XAR6],ecx@@: cmp [eax+14],6461656C // leadership jne @f cmp [eax+18],68737265 jne @f cmp [eax+1c],00007069 jne @f mov [XAR7],ecx@@: cmp [eax+14],616E616D // mana jne @f mov [XAR8],ecx@@: cmp [eax+14],656E6F6D // money jne @f cmp byte ptr [eax+18],79 jne @f mov [XAR9],ecx@@: cmp [eax+14],65676172 // rage jne @f mov [XAR10],ecx@@: cmp [eax+14],656E7572 // rune_magic jne @f cmp [eax+18],67616D5F jne @f cmp [eax+1c],00006369 jne @f mov [XAR11],ecx@@: cmp [eax+14],656E7572 // rune_might jne @f cmp [eax+18],67696D5F jne @f cmp [eax+1c],00007468 jne @f mov [XAR12],ecx@@: cmp [eax+14],656E7572 // rune_mind jne code cmp [eax+18],6E696D5F jne code cmp [eax+1c],00000064 jne code mov [XAR13],ecxcode: pop eax mov ebp,[ecx+eax*4] mov [esp+18],ebp jmp returnXAR1:dd 0XAR2:dd 0XAR3:dd 0XAR4:dd 0XAR5:dd 0XAR6:dd 0XAR7:dd 0XAR8:dd 0XAR9:dd 0XAR10:dd 0XAR11:dd 0XAR12:dd 0XAR13:dd 0WindowCharacter: jmp newmem nop nopreturn:[DISABLE]WindowCharacter: db 8B 2C 81 89 6C 24 18unregistersymbol(XAR1)unregistersymbol(XAR2)unregistersymbol(XAR3)unregistersymbol(XAR4)unregistersymbol(XAR5)unregistersymbol(XAR6)unregistersymbol(XAR7)unregistersymbol(XAR8)unregistersymbol(XAR9)unregistersymbol(XAR10)unregistersymbol(XAR11)unregistersymbol(XAR12)unregistersymbol(XAR13)unregistersymbol(WindowCharacter)dealloc(newmem){// ORIGINAL CODE - INJECTION POINT: "KB.exe"+465A4"KB.exe"+46587: 8B F8 - mov edi,eax"KB.exe"+46589: 85 FF - test edi,edi"KB.exe"+4658B: 0F 84 6D FF FF FF - je KB.exe+464FE"KB.exe"+46591: 8B 74 24 3C - mov esi,[esp+3C]"KB.exe"+46595: 56 - push esi"KB.exe"+46596: 8B CF - mov ecx,edi"KB.exe"+46598: E8 A3 79 1E 00 - call KB.exe+22DF40"KB.exe"+4659D: 85 C0 - test eax,eax"KB.exe"+4659F: 7C 0C - jnge KB.exe+465AD"KB.exe"+465A1: 8B 4F 0C - mov ecx,[edi+0C]// ---------- INJECTING HERE ----------"KB.exe"+465A4: 8B 2C 81 - mov ebp,[ecx+eax*4]"KB.exe"+465A7: 89 6C 24 18 - mov [esp+18],ebp// ---------- DONE INJECTING ----------"KB.exe"+465AB: EB 06 - jmp KB.exe+465B3"KB.exe"+465AD: 89 5C 24 18 - mov [esp+18],ebx"KB.exe"+465B1: 8B EB - mov ebp,ebx"KB.exe"+465B3: 0F B6 16 - movzx edx,byte ptr [esi]"KB.exe"+465B6: 8B 44 24 1C - mov eax,[esp+1C]"KB.exe"+465BA: 52 - push edx"KB.exe"+465BB: E8 D0 AE 00 00 - call KB.exe+51490"KB.exe"+465C0: 84 C0 - test al,al"KB.exe"+465C2: 0F 84 E4 00 00 00 - je KB.exe+466AC"KB.exe"+465C8: 85 ED - test ebp,ebp}
  9. Razi, либо твои адреса не статичные (не зелёные), хотя думаю ты всё-таки это проверил и адреса статичные; либо, в приведённом тобой примере в [00a3f3e4] не лежит 2. Кажется понял, где может быть ошибка у тебя. Приведи полностью скрипт покажу. Хотя вот из предыдущего скрипта участок (ПРОЧТИ там показана где скорее всего у тебя ошибка): INJECT:jmp code // code замени на newmemnopnopnopnopreturn:registersymbol(INJECT)
  10. Baracuda, если до следующих выходных никто не поможет, попробую чем-нибудь помочь. Игру я ещё не сносил, нужно будет сверить версии игры и установленные DLC. А пока попрощаюсь.
  11. Так подели его, куча примеров на форуме; push eaxmov eax,["witcher3.exe"+028F3F60]mov eax,[eax+0]mov eax,[eax+18]..................// и так далееpop eax
  12. Baracuda, я же тебе в ЛС писал, если ты нашёл указатели правильно, то и прописывай на той инструкции не mov [ecx+000001F8],#999 а адрес с указателями, так как указатели и будут фильтром, т.е. запись в конкретный адрес. mov [[[[[[[[["witcher3.exe"+028F3F60]+0]+18]+20]+40]+40]+1c0]+10]+28],#999 Baracuda, настолько я LUA не знаю (я его так и не изучал, обхожусь ассемблером), нужно пробовать самому вместе с игрой.
  13. Т.е. получается, что скрипт разовый сработал и всё. Странно, неужели только с таймером нужно делать?
  14. Тогда так: function CEButton1Click(sender)GameName = 'witcher3.exe'if(getProcessIDFromProcessName(GameName) == nil) thenreturn endpValue = readInteger'[[[[[[[["witcher3.exe"+028F3F60]+0]+18]+20]+40]+40]+1c0]+10]+28'if (pValue ~= 999) thenwriteInteger('[[[[[[[["witcher3.exe"+028F3F60]+0]+18]+20]+40]+40]+1c0]+10]+28',999)endreturn 1endBaracuda, я же не в курсе на что ты кидаешь этот LUA скрипт. И ты так не объяснил зачем тебе LUA, если всё было проще сделать в АА-скрипте и не парится.
  15. Ну уже не знаю, я те значки копировал, попробуем так: function CEButton1Click(sender)pValue = readInteger'[[[[[[[["witcher3.exe"+028F3F60]+0]+18]+20]+40]+40]+1c0]+10]+28'if (pValue ~= 999) thenwriteInteger('[[[[[[[["witcher3.exe"+028F3F60]+0]+18]+20]+40]+40]+1c0]+10]+28',999)end
  16. Попробуй ещё один вариант: function CEButton1Click(sender)pValue = readInteger'[[[[[[[["witcher3.exe"+028F3F60]+0]+18]+20]+40]+40]+1c0]+10]+28'if (pValue != 999) thenwriteInteger('[[[[[[[["witcher3.exe"+028F3F60]+0]+18]+20]+40]+40]+1c0]+10]+28',999)end
  17. Кажись разобрался: function CEButton1Click(sender)GameName = 'witcher3.exe'if(getProcessIDFromProcessName(GameName) == nil) thenendaddress = getAddress(stringlist_getString(result,0))debug_setBreakpoint(address)debug_removeBreakpoint(address)Local pValue = '[[[[[[[["witcher3.exe"+028F3F60]+0]+18]+20]+40]+40]+1c0]+10]+28'if pValue != 999 thenwriteInteger(pValue,999)endfunction debugger_onBreakpoint()end
  18. Ты ошибся при копировании своего скрипта, я его нашёл: function CEButton1Click(sender)GameName = 'witcher3.exe'if(getProcessIDFromProcessName(GameName) == nil) thenendaddress = getAddress(stringlist_getString(result,0))debug_setBreakpoint(address)debug_removeBreakpoint(address)pValue = '[[[[[[[["witcher3.exe"+028F3F60]+0]+18]+20]+40]+40]+1c0]+10]+28'if pValue != 999 thenwriteInteger(pValue,999)endfunction debugger_onBreakpoint()sanAddress = RCX + 0x4return 1end
  19. Baracuda, попробуй так и отпишись: function CEButton1Click(sender)GameName = 'witcher3.exe'if(getProcessIDFromProcessName(GameName) == nil) thenendaddress = getAddress(stringlist_getString(result,0))debug_setBreakpoint(address)debug_removeBreakpoint(address)pValue = '[[[[[[[["witcher3.exe"+028F3F60]+0]+18]+20]+40]+40]+1c0]+10]+28'if pValue != 999 thenwriteInteger(pValue,999)endfunction debugger_onBreakpoint()end
  20. Baracuda, не замораживается, потому что записываешь 999 не в игровой адрес. Короче выложи свой скрипт, посмотрим его.
  21. Думаю так: writeInteger('ecx+000001F8',999)ЗЫ: Только в этом случае вместо [ecx +1f8]. нужно поставить, точный адрес с указателями. Ну вот ты добавил адрес в своё сообщение, т.е. так: writeInteger('[[[[[[[["witcher3.exe"+028F3F60]+28]+10]+1C0]+40]+40]+20]+18]+0',999)
  22. Да [ENABLE]{$LUA}PlaySound(findTableFile([[Activate]])){$ASM}aobscanmodule(INJECT,game.exe,8B 48 08 89 4B 08) // should be uniquealloc(newmem,$1000)label(Fuel)label(code)label(return)label(money)registersymbol(money)label(fuel)registersymbol(fuel)registersymbol(INJECT)newmem: cmp [ebx+08],3 jne code cmp [ebx+18],4 jne code mov ecx,[ebx+10] cmp [ecx+10],656E6F6D jne Fuel cmp byte ptr [ecx+14],79 jne code fld qword ptr [money] fstp qword ptr [ebx] jmp codeFuel: cmp [ecx+10],6C657566 jne code cmp [ecx+14],6C6C6946 jne code cmp [ecx+18],6576654C jne code cmp byte ptr [ecx+1C],6C jne code fld qword ptr [fuel] fstp qword ptr [ebx]code: mov ecx,[eax+08] mov [ebx+08],ecx jmp returnmoney:dq (double)1000000fuel:dq (double)1000INJECT: jmp newmem nopreturn:[DISABLE]{$LUA}PlaySound(findTableFile([[Deactivate]])){$ASM}INJECT: db 8B 48 08 89 4B 08unregistersymbol(money)unregistersymbol(fuel)unregistersymbol(INJECT)dealloc(newmem)
  23. Конечно, собственно это использование фильтра. cmp [adres1],2jne originalcodemov [adres2],2originalcode:
×
×
  • Создать...

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

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