| Посл.ответ | Сообщение | 
| 
 Ранг: 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
  | Сообщение посчитали полезным: |