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

как задать условие на трассеровку?

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

6 часов назад, partoftheworlD сказал:

а так же книги ,

 

полистал . шутишь ? новичку это даже на русском сложно понять , а на англ вообще мрак . я с чит енжин до сих пор не во всем разобрался , а нормального мануала на чит енжин давно нет , поэтому спрашиваю тут  как сделать то как сделать это. а в специальных прогах нужно хотя бы начальные знания и навыкы програмера , которых у меня нет .

 

6 часов назад, partoftheworlD сказал:

делающее то, что тебе нужно в один клик

 

я не знаю как это сделать . ты прав , в чит енжин тратить время на костыли не удобно , но там  я хоть представляю как делать . а как сделать то же самое в x64dbg мне вообще не понятно . мне кажется это инструмент не для читерства в играх .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
27 минут назад, Alex2411 сказал:

а как сделать то же самое в x64dbg

 

смотришь в документации объявленный счетчик срабатываний брейкпоинтов( $breakpointcounter), выбираешь вкладку трассировка, выбираешь тип трассировки с заходом или без захода в вызовы, появляется окошечко и туда вписываешь любые условия, для остановки, если остановка случилась, то что необходимо сделать и т.д. Вот пример, трассировка начнется, если счетчик срабатываний инструкции будет больше 1000.
image.png.f4d0a2e009d374c34212f07722d561c3.png

 

Вот еще пример, дампера значений с инструкции, там про трассировку с условием более подробно и надеюсь понятно написано.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, partoftheworlD сказал:

Вот пример

 

у меня  не получается . попробовал на туториале от чит енжин. взял инструкцию из step 2 сначала для проверки сделал на ней трассер в чит енжин. все отлично работает . потом перезапустил туториал , присоеденил x64dbg , в дизассемблере нашел ту же инструкцию , выделил , перешел на вкладку трассеровка , открыл как у тебя окно трассеровка с заходом , условия не ставил , а просто нажал ок. чего то мелькнуло и внизу пишет завершен достигнута точка останова . и все. нажимаю hit me в туториале и не чего не происходит .  где эта трассеровка не известно , куда смотреть не понятно , в журнале нет , в внешнем файле то же нет .я не понимаю что надо делать и как это работает . попробовал запустить из того же окна еще раз нажал ок , то вообще выскакивает ошибка , пишет не могу задать текст журнала/условие или пишет не могу выполнить трассеровку.

Поделиться сообщением


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

у меня вопрос.
когда смотрю трассеровку  что бы узнать  откуда появилось  значение в регистре или памяти  я смотрю вверх  от  инструкции где сработал трассер..  там есть инчтрукция call eax . как мне узнать какой был еах для моего трассера  что бы посмотреть чт делает call ?  поставить бряк перед  call eax  способ не работает  потому что срабатывает постоянно на много адресов и еах всегда разный , а на какое  число фильтр или условие поставить что бы отсеять нужный трассер  я не знаю .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
59 минут назад, Alex2411 сказал:

как мне узнать какой был еах

Поставь до call eax брякпоинт и после него, там где тебе нужно проверить eax, потом смотришь значение на первом брякпоинте, запускаешь, и так делаешь до попадания на 2 брякпоинт после запуска первого, и вот какое было значение eax до попадания на 2 брякпоинт, это то что тебе нужно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
47 минут назад, imaginary сказал:

Поставь до call eax брякпоинт и после него, там где тебе нужно проверить eax, потом смотришь значение на первом брякпоинте, запускаешь, и так делаешь до попадания на 2 брякпоинт после запуска первого, и вот какое было значение eax до попадания на 2 брякпоинт, это то что тебе нужно

 

это получиться многие сотни раз или тысячи надо делать ? не понятно .
например код такой
call eax
mov ecx,ebx
когда значение  ebx  нужное мне  я хочу узнать откуда записывает значение в ebx.  туда записывает  внутри  call eax  потому что перед  call  значение ebx другое . инструкция  call eax  постоянно работает ,а в eax меняется много  разных адресов . я могу поставить бряк на call eax , но он постоянно срабатывает очень много раз , а какое надо  условие для срабатывание что бы посмотреть код  в call eax только  для моего трассера  я не знаю .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, Alex2411 сказал:

как мне узнать какой был еах для моего трассера

Посчитай на бумажке как формируется eax, смотря по инструкциям, которые были выше.

Поделиться сообщением


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

Как вариант, можно посмотреть значение какого-нибудь из соседних регистров. Если вместе значение ebx будет коррелировать с каким-либо значением другого регистра, можно поставить бряк на колл условный, и в условии прописать этот соседний регистр. Например, ты заметил, что когда ebx равен нужному тебе значению, в edx тоже лежит какое-то определенное значение. Вот опираясь на edx и можно попробовать поставить бряку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
6 часов назад, Alex2411 сказал:

это получиться многие сотни раз или тысячи надо делать ?

Нет, ты можешь сделать фильтр что бы уже проверенные адреса которые не ведут к твоей инструкции игнорировались, до call eax сделать внедрение и там задавать условие вроде такого
 

Спойлер

cmp eax, (не верный адрес)
je code
cmp eax, (не верный адрес2)
je code
cmp eax, (не верный адрес...)
je code

nop
nop <--- и вот сюда можно поставить брякпоинт
nop

code:
...

 

Я не думаю что у тебя там так много вариантов будет, скорее просто они много раз вызываются

Поделиться сообщением


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

кажется я придумал простой  способ что бы сразу без отсева  найти нужный call eax . надо попробовать . надеюсь получится ..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
23 часа назад, Alex2411 сказал:

нужный call eax

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, Garik66 сказал:

Найти значения регистра уникальное для твоего поиска и используй его для условного бряка.

 

как это сделать ? перед call eax  регистр еах принимает  многие десятки значений и постоянно  срабатывает многие сотни раз . внутри call eax  большой кусок кода  там есть прыжки и  еще вызовы . как ты найдешь  уникальне значение ?
пысы. я спросил может кто то реальный способ посоветует . вчера у меня появилась идея  как легко найти нужный еах , но  не знаю получиться или нет . нужно скорее  добраться  до компа проверить .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 17.10.2019 в 14:51, Alex2411 сказал:

кажется я придумал простой  способ что бы сразу без отсева  найти нужный call eax . надо попробовать . надеюсь получится ..

 

16 часов назад, Alex2411 сказал:

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

 

ураааа . получилось ))))))))))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
20 часов назад, Alex2411 сказал:

ураааа . получилось ))))))))))))

Это не ответ. Принято, если найдено решение, описать его.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 19.10.2019 в 12:05, Alex2411 сказал:

получилось

 

 

в общнм идея такая .
чтобы найти нужный еах в коде

call eax
mov ecx,ebx

для моего числа  ebx я сделал примерно так

Спойлер

flag:
 dd 0

code:
cmp [flag],1
je @f
mov [metka],eax

@@:
call eax
mov ecx,ebx
cmp ebx,нужное мне число
jne exit
mov [flag],1
jmp exit

 

флаг=0 поэтому регистр еах перед срабатыванием call eax постоянно сохраняеться в метку . когда после  call eax регистр ebx станет равно моему числу , то флаг ставиться =1 . тогда запись еах в метку остановиться , а в метке останеться последнее значение еах . это значение равно еах в  call eax  для моего числа в ebx.

  • Плюс 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 часов назад, Alex2411 сказал:

в общнм идея такая .

Отличная идея!!! (Вот это я и называю -> Играть по своим правилам.:D)
Только не забываем про тег "спойлера".

Поделиться сообщением


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

как в длинной трассеровке  найти адрес который мне нужен ?  поиск в трассеровке  не работает  просит написать луа . чит енжин 7 версия.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
31 минуту назад, Alex2411 сказал:

как в длинной трассеровке  найти адрес который мне нужен ?  поиск в трассеровке  не работает  просит написать луа . чит енжин 7 версия.

 

Условие LUA

 

Для x86
EIP==0x00000000

 

Для x64
RIP==0x00000000

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, Alex2411 сказал:

поиск в трассеровке  не работает

Можешь сохранить трейслог и открыв его в текстовом редакторе искать что нужно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
17 часов назад, Hack сказал:

Для x64
RIP==0x00000000

 

я думал так искать , но этот регистр  отличаеться  на разных трассеровках . адрес одинаковый  game.exe+1234 , а регистр разный .
а по адресу  game.exe+1234 поиск есть ?   вроде раньше в  чит енжин был поиск текста в трассеровке .

 

17 часов назад, partoftheworlD сказал:

Можешь сохранить трейслог и открыв его в текстовом редакторе искать что нужно

 

я так и пробовал делать , но в трейслог  не посмотреть значения  регистрв  fpu xmm  не видно стек  не понятные флаги .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, Alex2411 сказал:

 

я думал так искать , но этот регистр  отличаеться  на разных трассеровках . адрес одинаковый  game.exe+1234 , а регистр разный .
а по адресу  game.exe+1234 поиск есть ?   вроде раньше в  чит енжин был поиск текста в трассеровке .

 

 

я так и пробовал делать , но в трейслог  не посмотреть значения  регистрв  fpu xmm  не видно стек  не понятные флаги .

RIP==getAddress('game.exe')+0x1234

 

Можно еще заставить exe загружаться статический.

Изменено пользователем Hack

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
22 минуты назад, Hack сказал:

RIP==getAddress('game.exe')+0x1234

 

не находит . в трассере  это работает ?

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

×

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

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