eXeL@B —› Софт, инструменты —› Tracer (by Yurichev) |
Посл.ответ | Сообщение |
|
Создано: 08 апреля 2019 08:26 · Личное сообщение · #1 Довольно таки интересная вещь, вроде тут не обсуждалось. Может кому пригодится. Приведу описание от автора: tracer (раннее generic tracer) это win32-отладчик командной строки для выполнения простых отладочных задач. Главные возможности: Установка прерывания выполнении функции, вывод аргументов функции и результата. Установка прерывания в любом месте, вывод состояния регистров процессора и возможность изменить их. Установка прерывания на обращение к любой ячейки памяти и перехват всех обращений к ней. Более развернутое описание, сама программа и документация по ней на русском языке, по | Сообщение посчитали полезным: plutos |
|
Создано: 08 апреля 2019 17:54 · Поправил: difexacaw · Личное сообщение · #2 |
|
Создано: 08 апреля 2019 19:27 · Личное сообщение · #3 |
|
Создано: 08 апреля 2019 23:17 · Личное сообщение · #4 |
|
Создано: 09 апреля 2019 04:18 · Личное сообщение · #5 ну что вы, ребята, в самом деле: чуть что не так, набегаем толпой и ругаем. Он что ли писал этот тул? что не так, пишем автору, все вопросы к нему. А морго выложил и спасибо, будем знать, что такая штука есть. ----- Give me a HANDLE and I will move the Earth. | Сообщение посчитали полезным: hlmadip |
|
Создано: 09 апреля 2019 15:36 · Личное сообщение · #6 |
|
Создано: 09 апреля 2019 17:54 · Поправил: difexacaw · Личное сообщение · #7 morgot > скачайте и попробуйте сами. А зачем мне это тестить, если я полностью механизмы знаю, в двух режимах ? Выложив инструмент это вы должны показать на актуальных примерах как он себя ведёт. А какой смысл взять какую то не рабочую сборку и выложить как что то важное; было бы понятно если бы вы каким то инструментом решили задачу и захотели поделиться. Но а это зачем ? ----- vx |
|
Создано: 10 апреля 2019 00:10 · Личное сообщение · #8 |
|
Создано: 10 апреля 2019 00:51 · Поправил: SegFault · Личное сообщение · #9 |
|
Создано: 10 апреля 2019 02:01 · Личное сообщение · #10 |
|
Создано: 10 апреля 2019 02:04 · Личное сообщение · #11 Инди, в первом посте есть хелп в формате пдф, там много примеров, как именно и где автор юзал свою программу. Откройте и почитайте, там есть есть - и как подменить аргументы функции, и код возврата, и обращение к ячейке памяти и много чего. Смысл это пересказывать? "Актуальные примеры" у каждого свои. Разные специфические упаковщики/антиоткладчики тулза может и не брать, но я тут ничего не исправлю, и пишите автору / юзайте другие инструменты. |
|
Создано: 10 апреля 2019 02:24 · Поправил: dma · Личное сообщение · #12 Крис Касперски когда-то писал о том, что каждый уважающий себя хакер, хотя бы один раз в жизни, должен написать свой отладчик. Для того, чтобы лучше понять принцип его работы и то как он устроен внутри. По-моему, неплохой пример для этих целей. И написан на Си и исходники прилагаются. Самое интересное, когда читал книжку Дениса Юричева, то как-то не обратил на него внимания, так как знания на тот момент были практически нулевые. Так что спасибо Марготу что напомнил про tracer v0.7. | Сообщение посчитали полезным: hash87szf |
|
Создано: 30 апреля 2019 19:37 · Личное сообщение · #13 hash87szf > xdbg трэйсит и прячется от антидебаг лучше Есть одна крайне важная при обычной(TF) трассировке фишка". Это обратные вызовы из гуя, тема старая Я только недавно её вспомнил, так как возник косяк с такой обработкой(не TF). А суть вот в чём. Поток в буфере выполняет системный теневой вызов, не суть важно как, пусть будет sysenter. Инструкция имеет размер два байта. В том же самом буфере исполняется поток инструкций, те сервисный вызов перетирается другим кодом. Но при этом при сервисном возврате из гуя ошибка не возникает, что странно, казалось бы должна. Причина в размере инструкции возврата - это либо такой же сервисный вызов(2b) или это прерывание(тоже 2b), если префиксы не использованы намеренно. Далее я про трассировку и подумал. Аналогичным способом выполняется возврат из гуя при трейсе, только не на буфер, событие немного иное(останов), но не принципиально важно. Сервисный вызов как и возврат нельзя эмулировать(смена мода), он должен быть сделан напрямую. Получается вот что. TF переносится из сервисного вызова гуя в возврат из него. Тоесть вызван гуй с TF = 1 и возврат из него соотвественно с TF = 1 => трассировка далее. Но некоторые инструкции сбрасывают TF на одну инструкцию, нп POP SS/MOV SS(IA: 18.3.1.1). Это значит что такая инструкция при сервисном вызове гуя приведёт к выходу из под трассировки. По идеи это должно сработать на большинстве тулз, которые используют машинную трассировку. ----- vx |
|
Создано: 30 апреля 2019 21:21 · Личное сообщение · #14 |
|
Создано: 30 апреля 2019 21:34 · Личное сообщение · #15 |
|
Создано: 30 апреля 2019 21:42 · Личное сообщение · #16 |
eXeL@B —› Софт, инструменты —› Tracer (by Yurichev) |