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

 eXeL@B —› Вопросы новичков —› Какие ещё API-функции считывают текст из TextBox'a кроме GetWindowText и GetDlgItemText ?
Посл.ответ Сообщение

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

Создано: 24 октября 2007 01:48
· Личное сообщение · #1

Так как являюсь полнейшим новичком решил найти лёгкую программу для проб.
Всё стандартно, окошко: введите логин, серийник.
Ввожу не верно, появляется МессажБокс, на который срабатывает Olly, однако найти где там находится сравнивание паролей никак не удаётся. Вот кстати его код:

004A2C61 |. 50 PUSH EAX ; /pRect
004A2C62 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; |
004A2C65 |. 8B40 30 MOV EAX,DWORD PTR DS:[EAX+30] ; |
004A2C68 |. 50 PUSH EAX ; |hWnd
004A2C69 |. E8 AAC90700 CALL <JMP.&USER32.GetWindowRect> ; \GetWindowRect
004A2C6E |. 6A 1D PUSH 1D
004A2C70 |. 6A 00 PUSH 0
004A2C72 |. 6A 00 PUSH 0
004A2C74 |. 8B4D CC MOV ECX,DWORD PTR SS:[EBP-34]
004A2C77 |. 8B55 C4 MOV EDX,DWORD PTR SS:[EBP-3C]
004A2C7A |. 2BCA SUB ECX,EDX
004A2C7C |. D1F9 SAR ECX,1
004A2C7E |. 79 03 JNS SHORT Electric.004A2C83
004A2C80 |. 83D1 00 ADC ECX,0
004A2C83 |> 03CA ADD ECX,EDX
004A2C85 |. 51 PUSH ECX
004A2C86 |. 8B55 C8 MOV EDX,DWORD PTR SS:[EBP-38]
004A2C89 |. 8B45 C0 MOV EAX,DWORD PTR SS:[EBP-40]
004A2C8C |. 2BD0 SUB EDX,EAX
004A2C8E |. D1FA SAR EDX,1
004A2C90 |. 79 03 JNS SHORT Electric.004A2C95
004A2C92 |. 83D2 00 ADC EDX,0
004A2C95 |> 03D0 ADD EDX,EAX ; |
004A2C97 |. 52 PUSH EDX ; |X
004A2C98 |. 6A 00 PUSH 0 ; |InsertAfter = HWND_TOP
004A2C9A |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; |
004A2C9D |. 8B40 30 MOV EAX,DWORD PTR DS:[EAX+30] ; |
004A2CA0 |. 50 PUSH EAX ; |hWnd
004A2CA1 |. E8 FECA0700 CALL <JMP.&USER32.SetWindowPos> ; \SetWindowPos
004A2CA6 |> 33C0 XOR EAX,EAX
004A2CA8 |. E8 476AFFFF CALL Electric.004996F4
004A2CAD |. 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX
004A2CB0 |. E8 5B69FFFF CALL Electric.00499610
004A2CB5 |. 8945 E4 MOV DWORD PTR SS:[EBP-1C],EAX
004A2CB8 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004A2CBB |. E8 78EEFFFF CALL Electric.004A1B38
004A2CC0 |. 84C0 TEST AL,AL
004A2CC2 |. 74 06 JE SHORT Electric.004A2CCA
004A2CC4 |. 81CB 00001000 OR EBX,100000
004A2CCA |> 33C9 XOR ECX,ECX
004A2CCC |. 55 PUSH EBP
004A2CCD |. 68 512D4A00 PUSH Electric.004A2D51
004A2CD2 |. 64:FF31 PUSH DWORD PTR FS:[ECX]
004A2CD5 |. 64:8921 MOV DWORD PTR FS:[ECX],ESP
004A2CD8 |. 53 PUSH EBX ; /Style
004A2CD9 |. 57 PUSH EDI ; |Title
004A2CDA |. 56 PUSH ESI ; |Text
004A2CDB |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; |
004A2CDE |. 8B40 30 MOV EAX,DWORD PTR DS:[EAX+30] ; |
004A2CE1 |. 50 PUSH EAX ; |hOwner
004A2CE2 |. E8 D3C90700 CALL <JMP.&USER32.MessageBoxA> ; \MessageBoxA

Позже ввожу пароль, запоминаю его. Ставлю бряк на область памяти в котором он находится.
Но после того как окно перерисовывается пароль постоянно считывается из памяти и переходит глубоко в системные функции Виндовса, его трассировка и отладка становится не возможной (хотя может и возможной просто руки кривые ещё). Поэтому решил поставить бряк на вызов функции считывания пароля из ТекстБокса, но из этих:

GetWindowText, GetWindowTextA, GetWindowTextW
GetDlgItemText, GetDlgItemTextA, GetDlgItemTextW

Ни одна не сработала. Какие ещё бывают функции?



Ранг: 284.8 (наставник), 6thx
Активность: 0.150
Статус: Участник

Создано: 24 октября 2007 09:25
· Личное сообщение · #2

заодно и ссыль бы дал на прогу.

похоже что ты брякнулся в функе отвечающей за вызов мессадж бокса, выйди из нее и поставь бряку выше... а так хз, надо смотреть.

Забирать текст можно разными способами как обычными так и извращенными

еще часто юзается получение через сообщение WM_GETTEXT



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 24 октября 2007 09:41
· Личное сообщение · #3

f3DDoS пишет:
004A2CBB |. E8 78EEFFFF CALL Electric.004A1B38
004A2CC0 |. 84C0 TEST AL,AL
004A2CC2 |. 74 06 JE SHORT Electric.004A2CCA

что-то мну подсказывает, что чтение именно в call 004A1B38 ..



Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 24 октября 2007 14:12
· Личное сообщение · #4

sniperZ пишет:
что-то мну подсказывает, что чтение именно в call 004A1B38

Нееа, sniperZ, не путай людей. RSI прав, это функа отвечающая за вызов мессадж бокса. Нуна подняться на три уровня вверх и там выше смотреть где ставить бряку.



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 24 октября 2007 22:39
· Личное сообщение · #5

crc1 пишет:
Нееа, sniperZ, не путай людей. RSI прав, это функа отвечающая за вызов мессадж бокса

гм, это не мессажд, это 100% проверка сернама...

аффтар кидай прогу...




Ранг: 155.4 (ветеран)
Активность: 0.140
Статус: Участник
Робо-Алкаш

Создано: 24 октября 2007 22:44
· Личное сообщение · #6

sniperZ, да нифига не проверка там))))
Просто интересно как ты такой вывод сделал можт поделишься?
С психологической точки зрения это реакция на тест ал, ал )))

-----
Researcher




Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 24 октября 2007 23:54
· Личное сообщение · #7

overwriter
не пездеть, мну видел как-то прогу, где вот в таком колле при верном сернами подменялся адрес возврата на нужную процедуру, а там ещё что-то было..ток названия проги не помню..



Ранг: 13.9 (новичок)
Активность: 0.030
Статус: Участник

Создано: 25 октября 2007 00:19
· Личное сообщение · #8

SendMessage(WM_GETTEXT)
часто встречал



Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 25 октября 2007 07:45 · Поправил: crc1
· Личное сообщение · #9

sniperZ пишет:
аффтар кидай прогу..


Афтар видать забил
Но лично для sniperZ сцылка
http://www.linasoft.com/files/apmbld53.zip http://www.linasoft.com/files/apmbld53.zip 2.6 Mb (это не прога афтара, а первое что вспомнил)
Очень знакомый код. И где там проверка сернама?
Такие куски кода нада визуально помнить



Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 25 октября 2007 08:01
· Личное сообщение · #10

Мля, аттач отвалился

5bf2_24.10.2007_CRACKLAB.rU.tgz - MessageBoxA.png



Ранг: 284.8 (наставник), 6thx
Активность: 0.150
Статус: Участник

Создано: 25 октября 2007 09:17
· Личное сообщение · #11

sniperZ пишет:
гм, это не мессажд, это 100% проверка сернама...


Зашибись....

004A2CBB |. E8 78EEFFFF CALL Electric.004A1B38
004A2CC0 |. 84C0 TEST AL,AL
004A2CC2 |. 74 06 JE SHORT Electric.004A2CCA
004A2CC4 |. 81CB 00001000 OR EBX,100000
004A2CCA |> 33C9 XOR ECX,ECX
004A2CCC |. 55 PUSH EBP

т.е. ты хочешь сказать что если проверка сер. номера в функе CALL Electric.004A1B38 , то если он верный мы перепрыгнем 1 инструкцию OR EBX,100000 и выдаст нам мессадж что "Ура! мы зарегины"

ЛОЛ



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

Создано: 25 октября 2007 10:57 · Поправил: f3DDoS
· Личное сообщение · #12

Прошу прощения что не отвечал... работал и пытался всё же сам что-нибудь выудить.
Третью ночь с дизассемблером. Всю голову сломал. Но не сдаюсь... (15 дней же есть!). Публикую ссылку на программу:

http://narod.yandex.ru/100.xhtml?electrodesigning.narod.ru/Electric11. rar http://narod.yandex.ru/100.xhtml?electrodesigning.narod.ru/Electric11.rar



Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 25 октября 2007 16:40
· Личное сообщение · #13

f3DDoS пишет:
narod.yandex.ru/100.xhtml?electrodesigning.narod.ru/Electric11. rar

Вот тут проверка серийника
0040C355 CALL 005015A0
0040C35A PUSH 005254E0 ; ASCII "Electricdll11.dll"
0040C35F CALL <JMP.&KERNEL32.LoadLibraryA>
0040C364 MOV DWORD PTR SS:[EBP-54], EAX ; без библы EAX == 0
0040C367 CMP DWORD PTR SS:[EBP-54], 0
0040C36B JE 0040C678 ; на плохое сообщение
0040C371 PUSH 005254F2 ; ASCII "_GetRegKodElectric"
0040C376 MOV EDX, DWORD PTR SS:[EBP-54]
0040C379 PUSH EDX
0040C37A CALL <JMP.&KERNEL32.GetProcAddress>


На автор проги хитрый, библиотеку Electricdll11.dll не предоставил.
Из хелпа:
2) Оплатить регистрацию программы
После выполнения этой процедуры вы получите по электронной почте регистрационный файл и код регистрации.

Т.ч. без Electricdll11.dll прогу хрен зарегишь, но думаю можно запатчить.



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

Создано: 25 октября 2007 23:26 · Поправил: f3DDoS
· Личное сообщение · #14

Спасибо всем за исследования! Надо будет посмотреть что там есть...
Если не трудно объясните пожалуйста :

2crc1:

1. Как вы дошли до этого кода? По трассировке до ret после MessageBoxA или как-то ещё?
2. Т.е. длл-ка нужна только для того, чтобы в EAX перед 0040C367 CMP DWORD PTR SS:[EBP-54], 0
был ноль? Соответственно если изменить переход JE на другой (пропатчить) то можно забы(и)ть про регистрацию?



Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 26 октября 2007 08:48
· Личное сообщение · #15

f3DDoS
1. По моему уже все разжевано. От MessageBoxA трассируй через реты пока выше не увидишь сообщения об удачной/неудачной регистрации (в OllyDbg эти строки хорошо видны).
2. ИМХО ты плохо знаком с программированием в том числе низкоуровневым. Почитай статей, начни с простых крякмисов. На сегодня тебе эту прогу не победить. Если она тебе сильно нужна, обратись в запросы на взлом, возможно там помогут.
ЗЫ В программе есть еще ограничение на максимальную мощность не больше 2 Квт, может еще чего



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

Создано: 26 октября 2007 09:32
· Личное сообщение · #16

f3DDoS
Можно не патчить, а сделать dll, например так

library Electricdll11;

procedure dummy;
asm
pop ecx //сохраняем адрес возврата
pop eax //возвращаем регистрационный код
add esp, 4 //выкидываем идентификатор компьютера
push ecx //восстанавливаем адрес возврата
end;

exports
dummy name '_GetRegKodElectric';

begin
end.


И регаться с любым кодом. Возможно этого будет достаточно.



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

Создано: 27 октября 2007 01:29
· Личное сообщение · #17

Да нет. Она мне не сильно нужна. Просто это первый опыт как раз исследования.
Спасибо за советы! Вы мне очень сильно подсобили. Будем дальше разбираться.
Надо ассемблер почитать. Нашёл я по рет-ам всё что вы показывали.
Так же надо будет поучиться всё же находить по коду строки, функции регистрации... но это я думаю должно прийти с опытом. Всем спасибо ещё раз! =)
Будем учиться.


 eXeL@B —› Вопросы новичков —› Какие ещё API-функции считывают текст из TextBox'a кроме GetWindowText и GetDlgItemText ?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати