OSDev http://osdev.su/ |
|
Процессоры http://osdev.su/viewtopic.php?f=18&t=1023 |
Страница 3 из 3 |
Автор: | Bargest [ 07 ноя 2015, 13:58 ] |
Заголовок сообщения: | Re: Процессоры |
Цитата: какая команда в последний раз меняла FPU register ST5 Никак. Только анализировать код и искать нечто похожее. Цитата: Также я хотел бы узнать, как раскрутить (т. е. узнать адреса материнских ф-ций) стек. Ну, чаще всего в начале функции ЯВУ идет push ebp и mov ebp, esp. Поэтому ebp почти всегда содержит адрес в стеке рядом с местом хранения адреса возврата, а если "в уме" делать mov ebp, [ebp], то можно скакать между функциями вверх. Нормальный отладчик часто подсвечивает в стеке те адреса, которые похожи на адреса возврата, поэтому такие прыжки быстро позволяют найти нужное место. Если же ebp используется где-то иначе, то всё, конечно, порушится, и придется руками определять, насколько глубоко ушли в стек в очередной функции и отсчитывать столько байт вверх, чтобы получить адрес возврата. |
Автор: | dixie [ 09 ноя 2015, 14:17 ] |
Заголовок сообщения: | Re: Процессоры |
Кстати говоря - если вопрос - замедлить софтинку - почему б какой-ньть rmclock не поставить? Там же частота зажимается в несколько раз. Выставить такой режим постоянно - и будет 300-800 МГц, на все ядра - думаю, вполне хватит. На любом интеле, даже на относительно старых - делитель на 8 есть, на AMD - Pstates. |
Автор: | Bire [ 10 ноя 2015, 00:57 ] |
Заголовок сообщения: | Re: Процессоры |
dixie писал(а): Кстати говоря - если вопрос - замедлить софтинку - почему б какой-ньть rmclock не поставить? Там же частота зажимается в несколько раз. Выставить такой режим постоянно - и будет 300-800 МГц, на все ядра - думаю, вполне хватит. На любом интеле, даже на относительно старых - делитель на 8 есть, на AMD - Pstates. Конкретно с этой прогой возникла след. проблема: неподписаный драйвер RtCore64, без которого она не пашет. Вообще, я уже пробовал софт для даунклокинга. CPUKiller 3.0 тормозит только систему целиком, что мне не нравится. NTSleep замедлял выполнение всей программы, но максимального замедления именно для нужного мне момента было недостаточно, в то время, как для остальных частей программы оно было избыточным. Так я решил пойти путём ревёрса. Новости такие: нашёл в настройках регулятор скорости выполнения того самого момента. Значение ползунка сохраняется в бинарный конфиг со значениями от 00 до 0F вместе с ещё тремя парам-ми. Решил отследить, куда попадает этот параметр и на что умножается в программе. Для этого начал шерстить GetFileSize. Можно ли как-то узреть результат работы CALL <somefunc>, идущего после GetFileSize? Конкретно я хочу найти рез-т работы ReadFile/NtReadFile. |
Автор: | Bargest [ 10 ноя 2015, 01:58 ] |
Заголовок сообщения: | Re: Процессоры |
Цитата: Конкретно я хочу найти рез-т работы ReadFile Ну readfile читает в буфер. Следовательно, если перед вызовом функции запомнить значение второго параметра функции, сделать step over, и перейти по запомненному адресу, попадешь на начало считанных данных. |
Автор: | Bire [ 14 ноя 2015, 22:40 ] |
Заголовок сообщения: | Re: Процессоры |
В общем, нашёл ф-цию чтения конфига. Там 4 процедуры чтения по 4 байта. Мне нужно отследить судьбу одного из значений, но каждые четыре байта записываются по одному адресу. Есть мысли, куда ещё может писаться это значение? |
Страница 3 из 3 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |