Сейчас на форуме: _MBK_, Adler (+5 невидимых)

 eXeL@B —› Вопросы новичков —› Как получить текст из EditBox- a
Посл.ответ Сообщение

Ранг: 3.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 13 мая 2011 21:45
· Личное сообщение · #1

Надо получить текст из простого едита(прогу сам писал для теста на 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 еле тащится.



Ранг: 114.8 (ветеран), 41thx
Активность: 0.10
Статус: Участник

Создано: 13 мая 2011 22:03
· Личное сообщение · #2

Actor пишет:
Надо получить текст из простого едита

имеешь в виду брякнуться на получении текста?
если это vcl, то перехватывай CallWindowProcA/W с Msg==WM_GETTEXT
либо используй ida, idr или dede и смотри где читается свойство Text



Ранг: 3.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 13 мая 2011 22:21
· Личное сообщение · #3

Dede у меня вешается сразу после загруки приложения в память.
а как это в IDA сделать?




Ранг: 88.2 (постоянный), 111thx
Активность: 0.070.01
Статус: Участник

Создано: 13 мая 2011 22:36
· Личное сообщение · #4

В Дельфи свои методы получения текста из Edit, типа TEdit.GetText так вроде, для 2010 версии попробуй использовать декомпиль: --> Link <--




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 13 мая 2011 22:38
· Личное сообщение · #5

Actor пишет:
Dede у меня вешается сразу после загруки приложения в память.

C помощью DeDe вряд ли что-то выйдет, он с 2010 делфи вообще не должен нормально дружить.

-----
Лучше быть одиноким, но свободным © $me




Ранг: 114.8 (ветеран), 41thx
Активность: 0.10
Статус: Участник

Создано: 13 мая 2011 23:06 · Поправил: _ruzmaz_
· Личное сообщение · #6

Actor пишет:
а как это в IDA сделать?

попробовать посмотреть есть ли функа @Controls@TControl@GetText$...... (может не распознаться, т.к. для 2010 сигнатуры нужны, либо может использоваться другая, хз что там добавили) и откуда она вызывается
или искать комментарий вида Controls::TControl::GetText.......




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 14 мая 2011 04:25
· Личное сообщение · #7

Actor пишет:
Думаю тут VCL - ка в своих контролах не юзает GetWindowText и тд. а посылает окнам - контролам сообщения типа WM_GETTEXT,WM_SETTEXT

Ну да так и есть.

Actor пишет:
Надо получить текст из простого едита

А если найти юникод-строку в памяти - не катит?

-----
IZ.RU





Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 14 мая 2011 09:55
· Личное сообщение · #8

Actor пишет:
Надо получить текст из простого едита(прогу сам писал для теста на Delphi 2010)

application.messagebox(0,pchar(Edit1.Text),'',0) ?

-----
От многой мудрости много скорби, и умножающий знание умножает печаль




Ранг: 40.4 (посетитель), 3thx
Активность: 0.080
Статус: Участник

Создано: 17 мая 2011 23:57
· Личное сообщение · #9

Code:
  1. Var Str : String;
  2. BEGIN    
  3. SendMessage(Edit1.Handle, WM_GETTEXT, 0, Cardinal(Pchar(Str)));
  4. END.

Вроде всё. Пробуй.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 18 мая 2011 00:12
· Личное сообщение · #10

ZLOvar а память за тебя бабушка выделять будет?

-----
Yann Tiersen best and do not fuck




Ранг: 3.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 19 мая 2011 16:08 · Поправил: Actor
· Личное сообщение · #11

Хорошая шутка Zlovar. мне не нужно програмно получать текст а найти текст во время работы програмы (чтобы в дальнейшем на реальных новых прогах можно было серийник посмотреть или найти и прибить защиту и т.д ). Я и раньше крекингом занимался(гдето 5-6 лет назад) но потом бросил. А теперь знания уже наверное устарели - традиционными методами не смог прерваться по едиту, потому то и обратился к вам чтобы вы ввели меня в дело.
По ходу думаю можно найти введеную строку в MemoryMap и поставить на нее брейк OnAccess а дальше
немного потрейсить. Но пока не знаяюкак прерваться когда уже строка в памяти чтобы поискать ёё там потом.
Может у кого есть еще варианты?
P.S может кто нить попробует совершить сей подвиг и поделиться как он это сделал(накидать на форму едит и прерваться на него с условием что в проге нигде не будет строка подсказка типа "Неправильный пароль" чтоб можно было за него зацепиться).



Ранг: 22.4 (новичок), 19thx
Активность: 0.020
Статус: Участник

Создано: 19 мая 2011 18:08
· Личное сообщение · #12

папробуй зарядить плугу olly stepsearch



Ранг: 40.4 (посетитель), 3thx
Активность: 0.080
Статус: Участник

Создано: 20 мая 2011 16:11
· Личное сообщение · #13

Actor
Ну так бы сразу и сказал, что во время работы. Это уже другой разговор. Юзай плуги к твоему отладчику.



Ранг: 3.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 26 мая 2011 13:19
· Личное сообщение · #14

и снова я. Вот решил поставить брейк на окно кнопки чтобы отловить мессаг WM_COMMAND когда нажимается кнопка register . Проблеама в том что брейки почемуто вылетают
мессагом типа "Breakpoin erased"??? Кто нибудь знает почему так случается?



Ранг: 3.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 03 июня 2011 16:30
· Личное сообщение · #15

Разобрался. Темку можно закрывать.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 03 июня 2011 16:49
· Личное сообщение · #16

Автор сам может закрыть свою тему, кнопка "Закрыть тему" находится внизу страницы, под кнопкой "Отправить сообщение".


 eXeL@B —› Вопросы новичков —› Как получить текст из EditBox- a
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати