Garik66 Опубликовано 3 апреля, 2019 Поделиться Опубликовано 3 апреля, 2019 1 час назад, Alex2411 сказал: сразу краш Попробуй такой скрипт: Спойлер [ENABLE] {$LUA} timer = createTimer(true) timer:setInterval(5) timer.OnTimer = function() Value = readInteger('TestP') Value1 = readInteger('Value') if Value1 ~= nil then writeInteger('Flag',1) else writeInteger('Flag',0) end end {$ASM} alloc(newMem, 2048) label(return) label(code) label(TestP) registersymbol(TestP) label(Flag) registersymbol(Flag) newMem: mov ecx,[ebx+08] mov [TestP],ecx cmp [Flag],0 je code cmp [ecx+10],74726964 jne code // здесь то, что хотим code: mov ecx,[ebx] mov eax,[ebp+14] jmp return TestP: dd 0 Flag: dd 0 Omerta.exe+12F749: jmp newMem return: [DISABLE] {$LUA} timer:setEnabled(false) {$ASM} Omerta.exe+12F749: db 8B 0B 8B 45 14 unregistersymbol(Flag) unregistersymbol(TestP) dealloc(newMem) Отпишись, жду результата. ЗЫ: Стоп!!!! в LUA части не правильно с флагом работаю, нужно не его приравнивать, а в него записывать. ЗЫ1: Поправил. Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 3 апреля, 2019 Автор Поделиться Опубликовано 3 апреля, 2019 25 минут назад, Garik66 сказал: Отпишись, жду результата. попробовал оба скрипта первый и после исправления. крашей нет , но дальше этого сравнения je code не проходит . бряк на cmp [ecx+10],74726964 не дает не одного адреса Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 3 апреля, 2019 Поделиться Опубликовано 3 апреля, 2019 1 минуту назад, Alex2411 сказал: не дает не одного адреса Еще одна ошибка в скрипте. Секунду поправлю. 2 минуты назад, Alex2411 сказал: не проходит . бряк на Поправил, ошибка была здесь Value = readInteger('TestP') забыл в кавычки переменную взять. Теперь попробуй. Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 3 апреля, 2019 Автор Поделиться Опубликовано 3 апреля, 2019 20 минут назад, Garik66 сказал: забыл в кавычки переменную взять. Теперь попробуй. теперь снова вылеиает . как раньше на маленьких адресах 00000100 и каких то больших если отсеить маленькие адреса Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 3 апреля, 2019 Поделиться Опубликовано 3 апреля, 2019 2 минуты назад, Alex2411 сказал: теперь снова вылеиает . как раньше на маленьких адресах 00000100 и каких то больших если отсеить маленькие адреса Понял. Я ничего не поменял. СЕК 4 минуты назад, Alex2411 сказал: теперь снова вылеиает . как раньше на маленьких адресах 00000100 и каких то больших если отсеить маленькие адреса ЗЫ поправил, Ошибка была в том что в Value у нас значение а не прочитанный адрес. Теперь должен отработать нормально Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 3 апреля, 2019 Автор Поделиться Опубликовано 3 апреля, 2019 21 минуту назад, Garik66 сказал: поправил, Ошибка была в том что в Value у нас значение а не прочитанный адрес. Теперь должен отработать нормально вылетает . на 00000010 и на больших значениях . слушай извини может я глупость спрошу , а флаг надо сравнивать cmp [Flag],0 je code или может быть cmp [Flag],0 jne code ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 3 апреля, 2019 Поделиться Опубликовано 3 апреля, 2019 7 минут назад, Alex2411 сказал: спрошу нужно 7 минут назад, Alex2411 сказал: je code все правильно. Ладно я пока сдаюсь. Жаль проверить не могу. Мне завтра в пять. Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 4 апреля, 2019 Автор Поделиться Опубликовано 4 апреля, 2019 20 часов назад, Garik66 сказал: все правильно. значит я не правильо понимаю как это работает . объясни пожалуйста где я не прав. ты копируеешь ecx в метку mov [TestP],ecx потом получаешь Value Value = readInteger('TestP') потом проверяешь число по адерсу Value Value1 = readInteger('Value') потом ставишь флаг в 1 когда по адресу не число if Value1 ~= nil then writeInteger('Flag',1) потом срвнивашь флаг cmp [Flag],0 je code получаеться что когда флаг 1 то прыжка нет . тогда скрипт после флага 1 переходит дальше к cmp [ecx+10],74726964 эта инструкция пытаеться сравнить полсе флага 1 не число плюс смещение . как это работает ? мне кажеться наоборот не число флаг 1 должно прыгать на code Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 7 апреля, 2019 Поделиться Опубликовано 7 апреля, 2019 В 04.04.2019 в 19:44, Alex2411 сказал: значит я не правильо понимаю Нужно именно В 04.04.2019 в 19:44, Alex2411 сказал: writeInteger('Flag',1) и В 04.04.2019 в 19:44, Alex2411 сказал: cmp [Flag],0 je code Я поправил скрипт - посмотри здесь Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 8 апреля, 2019 Поделиться Опубликовано 8 апреля, 2019 В 03.04.2019 в 18:31, Alex2411 сказал: вот пример скрипт из игры Omerta - City of Gangsters Вот пока скрипт (но обычным моим методом - обычно нужно 3 фильтра): "Infinite Money 666 $" Спойлер { Game : Omerta.exe Version: Date : 2019-04-08 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(Money,Omerta.exe,8B 0B 8B 45 14) // should be unique alloc(newmem,$1000) label(code) label(return) registersymbol(Money) newmem: mov ecx,[ebx+10] lea eax,[ebx+78] cmp ecx,eax jne code cmp [ebx+04],3 jne code cmp [ebx+40],5 jne code mov [ebx],#666 code: mov ecx,[ebx] mov eax,[ebp+14] jmp return Money: jmp newmem return: [DISABLE] Money: db 8B 0B 8B 45 14 unregistersymbol(Money) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Omerta.exe"+12F749 "Omerta.exe"+12F726: 8B B1 A0 00 00 00 - mov esi,[ecx+000000A0] "Omerta.exe"+12F72C: E8 8F 23 00 00 - call Omerta.exe+131AC0 "Omerta.exe"+12F731: 83 78 04 00 - cmp dword ptr [eax+04],00 "Omerta.exe"+12F735: 75 08 - jne Omerta.exe+12F73F "Omerta.exe"+12F737: 80 4A 06 01 - or byte ptr [edx+06],01 "Omerta.exe"+12F73B: 33 FF - xor edi,edi "Omerta.exe"+12F73D: EB 02 - jmp Omerta.exe+12F741 "Omerta.exe"+12F73F: 8B F8 - mov edi,eax "Omerta.exe"+12F741: 85 FF - test edi,edi "Omerta.exe"+12F743: 0F 85 91 00 00 00 - jne Omerta.exe+12F7DA // ---------- INJECTING HERE ---------- "Omerta.exe"+12F749: 8B 0B - mov ecx,[ebx] "Omerta.exe"+12F74B: 8B 45 14 - mov eax,[ebp+14] // ---------- DONE INJECTING ---------- "Omerta.exe"+12F74E: 5F - pop edi "Omerta.exe"+12F74F: 89 08 - mov [eax],ecx "Omerta.exe"+12F751: 8B 53 04 - mov edx,[ebx+04] "Omerta.exe"+12F754: 5E - pop esi "Omerta.exe"+12F755: 89 50 04 - mov [eax+04],edx "Omerta.exe"+12F758: 5B - pop ebx "Omerta.exe"+12F759: 8B E5 - mov esp,ebp "Omerta.exe"+12F75B: 5D - pop ebp "Omerta.exe"+12F75C: C3 - ret "Omerta.exe"+12F75D: 8B C8 - mov ecx,eax } Потесть - отпишись о результатах. А я пока посмотрю все-таки как сделать фильтр через указатели. Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 8 апреля, 2019 Автор Поделиться Опубликовано 8 апреля, 2019 25 минут назад, Garik66 сказал: Потесть - отпишись о результатах. сразу пролезает через фильтр еще несколько адерсов. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 8 апреля, 2019 Поделиться Опубликовано 8 апреля, 2019 Только что, Alex2411 сказал: сразу пролезает через фильтр еще несколько адерсов. Какие? У меня просто их нет. Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 8 апреля, 2019 Автор Поделиться Опубликовано 8 апреля, 2019 11 минут назад, Garik66 сказал: Какие? У меня просто их нет. еще один адрес точно с деньгами связян , а остальные не понятно . вроде какие то случацные . потом их будет еще больше пролезать когда на карте появяться другие банды и здания . Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 8 апреля, 2019 Поделиться Опубликовано 8 апреля, 2019 1 минуту назад, Alex2411 сказал: еще один адрес точно с деньгами связян , а остальные не понятно . вроде какие то случацные . потом их будет еще больше пролезать когда на карте появяться другие банды и здания . у меня черт ничего не вылезает. А жаль. Подобрал бы лучший фильтр. Хотя подожди, а посмотри теперь у этих адресов по смещению +08 у всех указатели? Если так, то можно будет добавить тот текстовый фильтр Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 8 апреля, 2019 Автор Поделиться Опубликовано 8 апреля, 2019 35 минут назад, Garik66 сказал: у меня черт ничего не вылезает. А жаль. надо не много подождать игровое время. они появляються постсепенно примерно за минуту. игра сразу не крашиться , но в другие адреса то же пишеться 666 36 минут назад, Garik66 сказал: посмотри теперь у этих адресов по смещению +08 у всех указатели? не у всех . есть 0000000с и другие . а укоторых указатели то не на деньги , а что то другое проблема что такие фильтры могут пропустить не правильные адреса не сразу , а когда в игры произошло какое то событие или какая то загрузка . долго ждать нужно . самая главная проблема что иногда фильтр не понятно перестает работать и приходиться снова искать и менять . Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 8 апреля, 2019 Поделиться Опубликовано 8 апреля, 2019 14 минут назад, Alex2411 сказал: самая главная проблема что иногда фильтр не понятно А это текстовой фильтр .....money, ты уверен у других адресов не появиться? Например у конкуретных босов Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 8 апреля, 2019 Автор Поделиться Опубликовано 8 апреля, 2019 17 минут назад, Garik66 сказал: А это текстовой фильтр .....money, ты уверен у других адресов не появиться? Например у конкуретных босов конечно появиться . но главное что после этого фильтра точно не будет случайных не понятных адресов . будут только адреса денег потому что мы знаем точно что это фильтр денег.. и еще важно что этот фильтр потом не измениться . а фильтры типа cmp [ebx+04],3 jne code cmp [ebx+40],5 jne code не понятно что фильтруют . ты же не знаешь что значит число 3 или 5 , а значит не знаешь когда оно может измениться и почему . и у каких то адресов то же может появиться это число и он пролезет через фильтр , а ты даже не заметишь . Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 9 апреля, 2019 Автор Поделиться Опубликовано 9 апреля, 2019 В 02.04.2019 в 19:05, MasterGH сказал: Вот так ставим объясни пожалуйста . я ставлю трассеровку на данные как ты показал . что бы получить нужный трасер должна сработать нужная инструккця , а когда к данным обращаються несколько инструкций то срабатывает первая которая обратиться к данным и трасер получаеться не тот. как сделать что бы трасер на данные срабатывал на нужную мне инструкцию , ане на первую ? там есть окошко start condition , но я не знаю что туда написать Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 9 апреля, 2019 Поделиться Опубликовано 9 апреля, 2019 2 часа назад, Alex2411 сказал: срабатывал на нужную мне инструкцию , условный бряк Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 9 апреля, 2019 Автор Поделиться Опубликовано 9 апреля, 2019 16 минут назад, Garik66 сказал: условный бряк я понимаю . как сделать ? что надо в условие написать ? пысы . это я продолжаю копать омерту Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 9 апреля, 2019 Поделиться Опубликовано 9 апреля, 2019 8 минут назад, Alex2411 сказал: я понимаю . как сделать ? что надо в условие написать ? http://bfy.tw/N95v Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 11 апреля, 2019 Автор Поделиться Опубликовано 11 апреля, 2019 не кто не может ответить и объснить ? (( Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 11 апреля, 2019 Поделиться Опубликовано 11 апреля, 2019 4 часа назад, Alex2411 сказал: не кто не может ответить и объснить ? (( И для кого я снимаю видео? Вот в этом видео я рассказываю про условный бряк : Спойлер Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 11 апреля, 2019 Автор Поделиться Опубликовано 11 апреля, 2019 57 минут назад, Garik66 сказал: И для кого я снимаю видео? Вот в этом видео я рассказываю про условный бряк : и для кого я пишу вопросы которые не кто не читает ? я смотрел твое видео . в твоем видео нет не одного слова про ответ на мой вопрос который ты не прочитал . я не спрашивал как вообше ставить условный бряк . я спрашивал как написать условие когда трасер снимаеться с бряка на данных , а не бряка на инструкции . а в твоем ролике бряк на инструкции . я спросил как отсеять по условию не нужные инструкции , а мне зачем то показывают как отсеять адреса котрые я сам знаю как отсеять.. еще и минусы мне ставят и в гугл на другие форумы посылают ((((( не хотите отвечать раз думаете глупый вопрос тогда не отвечали бы. зачем минусить и надсмехаться Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 11 апреля, 2019 Поделиться Опубликовано 11 апреля, 2019 Здесь задаются условия срабатывания брейкпоинта (нажать Ctrl + B). Нужно заранее знать EIP или RIP адреса инструкций, которые нужно исключить. Спойлер Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения