Привет. Есть программа,работающая как прокси.Использует библиотеку cygwin1.dll. При отладке ,программа вываливается с ошибкой "The memorey could not be read" Код (Text): cygwin1.dll:610B41FB cmp dword ptr [eax+4], 0DF0DF046h -< здесь падает cygwin1.dll:610B4202 jz loc_610B434D cygwin1.dll:610B4208 mov eax, large fs:4 cygwin1.dll:610B420E mov edx, [ebp-28h] cygwin1.dll:610B4211 sub eax, 319Ch cygwin1.dll:610B4216 mov [eax+0C30h], edx cygwin1.dll:610B421C mov edx, [ebp-24h] cygwin1.dll:610B421F mov [eax+0C34h], edx cygwin1.dll:610B4225 xor eax, eax cygwin1.dll:610B4227 cygwin1.dll:610B4227 loc_610B4227: ; CODE XREF: cygwin1.dll:610B436Fj cygwin1.dll:610B4227 test al, al cygwin1.dll:610B4229 jz loc_610B4314 cygwin1.dll:610B422F mov ebx, [edi] cygwin1.dll:610B4231 mov eax, 0FFFFFFFFh cygwin1.dll:610B4236 cmp dword ptr [ebx+1Ch], 2 cygwin1.dll:610B423A jz short loc_610B4241 cygwin1.dll:610B423C call near ptr unk_610766B0 При пропуске исключения,далее падает здесь: Код (Text): cygwin1.dll:610AC3FA cmp dword ptr [eax+4], 0DF0DF046h -< здесь падает cygwin1.dll:610AC401 jz loc_610AC4FC cygwin1.dll:610AC407 mov eax, large fs:4 cygwin1.dll:610AC40D mov edx, [ebp-18h] cygwin1.dll:610AC410 sub eax, 319Ch cygwin1.dll:610AC415 mov [eax+0C30h], edx cygwin1.dll:610AC41B mov edx, [ebp-14h] cygwin1.dll:610AC41E mov [eax+0C34h], edx cygwin1.dll:610AC424 xor eax, eax cygwin1.dll:610AC426 cygwin1.dll:610AC426 loc_610AC426: ; CODE XREF: cygwin1.dll:610AC51Ej cygwin1.dll:610AC426 test al, al cygwin1.dll:610AC428 jz loc_610AC4CF cygwin1.dll:610AC42E mov ebx, [esi] cygwin1.dll:610AC430 mov eax, 0FFFFFFFFh cygwin1.dll:610AC435 cmp dword ptr [ebx+1Ch], 2 cygwin1.dll:610AC439 jz short loc_610AC440 cygwin1.dll:610AC43B call near ptr unk_610766B0 Адреса разные,а вот код похож. Что это? Антиотладка или cygwin1.dll глубоко лезет в недры винды и IDA не справляется из-за юзермодной отладки? Я в общем-то новичек во всех этих делах и мне удобно было бы разбираться в IDA,чем в Soft-ice(в нем все ок без всяких плагинов,типа iceext). Буду рад любым подсказкам=)
нутак иди в call stack, посмотри с какого експорта ваще сюда попал. если у функи есть имя - может даже конкретнее поймеш ситуацию. имхо 80% - все дело в некорректных аргументах переданых в функцию.
кроме того неизвестно какая версия сугвина у тебя, нарыл в завалах 1.5.18 - там кусок попадающий в первый твой снип - .text:610B41E0 ; int __cdecl log10(double) однозначно непохож. как и второй снип который попадает в область какой то неекспортируемой функи.
trash_master сорри,что не отвечал.Вообщем я кажется не в ту тему написал=) Хотел в тему для новичков=)) Ну да ладно.Поставил в иде-не останавливаться на исключениях и передавать исключение программе и прокатило,пока отлаживается=) Спасибо за советы! Если что,я еще вернусь