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

 eXeL@B —› Основной форум —› Помогите, запарился ломать
Посл.ответ Сообщение

Ранг: 153.9 (ветеран)
Активность: 0.120
Статус: Участник
reborn

Создано: 23 декабря 2005 16:54
· Личное сообщение · #1

Народ, помогите пожалуйста.
Есть прога, написана на Borland C++ 1999, была упакована УПХ, роспаковал, заломал, но вот проблема, вышла новая версия я по привычке сделал всё то же что и в предыдущий раз и всё. Тут юзвери начади беспокоить что прога начала показывать фокусы. Суть фокуса:

На 1 диалоге есть поле (TEdit) ввода даных (пусть там вводятся цифры). Я например ввожу 0000000000 (ну допустим так надо) и нажимаю печатать данные. В предварительном просмотре видно, что то число (000000000) что я вводил преобразилось в 00000100000, и так происходит с любым числом которое вносится.
(тоесть 6 символ любового чмсла из этого поля будет постоянно на 1 больше).

Теперь вопрос: как это отловить ?

Заранее всем благодарен.

-----
~ the Power Of Reversing team ~




Ранг: 123.7 (ветеран)
Активность: 0.10
Статус: Участник
1nn0$/100

Создано: 23 декабря 2005 17:01
· Личное сообщение · #2

newborn
Отлови момент забирания твоей строки программой, дальше ставь бряки на все обращения к этой строке... Если строка копируется, тоже бряки на память... Там и найдешь место изменения...

-----
Blame the victim!




Ранг: 153.9 (ветеран)
Активность: 0.120
Статус: Участник
reborn

Создано: 23 декабря 2005 17:28 · Поправил: newborn
· Личное сообщение · #3

Можно по конкретнее пожалуйста.

-----
~ the Power Of Reversing team ~




Ранг: 123.7 (ветеран)
Активность: 0.10
Статус: Участник
1nn0$/100

Создано: 23 декабря 2005 17:35 · Поправил: 1nn0cent
· Личное сообщение · #4

Для начала, как обычно, бряки на GetDlgItemTextA, GetDlgItemTextW, GetWindowTextA, GetWindowTextW... Когда брякнешься, посмотри откуда вызывалась функция. Посмотри какие ей передаются параметры, там должен быть адрес куда строка записывается в память. Дальше в дампе смотришь этот адрес, выделяешь свою строку и из контестного меню ставишь breakpoint -> memory, on access.
Это для Ольки.

-----
Blame the victim!




Ранг: 153.9 (ветеран)
Активность: 0.120
Статус: Участник
reborn

Создано: 23 декабря 2005 17:47
· Личное сообщение · #5

1nn0cent пишет:
Для начала, как обычно, бряки на GetDlgItemTextA, GetDlgItemTextW, GetWindowTextA, GetWindowTextW...

Да пробовал уже, не брякается. Фу млин, уже 7 пот сошёл. Я же пишу что немогу отловить момент.
Спасибо за ответ.

Может ещё какие-то есть мысли ?

-----
~ the Power Of Reversing team ~





Ранг: 84.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 23 декабря 2005 18:32
· Личное сообщение · #6

newborn пишет:
Я же пишу что немогу отловить момент.


Ну тогда бряк на сообщение WM_GETTEXT, WM_GETTEXTLENGTH для этого едитбокса. Шпионом хэндл Edit'a
подгляди и потом в сайсе пиши: BMSG _hEdit WM_GETTEXT. Где hEdit = хэндл едитбокса.



Ранг: 88.0 (постоянный)
Активность: 0.070
Статус: Участник

Создано: 23 декабря 2005 19:03
· Личное сообщение · #7

TOG пишет:
в сайсе пиши: BMSG _hEdit WM_GETTEXT

А как тоже самое в оле сделать?



Ранг: 123.7 (ветеран)
Активность: 0.10
Статус: Участник
1nn0$/100

Создано: 23 декабря 2005 20:23
· Личное сообщение · #8

newborn
Хм... Ну, может там кнопочка есть? Тогда попробуй на WM_COMMAND брякнуться...
rep0A пишет:
А как тоже самое в оле сделать?

Нажимаешь кнопочку Windows (W) находишь нужное окно, контекстное меню, Message Breakpoint to ClassProc, выбираешь сообщение. Готово.

-----
Blame the victim!





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 23 декабря 2005 22:50
· Личное сообщение · #9

введи в этот edit легко отлавливаемую (визуально) в стеке строку, после ввода строки смотри стек, так найдёшь строку
далее - по 1nn0cent, т.е. ставишь бряк на обращение к этой строке

-----
EnJoy!





Ранг: 299.6 (наставник)
Активность: 0.30
Статус: Участник
Armadillo Killer

Создано: 24 декабря 2005 00:48
· Личное сообщение · #10

newborn Ты лучше скажи че за прогу ломаешь то ? очень интересно



Ранг: 153.9 (ветеран)
Активность: 0.120
Статус: Участник
reborn

Создано: 26 декабря 2005 12:04
· Личное сообщение · #11

Z0oMiK пишет:
newborn Ты лучше скажи че за прогу ломаешь то ? очень интересно


Уже не скажу ,потому-что сломал, там проще всё было, на 1nn0cent пишет:
GetDlgItemTextA, GetDlgItemTextW, GetWindowTextA, GetWindowTextW...

не ловилось, а на Point H как радимое, всё как на ладони, просто надо было установить плагин ApiBreak, там есть всё что нужно.

Всем огромное спасибо за ответы. Спасибо.

-----
~ the Power Of Reversing team ~



 eXeL@B —› Основной форум —› Помогите, запарился ломать
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати