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

 eXeL@B —› Вопросы новичков —› Вопрос по ASM
Посл.ответ Сообщение

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

Создано: 26 июня 2007 12:11
· Личное сообщение · #1

Есть сгенерированный ключ, который лежит в eax(пишу кейген). Как вывести его в Edit? Через переменную? У меня eсть для этого переменная Char. Как поместить в эту переменную содержимое регистра eax? А имеено сгенерированный ключ. mov Char, eax?



Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 26 июня 2007 12:52 · Поправил: Sturgeon
· Личное сообщение · #2

invoke SetWindowText, Edit2, ADDR szRegCode
Вот внизу ссылочка на исходники кейгена от одного уважаемого товарища. Исходники хорошо закомментированы, думаю разберешься. Если нет, пиши сюда или выкладывай исходник посмотрим
http://biocyborg.narod.ru/soft/src/AsmDrGolova.zip http://biocyborg.narod.ru/soft/src/AsmDrGolova.zip

З.Ы. Напрямую из регистра наверное не получится вывести.




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

Создано: 26 июня 2007 12:54 · Поправил: Dr3d
· Личное сообщение · #3

Если переменная типа char, то в неё влезет только 1 байт, т.е. ah или al



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

Создано: 26 июня 2007 13:15
· Личное сообщение · #4

KyTapKuH пишет: mov Char, eax? Бля, ты проект скомпили и посмотри под отладчиком что получится. Я ж тебе исходник давал
lea ecx, Char ; ecx==ADDR Char
_@:
mov bl, [eax] ; из eax передаем в ecx== ADDR Char сгенеренный ключ
mov [ecx], bl
inc eax
inc ecx
cmp bl, 0
jnz _@
invoke SetWindowText, hEdit2, ADDR Char



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

Создано: 26 июня 2007 13:50
· Личное сообщение · #5

Это другой кейген. Olly виснет на строчке lea ecx,Char



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

Создано: 26 июня 2007 14:09
· Личное сообщение · #6

Char ты должен объявить как переменную
Если ты объявил, у нее будет адрес к прим. 00403824 и от того как ты объявил столько выделится памяти под переменную.
В Olly должно быть типа LEA ECX, DWORD PTR DS:[00403824], поле этой команды ECX будет == 00403824
И ни хрена тут не должно виснуть



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

Создано: 26 июня 2007 14:52
· Личное сообщение · #7

KyTapKuH
если твой Edit расположен на диалоге, то есть ф-ия
invoke SetDlgItemInt,hDlg, hEdit,eax,false

если это просто какой-то эдит, то нужно перевести значение из еах в строку(use google), а потом SetWindowText



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

Создано: 26 июня 2007 15:41 · Поправил: biffy
· Личное сообщение · #8

Вот пример с MessageBox на FASM,

;====>cut<==============
format PE GUI
entry _s
include 'win32a.inc'

section '' code readable writeable executable
_s:
rdtsc

push eax
push fmt
push string
call [wsprintf]
add esp,0xC

invoke MessageBoxA, 0, string, title, 0
invoke ExitProcess, 0

fmt db "0x%X",0
title db "EAX value",0
string db 50 dup (0)

data import
library kernel32,"KERNEL32.DLL"
,user32,"USER32.DLL"
include 'api\kernel32.inc'
include 'api\user32.inc'
end data
;====>cut<==============

Для перевода в строку используется wsprintf, стек освобождать самому.



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

Создано: 27 июня 2007 12:26
· Личное сообщение · #9

crc1
Виснет на следующей строчке. Olly выдает DS:[2D8996D4]=??? BL=00 Jump from 00401125



Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 27 июня 2007 13:19
· Личное сообщение · #10

Без исходника, или хотя бы бинарника, crc1 хрен угадает почему у тебя праблы.
Давно бы уже выложил исходник. Всем было бы проще. Если сильно шифруешься, то хотя бы без процедуры генерации ключа.



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

Создано: 27 июня 2007 13:38
· Личное сообщение · #11

Да я не шифруюсь Вот исходник, повторюсь, очень надо понять как сгенерированный ключ из eax вывести в hEdit2

a306_27.06.2007_CRACKLAB.rU.tgz - pro.rar



Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 27 июня 2007 15:40
· Личное сообщение · #12

Так... у меня чего-то даже не компилируется. Вернее компилируется, но не запускается Вернее запускается, но диалог по команде DialogBoxParam не создает, а потом выходит.

Сразу, что заметил.
Директива для определения строковых переменных должна быть db, а у тебя все переменные инициализируютсяdd
Char dd 1024 dup(0)



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

Создано: 27 июня 2007 16:42
· Личное сообщение · #13

Sturgeon
У меня все компилируется и запускается. Поменял определение переменной char, но проблема осталась. Olly виснет, а программа вылетает с ошибкой



Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 27 июня 2007 17:08
· Личное сообщение · #14

Переменная NameB у тебя тоже строковая.
Может бинарник прицепишь?



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

Создано: 27 июня 2007 17:18
· Личное сообщение · #15

Кидаю все что есть у меня по этому keygen'у. Пишу в rasasm на MASM32

81d0_27.06.2007_CRACKLAB.rU.tgz - pro.rar



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

Создано: 27 июня 2007 17:46
· Личное сообщение · #16

KyTapKuH
Че ты сразу не сказал что в EAX лежит не адрес сгенерированного ключа, а сам ключ
Тут надо из HEX переводить в ASCII, короче пробуй так

pop edi; Вообщем сам ключ лежит в eax
lea esi,Char; это я сделал как написали мне на форуме
mov ebx, 4h
xor ecx, ecx
_66:
mov cl, al ; разворачиваем
ror eax, 8
rol ecx, 8
dec ebx
jne _66
ror ecx, 8

mov edx, 4h
_55:
xor eax,eax ; переводим в ASCII строку
mov al, cl
mov bl, al
shr eax, 4
add al, 90h
daa
adc al, 40h
daa
mov [esi], al
inc esi
mov al, bl
and eax, 0Fh
add al, 90h
daa
adc al, 40h
daa
mov [esi], al
inc esi
shr ecx, 8h
dec edx
jne _55
invoke SetWindowText,hEdit2,ADDR Char



Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 27 июня 2007 18:02
· Личное сообщение · #17

Значит так. Как я понял, ключ сначала лежит в ESI, а потом копируетс в EAX
_3:
add eax,-04h
cmp ebx,eax
jnb short _5
xor esi,dword ptr [ebx+edi]
test bl,040h
je short _4
inc ebx
_4:
inc ebx
jmp short _1
_5:
mov eax,esi
pop esi
pop ebx
pop edi; Вообщем сам ключ лежит в eax
lea ecx,Char; это я сделал как написали мне на форуме
_13:
mov bl,[eax] Здесь падает
mov [ecx],bl
inc eax
inc ecx
cmp bl,0
jnz _13

Падает, в принципе понятно почему. Команда mov bl,[eax] помещает в регистр bl число, которе лежит по адресу eax, а не сам регистр еах.
Дальше пока я не соображу. Допустим, лежит в ЕАХ число "2F8C9EF0". Это и есть пароль? Или его нужно переводить в десятичный вид?



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

Создано: 28 июня 2007 07:27
· Личное сообщение · #18

crc1
сделал как ты мне написал, он мне выдает все равно адрес (наверное это все таки адрес) НО не сам ключ



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

Создано: 28 июня 2007 08:48
· Личное сообщение · #19

KyTapKuH
Что то я тебя не пойму. Ты хоть сам логику своего кейгена понимаешь. KyTapKuH пишет: он мне выдает все равно адрес Какой в пи**у адрес. В EAX лежит Dword (к примеру я ввел 1023456789 получил в EAX 56FFE2A5 это рег ключ) дык вот это число 56FFE2A5 нужно преобразовать в ASCII строку и вывести в едит.
Ты пытаешься тупо впихнуть в "кейген" куски кода, не разобравшись в алгоритме. Такой подход только для крямисов для детсада прокатит. ИМХО рановато тебе писать кейГены Почитай Bitfry и Калашникова



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

Создано: 28 июня 2007 11:12
· Личное сообщение · #20

Обязательно почитаю, но все таки хотелось бы дописать начатое... Как мне перевести в ASCII строку?



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

Создано: 28 июня 2007 13:18
· Личное сообщение · #21

Смотри в сторону wsprintf



Ранг: 105.9 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 28 июня 2007 21:58
· Личное сообщение · #22

Ну как? Не разобрался еще? Вот нашел пару ссылок, может поможет чем. В каждой ссылке есть исходники. Ты же на ВАСМе вроде тоже тусуешься? Там полно интересных штук можно найти.
www.wasm.ru/forum/viewtopic.php?id=18476
www.wasm.ru/forum/viewtopic.php?id=11937

А вот интересный исходник. Тут с помощью wsprintf только что бабу голую не выводят. (Значения из регистров в том числе)
www.wasm.ru/src/9/wsprintf.zip

З.Ы. К сожалению конкретным ничем помочь пока не могу. Так сам после долгого перерыва изучаю асм заново. Так что мне со всем этим только предстоит столкнуться.



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

Создано: 29 июня 2007 11:23
· Личное сообщение · #23

Спасибо всем.


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