Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 июня!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

АРХИВ ФОРУМА eXeL@B
https://exelab.ru/f/

   

Destroyer Брутфорс На форуме приводился исходник брутфорсера на асме к проге...


Destroyer Брутфорс На форуме приводился исходник брутфорсера на асме к проге «Рецепты». Как его компилировать? Должен получиться exe-шник?
Я пока только пробую писать на асме, вот что получается на основе кода от Nitrogen-a. Что-то тут надо подправить, а что? Помогите plz.
.486
.model flat,stdcall
option casemap :none

include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\masm32.inc

includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\masm32.lib

.data

_ser1 db 20 dup(0)
alpha db «0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklm nopqrstuvwxyz»,0
temp_01 db 0
constanta dd 0FEFCF7F9h
dd 0FBFDFCF5h
dd 0F4FFFFFAh
dd 0F2F6F5F3h
dd 0F2F1F0F3h
dd 0FDF7F7F3h
dd 0F8FAFDFBh
dd 0F4FCFEFFh
.const
IDC_EDIT equ 3000

.code

start:
xor ebx,ebx
xor eax,eax
xor ecx,ecx
xor edx,edx
lea esi,constanta
lea edi,_ser1
@l:
mov dl,byte ptr[alpha+ecx]
mov byte ptr[temp_01],al
add al,11h
xor al,dl
mov dl,al
or dl,0F0h
mov bl,dl
mov dl,al
shr dl,04
or dl,0F0h
mov bh,0
add bh,dl
cmp word ptr[esi],bx
jz @n
inc ecx
mov al,byte ptr[temp_01]
jmp @l
@n:
mov bl,byte ptr[alpha+ecx]
mov byte ptr[edi],bl
inc edi
cmp edi,offset [_ser1+16]
jz @s
xor ecx,ecx
add esi,2
jmp @l
@s:
invoke SetDlgItemTextA,hwnd,IDC_EDIT,addr _ser1
xor eax,eax
ret
end start

RideX :: На основе кода от Nitrogen’a вот что получается:
твой .asm файл

.486
.model flat, stdcall
option casemap :none

include \masm32\INCLUDE\windows.inc
include \masm32\INCLUDE\user32.inc
include \masm32\INCLUDE\kernel32.inc
include \masm32\INCLUDE\gdi32.inc
include \masm32\INCLUDE\masm32.inc

includelib \masm32\LIB\user32.lib
includelib \masm32\LIB\kernel32.lib
includelib \masm32\LIB\gdi32.lib
includelib \masm32\LIB\masm32.lib

szText MACRO Name, Text:VARARG
LOCAL lbl
jmp lbl
Name db Text,0
lbl:
ENDM

WndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD

.data
hWnd dd 0
hButnOK dd 0
hButnExit dd 0
hEditCode dd 0
hInstance dd 0
hIcon dd 0
dlgname db «BRUTEFORCE»,0

_ser1 db 20 dup(0)
alpha db «0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklm nopqrstuvwxyz»,0
temp_01 db 0
constanta dd 0FEFCF7F9h
dd 0FBFDFCF5h
dd 0F4FFFFFAh
dd 0F2F6F5F3h
dd 0F2F1F0F3h
dd 0FDF7F7F3h
dd 0F8FAFDFBh
dd 0F4FCFEFFh

.code

start:

invoke GetModuleHandle, NULL
mov hInstance, eax
invoke DialogBoxParam,hInstance,ADDR dlgname,0,ADDR WndProc,0
invoke ExitProcess,eax

WndProc proc hWin :DWORD,
uMsg :DWORD,
wParam :DWORD,
lParam :DWORD
pusha
.if uMsg == WM_INITDIALOG

mov eax, hWin
mov hWnd, eax

szText dlgTitle,«BruteForce»
invoke SendMessage,hWin,WM_SETTEXT,0,ADDR dlgTitle

invoke LoadIcon,hInstance,200
mov hIcon, eax
invoke SendMessage,hWin,WM_SETICON,1,hIcon

invoke GetDlgItem, hWin, 1000
mov hButnOK, eax

invoke GetDlgItem, hWin, 1001
mov hButnExit, eax

invoke GetDlgItem, hWin, 999
mov hEditCode, eax

.elseif uMsg == WM_COMMAND
.if wParam == 1000 ; the OK button

xor ebx,ebx
xor eax,eax
xor ecx,ecx
xor edx,edx
lea esi,constanta
lea edi,_ser1
@l:
mov dl,byte ptr[alpha+ecx]
mov byte ptr[temp_01],al
add al,11h
xor al,dl
mov dl,al
or dl,0F0h
mov bl,dl
mov dl,al
shr dl,04
or dl,0F0h
mov bh,0
add bh,dl
cmp word ptr[esi],bx
jz @n
inc ecx
mov al,byte ptr[temp_01]
jmp @l
@n:
mov bl,byte ptr[alpha+ecx]
mov byte ptr[edi],bl
inc edi
cmp edi,offset [_ser1+16]
jz @s
xor ecx,ecx
add esi,2
jmp @l
@s:
invoke SetWindowText, hEditCode, addr _ser1
xor eax,eax
ret

.elseif wParam == 1001 ; Exit button
jmp EndWork

.endif

.elseif uMsg == WM_CLOSE
EndWork:
invoke EndDialog, hWin, 0

.endif
popa
xor eax, eax
ret
WndProc endp
end start

твой rsrc.rc файл:
#include »\masm32\include\resource.h»

BRUTEFORCE DIALOGEX MOVEABLE IMPURE LOADONCALL DISCARDABLE 10, 10, 238, 64, 0
STYLE DS_SETFONT ¦ DS_MODALFRAME ¦ DS_CENTER ¦ WS_POPUPWINDOW ¦ WS_VISIBLE ¦ WS_DLGFRAME
EXSTYLE WS_EX_DLGMODALFRAME ¦ WS_EX_TOOLWINDOW ¦ WS_EX_CLIENTEDGE ¦ WS_EX_APPWINDOW
CAPTION «BruteForce»
FONT 8, «Tahoma»,700, 0 /*FALSE*/
BEGIN

EDITTEXT 999, 4, 4, 160, 56, WS_CHILD ¦ WS_VISIBLE ¦ WS_BORDER ¦ WS_TABSTOP ¦
ES_LEFT ¦ ES_AUTOHSCROLL ¦ ES_READONLY ¦ ES_MULTILINE

GROUPBOX »», -1, 168, 0, 67, 60, BS_LEFT
PUSHBUTTON «Generate», 1000, 174, 9, 55, 12, NOT WS_TABSTOP ¦ BS_FLAT
PUSHBUTTON «Exit», 1001, 174, 26, 55, 12, NOT WS_TABSTOP ¦ BS_FLAT

END

1 ICON MOVEABLE PURE LOADONCALL DISCARDABLE «mainicon.ico»

Destroyer :: Что-то не запускается этот ехе-шник, ты чем его компилировал, я в MASM32. А еще *.rc фаил MASM32 не воспринимает, пишет ошибку почти на каждой строке.

Dragon :: Masm .rc файлы не компилирует, это вообще то ассемблер. Их надо компилировать rc.exe, а потом прилинковывать уже готовый res-файл.

Kerghan :: Dragon
ты думаешь, что он понял?

Destroyer
--твой compil.bat----
patch.asm и patch.obj заменишь на твой файл NAME.asm и NAME.obj
а также заменишь rsrc.rc и rsrc.res твой NAMEres.rc и NAMEres.res

\masm32\bin\ml /nologo /c /coff /Cp patch.asm
\masm32\bin\rc rsrc.rc
\masm32\bin\link /nologo /SUBSYSTEM:WINDOWS /RELEASE /LIBPATH:\masm32\lib patch.obj rsrc.res

Destroyer :: Спасибо, скомпилировал, и все запустилось. Теперь пытаюсь понять как это работает. В связи с этим появились вопросы:
Что с чем сравнивается в 20) и в 29)?
В 8) dl - это текущий символ?
Зачем в 23) перезаписывать из al в[temp_01], а потом в 9) наоборот?
По какому принципу отбираются символы?

1) xor ebx,ebx
2) xor eax,eax
3) xor ecx,ecx
4) xor edx,edx
5) lea esi,constanta
6) lea edi,_ser1
7) @l:
8) mov dl,byte ptr[alpha+ecx]
9) mov byte ptr[temp_01],al
10) add al,11h
11) xor al,dl
12) mov dl,al
13) or dl,0F0h
14) mov bl,dl
15) mov dl,al
16) shr dl,04
17) or dl,0F0h
18) mov bh,0
19) add bh,dl
20) cmp word ptr[esi],bx
21) jz @n
22) inc ecx
23) mov al,byte ptr[temp_01]
24) jmp @l
25) @n:
26) mov bl,byte ptr[alpha+ecx]
27) mov byte ptr[edi],bl
28) inc edi
29) cmp edi,offset [_ser1+16]
30) jz @s
31) xor ecx,ecx
32) add esi,2
33) jmp @l
34) @s:
35) invoke SetWindowText, hEditCode, addr _ser1
36) xor eax,eax
37) ret

Nitrogen :: Destroyer
а ты саму прогу для которой брут был смотрел?

08 - один из символов alpha
20 - в esi лежит адрес строки-константы (берется в проге)
29 - просто провека на длину (серийник должен быть 16 символов)
09/23 - восстановление/сохранение промежуточного значение (т.к если символ подобран неверно - значение al неверное и необходимо восстановить предыдущее)

p.s этот брут только для той проги для которой написан :)

Destroyer :: Что этот брут только для этой проги я уже понял. А есть какие-нибудь идеи типа универсального брута? Например чтобы по заданному словарю символов перебирал все возможные комбинации.






   
Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS