Hilling, не стоит иронизировать, я просто привел выдержку именно автопути, а не обычного движения. Твоего поста с восемью аргументами я действительно не видел. N00bSa1b0t, Hilling, спасибо за подсказку, честно говоря я не пробовал вместо Arg8 подставить 0, действительно работает. А вот по поводу того, что Arg8 был раньше, не совсем согласен, в предыдущей версии клиента передавалось только 7 аргументов:
Народ, помогите пожалуйста, всю голову сломал.
Не работает WalkCall, крашит клиент:
Вы пробовали установить, в каком именно месте "крашит"?
Ну, я например обычно это делаю так:
1)задаю адрес "флага"
2)в "подозрительных" местах устанавливаю команду, записать контрольное значение по этому адресу...
Пример:
кусок асм кода
MOV [flagadress] , 1
кусок асм кода
MOV [flagadress] , 2
кусок асм кода
MOV [flagadress] , 3
кусок асм кода
MOV [flagadress] , 4
кусок асм кода
MOV [flagadress] , 5
Далее, в зависимости, от того, что успеет записаться по этому адресу до краша, можно судить о том, где примерно возникает ошибка. Ну это при условии, что клиент не кикается а только зависает, и он еще продолжает висеть.
ну так он может возникать в разных местах в самом коде который инжектируется, может возникать при передаче неправильных аргуметов в functioncall1,2,3 а может еще где-то. У меня например возникал краш не поверишь где, в том месте где идет запись координат:
mov dword ptr[ecx+$20], eax
mov eax, z
mov dword ptr[ecx+$24], eax
mov eax, y
mov dword ptr[ecx+$28], eax
Безобидное казалось бы место. А нет. И таким образом я установил, что операции чтения и записи лучше производить при помощи функций OpenProcess ReadProcessMemory WriteProcessMemory. В самом асм. Итог - крашей как не бывало. В частности, код из первого поста у меня работает исправно, с поправкой на то, что операции чтения и записи из памяти и в память, я прпоизвожу этими функциями. Код длиннее конечно, но зато работает.
ну так он может возникать в разных местах в самом коде который инжектируется, может возникать при передаче неправильных аргуметов в functioncall1,2,3 а может еще где-то. У меня например возникал краш не поверишь где, в том месте где идет запись координат:
mov dword ptr[ecx+$20], eax
mov eax, z
mov dword ptr[ecx+$24], eax
mov eax, y
mov dword ptr[ecx+$28], eax
Безобидное казалось бы место. А нет. И таким образом я установил, что операции чтения и записи лучше производить при помощи функций OpenProcess ReadProcessMemory WriteProcessMemory. В самом асм. Итог - крашей как не бывало. В частности, код из первого поста у меня работает исправно, с поправкой на то, что операции чтения и записи из памяти и в память, я прпоизвожу этими функциями. Код длиннее конечно, но зато работает.
Как у тебя сейчас выглядит этот кусок кода, я его из пви по разному пробовал. Грешу тоже на это место.
Как у тебя сейчас выглядит этот кусок кода, я его из пви по разному пробовал. Грешу тоже на это место.
имеешь ввиду в "нормальном виде" или в моей модификации? Если его перевести в нормальный вид то так оно и выглядит как в первом посте, там ведь просто тупо запись по структуре. А если в моей "модификации", то он выглядит очень сложно и не понятно). Тебе вместо того чтобы разбираться в моем путаном коде,проще сделать по другому(если возникает такая же проблема с чтением записью при помощи асм, как и у меня): убрать этот кусок и вместо него сделать что-то типа записи(не асм) через штатные функции записи того языка на котором пишешь. по адресам:
ga+host+actionarr+18+0+20
ga+host+actionarr+18+0+24
ga+host+actionarr+18+0+28
Запись производить либо до либо после самого инжекета, как правильнее и безопасней я не проверял.
та версия, что ты выложил очень старая) Она и на прошлой обнове бы не пошла с теми оффсетами, и на позапрошлой скорее всего тоже, не помню точно какие они были. Скорее всего в том виде, в котором она есть, не пойдет даже если подобрать оффсеты. там структура поменялась.
Не могу запустить( Кому не трудно, помогите! [Ссылки могут видеть только зарегистрированные пользователи. ] Пример на Delphi.
У всех работает, а пример никто не выложил! Проверял с помощью Cheat Engine параметры передаются верно, а клиент все равно крошит.
Нашел проблему, да действительно старый код работает, проблема была в использовании регистров, после обновы регистры поменялись, поэтому и крошил клиент.
Отцы программеры, не ужели трудно рабочий код выложить инжекта? Мне уже в пм пишут.(я только учусь)
Подсказка:
Код:
opcode=opcode+"6A00" ;6A 00 PUSH 0 // Вот это убрать и будет работать(криво но будет)
opcode=opcode+"6A01" ;6A 01 PUSH 1
opcode=opcode+"57" ;57 PUSH EDI
opcode=opcode+"6A01" ;6A 01 PUSH 1
opcode=opcode+"BA00000000" ;BA 00000000 MOV EDX,Walk3
opcode=opcode+"ffd2" ;FFD2 CALL EDX
opcode=opcode+"61" ;61 POPAD
opcode=opcode+"c3" ;C3 RETN
PUSH 0 // Вот это убрать и будет работать(криво но будет)
Последний раз редактировалось diagnost; 18.06.2015 в 05:07.