Надо получить текст из простого едита(прогу сам писал для теста на Delphi 2010). Скажите как вы это обычно делаете. Следующие варианты (обычные так сказать) уже 100 раз пробовал безуспешно: 1) Искать строку с сообщением о том что неправильный ключ - такое сообщение прога просто не выводит. 2) Брякнутся на GetWindowText,GetDlgItemText,GetWindowWord,GetWindowLong - не брякается 3) Ставить bpx memcpy,bpx hmemcpy - просто не брякается даже на CopyMemory ставил не брякается. Думаю тут VCL - ка в своих контролах не юзает GetWindowText и тд. а посылает окнам - контролам сообщения типа WM_GETTEXT,WM_SETTEXT. К сожалению в Ольке не смог поставить бряк на такие мессаги а айс на 7 - мом ставить безнадежное дело она даже под XP sp 2 еле тащится.
Actor пишет: Надо получить текст из простого едита имеешь в виду брякнуться на получении текста? если это vcl, то перехватывай CallWindowProcA/W с Msg==WM_GETTEXT либо используй ida, idr или dede и смотри где читается свойство Text
Actor пишет: Dede у меня вешается сразу после загруки приложения в память. C помощью DeDe вряд ли что-то выйдет, он с 2010 делфи вообще не должен нормально дружить.
Actor пишет: а как это в IDA сделать? попробовать посмотреть есть ли функа @Controls@TControl@GetText$...... (может не распознаться, т.к. для 2010 сигнатуры нужны, либо может использоваться другая, хз что там добавили) и откуда она вызывается или искать комментарий вида Controls::TControl::GetText.......
Actor пишет: Думаю тут VCL - ка в своих контролах не юзает GetWindowText и тд. а посылает окнам - контролам сообщения типа WM_GETTEXT,WM_SETTEXT Ну да так и есть.
Actor пишет: Надо получить текст из простого едита А если найти юникод-строку в памяти - не катит?
Хорошая шутка Zlovar. мне не нужно програмно получать текст а найти текст во время работы програмы (чтобы в дальнейшем на реальных новых прогах можно было серийник посмотреть или найти и прибить защиту и т.д ). Я и раньше крекингом занимался(гдето 5-6 лет назад) но потом бросил. А теперь знания уже наверное устарели - традиционными методами не смог прерваться по едиту, потому то и обратился к вам чтобы вы ввели меня в дело. По ходу думаю можно найти введеную строку в MemoryMap и поставить на нее брейк OnAccess а дальше немного потрейсить. Но пока не знаяюкак прерваться когда уже строка в памяти чтобы поискать ёё там потом. Может у кого есть еще варианты? P.S может кто нить попробует совершить сей подвиг и поделиться как он это сделал(накидать на форму едит и прерваться на него с условием что в проге нигде не будет строка подсказка типа "Неправильный пароль" чтоб можно было за него зацепиться).
и снова я. Вот решил поставить брейк на окно кнопки чтобы отловить мессаг WM_COMMAND когда нажимается кнопка register . Проблеама в том что брейки почемуто вылетают мессагом типа "Breakpoin erased"??? Кто нибудь знает почему так случается?