Посл.ответ |
Сообщение |
Ранг: 3.2 (гость) Активность: 0=0 Статус: Участник
|
Создано: 25 июня 2007 00:13 · Поправил: Jimbo · Личное сообщение · #1
Вопрос вот в чем:
Есть вполне обычный код на с++:
int func()
{
printf("%s","printf 1\n");
printf("%s","printf 2\n");
printf("%s","printf 3\n");
...
В Olly этот код показывается следующим образом:
Обратите внимание, что на 401736 олли определила, что это идет вызов printf, а вот дальше на 401742 и 40174Е этого не происходит. Вопрос почему?
И соответственно bpx printf срабатываеттолько на первом вызове (401736), а вторые два вызова ловятся только если Toggle breakpoint on import.
В чем причина такого поведения?
| Сообщение посчитали полезным: |
|
Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 25 июня 2007 00:43 · Личное сообщение · #2
По-моему эмулятор у неё косячит... Не видит она след. вызовы
з.ы. могу и ошибаться.
----- [nice coder and reverser] | Сообщение посчитали полезным: |
Ранг: 340.0 (мудрец), 22thx Активность: 0.12↘0 Статус: Участник THETA
|
Создано: 25 июня 2007 00:48 · Личное сообщение · #3
Hellspawn пишет:
По-моему эмулятор у неё косячит...
Да, насколько я знаю, дело тут во внутреннем баге самой Оли. Ничего не поделать.
----- Программист SkyNet | Сообщение посчитали полезным: |
Ранг: 3.2 (гость) Активность: 0=0 Статус: Участник
|
Создано: 25 июня 2007 00:49 · Поправил: Jimbo · Личное сообщение · #4
Интересно, но если вместо трех printf написать три scanf, то все отлавливается нормально.
P.S. А знает ли автор о проблеме?
| Сообщение посчитали полезным: |
Ранг: 495.3 (мудрец) Активность: 0.3↘0 Статус: Участник
|
Создано: 25 июня 2007 04:40 · Личное сообщение · #5
Jimbo пишет:
P.S. А знает ли автор о проблеме?
Автор забил на развитие первой версии (вторая пишется почти с нуля).
Jimbo пишет:
И соответственно bpx printf срабатываеттолько на первом вызове
bpx мы вообще не используем, штука очень не надёжная. bp в CmdBar рулит.
----- Всем привет, я вернулся | Сообщение посчитали полезным: |
Ранг: 3.2 (гость) Активность: 0=0 Статус: Участник
|
Создано: 25 июня 2007 05:03 · Личное сообщение · #6
bpx мы вообще не используем, штука очень не надёжная. bp в CmdBar рулит.
В чем-же ее очень не надежность, позвольте поинтересоваться?
| Сообщение посчитали полезным: |
Ранг: 353.0 (мудрец) Активность: 0.37↘0 Статус: Участник resreveR
|
Создано: 25 июня 2007 08:15 · Личное сообщение · #7
Jimbo
Ну раз олька не увидела вызов функи, а он етсь, то бряк по bpx она на него не поставит.
----- Тут не могла быть ваша реклама | Сообщение посчитали полезным: |
Ранг: 309.8 (мудрец), 21thx Активность: 0.17↘0 Статус: Участник
|
Создано: 25 июня 2007 10:26 · Личное сообщение · #8
ога косяк эмулятора... по логике stdcall не портит ebx, а адрес printf в нём... отладчик "запутался" =]
----- Shalom ebanats! | Сообщение посчитали полезным: |
Ранг: 495.3 (мудрец) Активность: 0.3↘0 Статус: Участник
|
Создано: 25 июня 2007 11:16 · Личное сообщение · #9
Jimbo пишет:
В чем-же ее очень не надежность, позвольте поинтересоваться?
Именно в том, что ставятся бряки по результатам анализа, а если анализ глючный? А если прот импорт хитро вызывает?
----- Всем привет, я вернулся | Сообщение посчитали полезным: |
Ранг: 228.7 (наставник), 2thx Активность: 0.12↘0 Статус: Участник malware research
|
Создано: 25 июня 2007 13:13 · Личное сообщение · #10
SLV stdcall ? printf(); разве не __cdecl ?
----- Research is my purpose | Сообщение посчитали полезным: |