Есть программа без отладчика она запускается норм, с отладчиком OllyDbg (plugin Phantom 1.54 со всеми включенными опциями) после отладки вываливается в Access violation when writing to [00000000], вот собственно не хитрый участок кода: MOV EAX,DWORD PTR SS:[EBP+8] MOV EDX,DWORD PTR SS:[EBP-20] MOV ECX,EAX POP EDI POP ESI POP EBX MOV DWORD PTR DS:[ECX],EDX MOV EDX,DWORD PTR SS:[EBP-1C] MOV DWORD PTR DS:[ECX+4],EDX
Кто-то может подсказать что искать, или что в таких случаях делать, и как запуск с отладчиком и без отладчика влияет на работу программы, в инете искал но там не то всё.
Влияет следующим образом. Прежде чем поток вернётся в юзермод для обработки исключения на отладочный порт доставляется сообщение, которое дебуггер должен обработать. Вот видимо криво обрабатывает. Оля это лучший дизассемблер, ида рядом с олей не стояла. Но как дебуггер это гуан, не потомучто реализация такая, а так как сам механизм дебугапи не позволяет исполнить полноценную отладку. В таком случае берём ядреный дебуггер, ставим условный останов на ISR. В случае страничного нарушения все доступные дебуггеры идут лесом, сисер и виндбг криво #PF обрабатывают, что нормально отладку не позволяет исполнить, только посредством хака.
Clerk Видно так и получилось, поставил BP на write, access значений EBP+8(0012FA60), EBP-20(0012FA38), что-то побрейкало, потом нормально стало BP убрал ничего не менял, щас нормально стал работать, то есть под отладчиком стартует прога. =\