Сейчас на форуме: hgdagon, asfa, bartolomeo (+6 невидимых)

 eXeL@B —› Программирование —› Брутфорсер на Асме
<< . 1 . 2 . 3 . >>
Посл.ответ Сообщение

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

Создано: 14 октября 2006 03:40 · Поправил: RUffex
· Личное сообщение · #1

«Этот топик просвещается всем тем, кто видел на экране страшное «Черное окно», обрывающее все наивные детские мечты. Своим невыносимым «Enter Password» оно убивало в нас радость и душевный покой. Многие наши товарищи пытались избавиться от него, долгими зимними вечерами, набирая все пришедшие в голову комбинации, но лишь единицы этих великих людей дожили до наших дней, нервно выстукивая чечётку пальцами уже не только на клавиатуре, но и на лавочках, в подвалах, на вокзале. Не знали она, бедные, о том, что процесс подбора пароля можно автоматизировать, программно обращаясь к окнам и их элементам. Это совсем легко, надо лишь освоить нехитрые принципы взаимодействия окон» (журнал «Хакер»)»


Респект низкоуровневые кодеры!
Я начал писать свой переборщик паролей (можно и для брутфорса рег.ключей юзать).

Какие функции необходимо использовать?

Алгоритм такой:
А) находим окно для ввода пароля
Б) находим EditBox
В) генерируем пароль
Г) помещаем его в EditBox
Д) Эмулируем нажатие кнопки ОК
Е) Если вылетает MessageBox, проверяем по тексту сообщения
Угадали ( переход на п. И)
не угадали ( переход на п. Ж)
Ж) Закрываем ругательство
З) Вычеркиваем неправильный пароль ( переход на п. Б)
И) Сообщаем радостное известие с правильным паролем


A)
RegText db "Register Software",0
invoke FindWindow, NULL,OFFSET RegText
test eax,eax
jnz found

Б)
found:
invoke FindWindowEx,NULL,NULL,EditBox,ADDR RegText
; Правильно ли я указываю параметры этой функции? Не компиллится что-то...



Ранг: 28.9 (посетитель)
Активность: 0.060
Статус: Участник

Создано: 15 октября 2006 12:48
· Личное сообщение · #2

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




Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 15 октября 2006 13:30
· Личное сообщение · #3

Может кто-нить вспомнит, для какого кейгенми я писал этот ублюдочный код?


957b_15.10.2006_CRACKLAB.rU.tgz - brut.c



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

Создано: 15 октября 2006 19:14
· Личное сообщение · #4

Paskal пишет:
Проще множественное хэширование юзать

Если не трудно, объясни в двух словах, что за множественное хэширование..



Ранг: 45.9 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 15 октября 2006 20:10
· Личное сообщение · #5

RUffex пишет:
Если не трудно, объясни в двух словах, что за множественное хэширование..

xn = хеш(x(n-1) + salt) ?, где n= много-много раз Помойму так



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

Создано: 15 октября 2006 23:21 · Поправил: RUffex
· Личное сообщение · #6

HoBleen пишет:
hEdit = FindWindow(hWnd, 0, "WndClass", 0);

может hEdit = FindWindowEx(hWnd, 0, "WndClass", 0);

Что за глюк:

EditBox db "EditBox",0
RegText db "Register Software",0

push OFFSET RegText
push NULL
call FindWindowA
test eax,eax ; хэндл окна
jnz found
; ------------------------------------
found:
push OFFSET RegText
push OFFSET EditBox
push NULL
push eax ; hParent = 000104EC ('Register Software',class='#32770') UNICODE 'neIntel'
call FindWindowExW


На выходе в eax 0?

PS: работаю в RadAsm’е




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

Создано: 16 октября 2006 02:30
· Личное сообщение · #7

RUffex пишет:
может hEdit = FindWindowEx(hWnd, 0, "WndClass", 0);

Конечно.

RUffex пишет:
На выходе в eax 0?

Попробуй в качестве lpszWindow у FindWindowEx поставить 0.
В качестве имени окна ввода выступает текст EditBox'a.




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 16 октября 2006 03:54
· Личное сообщение · #8

RUffex
в цикле несколько тысяц раз хэшировать результат предыдущей итерации хеширования.
пример для dword'a

DWORD result;
result = licensekey
for (int i = 0; i < 100000; i++){
result = hash (result);
}


-----
Недостаточно только получить знания:надо найти им приложение





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

Создано: 16 октября 2006 04:00
· Личное сообщение · #9

Rascal пишет:
А интегрирование не юзается, не пугай народ.

Только сейчас понял, что ты имел ввиду.
Я имел ввиду твой способ интегрирования в код программы




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 16 октября 2006 06:46
· Личное сообщение · #10

HoBleen
Ты уточняй, а то хз что подумать можно

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 16 октября 2006 08:20
· Личное сообщение · #11

RUffex
На будущее имей ввиду!
Есть в Olly в окне регистров специальная строка, начинается с LastErr вот то, что после нее стоит то и надо здесь писать (это код ошибки)
Если у тебя, ее нет, то включи меню->Options->Debugging options (Alt+O)->(в появившемся диалоге вкладка) Registers->Show last error (поставь галочку)
RUffex пишет:
На выходе в eax 0?

Это для экстрасенсов, которые в отпуске!!!

И еще не играйся с FindWindow(A) и FindWindowEx(W) они не любят друг-друга, используй для этого специальные функции или макросы (это подсказка!!!)

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com




Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 16 октября 2006 08:47
· Личное сообщение · #12

RUffex пишет:
EditBox db "EditBox",0
...
found:
push OFFSET RegText
push OFFSET EditBox
push NULL
push eax ; hParent = 000104EC ('Register Software',class='#32770') UNICODE 'neIntel'
call FindWindowExW


EditBox db "edit",0



Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 16 октября 2006 09:31
· Личное сообщение · #13

rmn
FindWindowEx(W) срочно на www.google.com -> что такое UNICODE

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com




Ранг: 158.4 (ветеран), 123thx
Активность: 0.140.49
Статус: Участник

Создано: 16 октября 2006 10:32
· Личное сообщение · #14

да я на нее внимания не обратил. Вижу класс окна не тот...



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

Создано: 16 октября 2006 22:59
· Личное сообщение · #15

Demon666 пишет:
Есть в Olly в окне регистров специальная строка, начинается с LastErr вот то, что после нее стоит то и надо здесь писать (это код ошибки)

Пишет ERROR_FILE_NOT_FOUND (00000002), хотя окно, которое ищу, активно.




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 16 октября 2006 23:36 · Поправил: Rascal
· Личное сообщение · #16

RUffex
[deleted] ибо после бессонной ночи плохо думается

Ты попробуй найти любое дочернее окно. Есть подозрение что у тя всё же что-то криво написано.

rmn пишет:
push OFFSET RegText

И скажи, что у тебя в этой переменной перед вызовом

-----
Недостаточно только получить знания:надо найти им приложение




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

Создано: 17 октября 2006 00:49 · Поправил: tundra37
· Личное сообщение · #17

Rascal
Можно для опоздавших пояснить, как брутфорс и множественное кеширование связано. Я пока вижу только, что так можно "победить" брутфорс или имелось ввиду что-то другое.
===================================================
Делать брутфорс по эдиту хорошо только для обучения. Классы окон и контролов в разных прогах - разные, нормальные проги делают задержки(распаковка автоматом такую задержку добавляет). Многострадальный CCalc, который тут коллективом ломали, вообще код проверяет после перезапуска.
Т.е. писать данный брутфорсер на ассемблере глупо, т.к. основное время тратится отнюдь не на генерацию пароля.



Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 17 октября 2006 00:50 · Поправил: Demon666
· Личное сообщение · #18

RUffex
Блин, дык, естественно не найдет, читать надо внимательнее!

Demon666 пишет:
используй для этого специальные функции или макросы (это подсказка!!!)

Это я к тому, что надо предварительно обработать строки в UNICODE, прежде чем давать кушать функциям, заканчивающимся на W. А у тебя эти строки в ASCII!!!

Demon666 пишет:
FindWindowEx(W) срочно на http://www.google.com http://www.google.com -> что такое UNICODE

Это решение твоих проблем!!!


rmn пишет:
да я на нее внимания не обратил. Вижу класс окна не тот...

Угу! Я так и понял! (чтобы ты, да на такой мелочи споткнуцца )

[Добавлено]
rmn пишет:
push OFFSET RegText

Rascal пишет:
И скажи, что у тебя в этой переменной перед вызовом

RUffex пишет:
(указатель на строку) RegText db "Register Software",0


-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com





Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 17 октября 2006 01:12
· Личное сообщение · #19

tundra37 пишет:
Можно для опоздавших пояснить, как брутфорс и множественное кеширование связано. Я пока вижу только, что так можно "победить" брутфорс или имелось ввиду что-то другое.

Ты ниже ответил на свой же вопрос Я показал, что затормозить выполнение проверки легко. Причём обойти его нереально.

tundra37 пишет:
Т.е. писать данный брутфорсер на ассемблере глупо, т.к. основное время тратится отнюдь не на генерацию пароля.

Да его, как я понял, интересует лишь сам процесс. Скорость интересовала Dark Star'a. Но поддерживаю на счёт лишних телодвижений. Всё то же самое можно сделать и на ЯВУ. И уже был бы результат.

-----
Недостаточно только получить знания:надо найти им приложение





Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 17 октября 2006 01:16 · Поправил: Rascal
· Личное сообщение · #20

Карочь, объясните мне, почему человеку так хочется юзать юникод? Если он не в полном курсе, что это. У него все строки аски. ни одной в юникоде...

RUffex
Вместо FindWindowExW напиши FindWindowExA.

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 28.9 (посетитель)
Активность: 0.060
Статус: Участник

Создано: 18 октября 2006 04:04
· Личное сообщение · #21

ну скажите нах этот брут нужен.Ну их же в инете куча лежит.
В CrackMe от Bad_guy ну было конкретно продемонстрировано что вызывай Sleep хоть в 1 секунды во время проверки и тогда можно брутить хоть до посинения,если конечно программер не лох полный.


Rascal пишет:
Скорость интересовала Dark Star'a

Естесно скорость, ничего прикольного не вижу в том чтоб видеть как такой ширпотреб еле перебирает символы.



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

Создано: 19 октября 2006 03:15
· Личное сообщение · #22

tundra37 пишет:
Т.е. писать данный брутфорсер на ассемблере глупо, т.к. основное время тратится отнюдь не на генерацию пароля.

Да, спасибо всем. Я понял не совсем правильную сторону моей идеи и заинтересовался интегрированным подходом. Но брутфорс я все-таки добью. Больше пойму и может пригодится когда-нить.

Demon666 пишет:
надо предварительно обработать строки в UNICODE

Это я уже понял. В Олли АСКИ-строки в FindWindowExW отображаются вопросами. Буду узать MSDN.

В принципе, я узнал все что надо. Понял, как надо делать и как НЕ делать.
Если никто не хочет что-нибудь добавить по теме, то вопрос исчерпан.




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 19 октября 2006 04:05 · Поправил: Rascal
· Личное сообщение · #23

Dark Star пишет:
В CrackMe от Bad_guy ну было конкретно продемонстрировано что вызывай Sleep хоть в 1 секунды во время проверки и тогда можно брутить хоть до посинения,если конечно программер не лох полный.

LOL. Это обходится одним мизинцем. БГ правильно сделал, по-другому, смотри и читай до полного понимания.

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 28.9 (посетитель)
Активность: 0.060
Статус: Участник

Создано: 19 октября 2006 04:20
· Личное сообщение · #24

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

Я образно привел. С таким же успехом можно и алгоритм сделать чтоб высчитывалось хрен знает сколько и что тогда.



Ранг: 28.9 (посетитель)
Активность: 0.060
Статус: Участник

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

Под лохом я понимал это:
Был у меня скринсейвер короче ну вот после вроде пропатчил и он регился но после перезапуска проверял валидность кода.
Ну мне впадлу было искать я взял и методом тыка набрал в
Name: 1
ну и решил на авось перебрать до 20
На 12 прога приняла и зарегилась.
Вот это значит автор лох.
Кстати скрин Fantastic Flame помоему называется.




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 19 октября 2006 04:30
· Личное сообщение · #26

Dark Star пишет:
Ну а если ты брут та делаеш на основе API и еще и с интерфейсом то как нахрен обойдеш. Ну раз ве што будеш искать ее вызов и патчить.Ну а если после проверки перезапускается то тогда что.

Я образно привел. С таким же успехом можно и алгоритм сделать чтоб высчитывалось хрен знает сколько и что тогда.

Это уже всё обсуждалось выше. Повторяешься или плохо читаешь. Флуд аднака ;)

Dark Star пишет:
Кстати скрин Fantastic Flame помоему называется.

повезло.но это говорит о том, что проще было реверснуть алго проверки или подглядеть номерок.

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 28.9 (посетитель)
Активность: 0.060
Статус: Участник

Создано: 19 октября 2006 04:48
· Личное сообщение · #27

Возможно. Но не стал.

Про брут хорошо автор понял.Такой брут будет использовать как раз LOL далекий от всего этого, а у нас как ни как люди вроде в большинстве своем грамотные и такой брут им нах не нужен.




Ранг: 233.1 (наставник), 30thx
Активность: 0.210
Статус: Участник

Создано: 19 октября 2006 07:06
· Личное сообщение · #28

Немного офтоп, но раз уж речь о таком универсальном переборщике паролей, то подскажите какойнить готовый.
Типа поскоростнее...

-----
AutoIt





Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 19 октября 2006 07:21
· Личное сообщение · #29

OLEGator
было уже здесь про переборщик tporta вроде. Но скорость в данном типе переборщиков - фикция. Всё равно слишком медленно.

-----
Недостаточно только получить знания:надо найти им приложение





Ранг: 233.1 (наставник), 30thx
Активность: 0.210
Статус: Участник

Создано: 19 октября 2006 08:19
· Личное сообщение · #30

чёт не заметиля в этой теме...
а можно её полное название?

-----
AutoIt





Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 19 октября 2006 08:27
· Личное сообщение · #31

OLEGator
Это не здесь было. Спроси Red Baron'a

-----
Недостаточно только получить знания:надо найти им приложение



<< . 1 . 2 . 3 . >>
 eXeL@B —› Программирование —› Брутфорсер на Асме
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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