Посл.ответ |
Сообщение |
Ранг: 13.0 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 05 марта 2007 15:14 · Личное сообщение · #1
Взломал пару програмок и решил написать кейген. Но знания мне не хватило. Подскажите как мне в Delphi узнать шеснадцеричное значение буквы? И как в нем же ксорить?
| Сообщение посчитали полезным: |
|
Ранг: 15.0 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 05 марта 2007 15:54 · Поправил: Flosy · Личное сообщение · #2
edit2.Text := Format('%0x',[ord(edit1.text[1])]);
//берётся код первого символа из edit1 и записывается в edit2
смотря с чем хочешь ксорить
например:
xored := ord(edit1.text[1]) xor schemxorit;
| Сообщение посчитали полезным: |
Ранг: 793.4 (! !), 568thx Активность: 0.74↘0 Статус: Участник Шаман
|
Создано: 06 марта 2007 00:11 · Личное сообщение · #3
edit2.text:=IntToHex(ORD(edit1.text[1]),2);
----- Yann Tiersen best and do not fuck | Сообщение посчитали полезным: |
Ранг: 116.6 (ветеран), 8thx Активность: 0.05↘0 Статус: Участник
|
Создано: 06 марта 2007 00:16 · Личное сообщение · #4
PE_Kill, Flosy пишет:
edit1.text[1]
За такие примеры нужно открывать не только руки, но и голову )
Не трудно догадаться что будет если edit1.text=''
| Сообщение посчитали полезным: |
Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 06 марта 2007 01:24 · Личное сообщение · #5
dermatolog пишет:
Не трудно догадаться что будет если edit1.text=''
ну дык чел наверное догадается об этом))) раз кейген пишет...
----- [nice coder and reverser] | Сообщение посчитали полезным: |
Ранг: 309.8 (мудрец), 21thx Активность: 0.17↘0 Статус: Участник
|
Создано: 06 марта 2007 02:11 · Личное сообщение · #6
имхо проще (я так делаю): bValue := Byte(szTemp[1]);)
----- Shalom ebanats! | Сообщение посчитали полезным: |
Ранг: 793.4 (! !), 568thx Активность: 0.74↘0 Статус: Участник Шаман
|
Создано: 06 марта 2007 02:41 · Личное сообщение · #7
dermatolog пишет:
За такие примеры нужно открывать не только руки, но и голову
гг, какие вопросы, такие ответы, я же не буду еще и код проверки строки писать
----- Yann Tiersen best and do not fuck | Сообщение посчитали полезным: |
Ранг: 161.0 (ветеран) Активность: 0.12↘0 Статус: Участник
|
Создано: 06 марта 2007 05:10 · Личное сообщение · #8
name:=Edit1.Text;
t:=Ord(name[i]);
hex:=Inttohex(t, 2); // перевод имени в HEX
Edit2.Text:=Edit2.Text+(hex); // вывод всего текста в Edit2, а не посимвольно
| Сообщение посчитали полезным: |
Ранг: 353.0 (мудрец) Активность: 0.37↘0 Статус: Участник resreveR
|
Создано: 06 марта 2007 05:23 · Личное сообщение · #9
ты ему уж весь цикл приведи.. с проверкой длинны и т.д.
----- Тут не могла быть ваша реклама | Сообщение посчитали полезным: |
Ранг: 13.0 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 06 марта 2007 16:58 · Личное сообщение · #10
Flosy пишет:
xored := ord(edit1.text[1]) xor schemxorit;
Какого типа переменная xored, schemxorit?
| Сообщение посчитали полезным: |
Ранг: 13.0 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 06 марта 2007 18:51 · Личное сообщение · #11
Решил я мозг не мучить и просто выдрать код генерации из проги и всавить в ключегон но при нажатии на F9 обламался.
компиляция прерывается на строке "div 1A":
[Error] Unit1.pas(40): Error in numeric constant - что эта за ошибка?
(Имя из одной буквы прога это допускает)
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
Code: string;
Hex: string;
begin
Hex := Format('%0x',[ord(edit1.text[1])]);
asm
mov eax, hex
mov eax, 1
xor eax, 1
div 1A
shr ax, 8
add eax, 41
mov Code, eax
end;
Edit2.Text := Code;
end;
А вот это в проге:
00000715 8A06 MOV AL,BYTE PTR DS:[ESI] ;В al помещается буква
00000717 02C1 ADD AL,CL
00000719 32C1 XOR AL,CL
0000071B F6F3 DIV 1A
0000071D 66:C1E8 08 SHR AX,8
00000721 04 41 ADD AL,41
00000723 8807 MOV BYTE PTR DS:[EDI],AL ;буква кода
00000725 47 INC EDI ;Что такое INC?
00000726 46 INC ESI ;Что такое INC?
00000727 41 INC ECX ;Что такое INC?
Вы сюда заглядывайте иногда так как я носом чую у меня вопросы возникнут=)
| Сообщение посчитали полезным: |
Ранг: 1288.1 (!!!!), 273thx Активность: 1.29↘0 Статус: Участник
|
Создано: 06 марта 2007 20:00 · Личное сообщение · #12
Ужос. Если дергаешь код из проги - пиши на асме, какое нах делфи..
| Сообщение посчитали полезным: |
Ранг: 47.2 (посетитель) Активность: 0.02↘0 Статус: Участник
|
Создано: 06 марта 2007 20:32 · Личное сообщение · #13
satana не "div 1A", а "div 1Ah" или "div $1A" уж тогда. И в отношении остальных чисел тоже.
"inc переменная" - это и в Delphi "inc(переменная)". Увеличение на 1.
Короче, иди учи asm и Delphi, а то тебя тут скоро забанят за такие вопросы
| Сообщение посчитали полезным: |
Ранг: 793.4 (! !), 568thx Активность: 0.74↘0 Статус: Участник Шаман
|
Создано: 06 марта 2007 20:36 · Личное сообщение · #14
Бу го го
satana пишет:
div 1A
в делфи хекс цыферги указываются спец знаком
div $1A
satana пишет:
00000725 47 INC EDI ;Что такое INC?
Кури доки по асму, никто тебе тут онлайн уроки устраивать не будет...
----- Yann Tiersen best and do not fuck | Сообщение посчитали полезным: |
Ранг: 54.0 (постоянный) Активность: 0.02↘0 Статус: Участник
|
Создано: 07 марта 2007 02:41 · Личное сообщение · #15
satana
Может я и путаю но этот код мне видится так:
procedure TForm1.Button1Click(Sender: TObject);
var
InS, OutS: string;
i: integer;
b: byte;
begin
InS := Edit1.Text;
OutS := Edit1.Text;
for i := 1 to length(InS) do
begin
b := byte(InS[i]);
b := b mod $1A + $41;
OutS[i] := char(b);
end;
Edit2.Text := OutS;
end;
вопрос- что было в CL до начала цикла?
опкод F6F3 и Ида, и Оля воспринимают как DIV BL, откуда div 1А?
| Сообщение посчитали полезным: |
Ранг: 309.8 (мудрец), 21thx Активность: 0.17↘0 Статус: Участник
|
Создано: 07 марта 2007 07:55 · Личное сообщение · #16
чёта странна:
mov eax, hex
mov eax, 1
)
----- Shalom ebanats! | Сообщение посчитали полезным: |
Ранг: 13.0 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 07 марта 2007 14:50 · Личное сообщение · #17
sorry
| Сообщение посчитали полезным: |