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

 eXeL@B —› Вопросы новичков —› Перевод значений - как реализовать на масм?
Посл.ответ Сообщение

Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 27 ноября 2009 09:53 · Поправил: SReg
· Личное сообщение · #1

Вот решил закейгенить одну прогу...
Собственно для реализации рипнул код:

к примеру вот:
Code:
  1. Getkey proc
  2.   MOV EAX,[id_code]
  3.   MOV EBX,EAX
  4.   SHL EBX,2h
  5.   SUB EBX,EAX
  6.   ADD EBX,20A4h
  7.   MOV EAX,EBX
  8.   MOV [unlock_code],EAX
  9. ret
  10. Getkey endp

Code:
  1. invoke GetDlgItemText,hWin,1002, addr id_code,32
  2. invoke Getkey
  3. invoke SetDlgItemText,hWin,1003, addr unlock_code

В кейгене из Edit(1002) считывается строковое значение, далее его как то нужно перевести в шеснадцатиричный формат и поместить в переменную(id_code), произвести над ним вышеприведенные операции, а перед вызовом функи SetDlgItemText значение переменной (unlock_code) необходимо опять как то перевести в десятичный формат, и только после этого её вызвать... Результат как видно из примера отображаеться в Edit'e(1003)

Если у кого то есть свои наработки по поводу этого как то, просьба поделиться
П.С. На дельфях все это конечно же легко реализовать, но хочется именно средствами асма;)




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 27 ноября 2009 11:47 · Поправил: BoRoV
· Личное сообщение · #2

они уже есть там, используй масмлиб, и посмотри хелму по ней, найдешь также еще много удобных ф-ий

-----
Лучше быть одиноким, но свободным © $me





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

Создано: 27 ноября 2009 13:15 · Поправил: zeppe1in
· Личное сообщение · #3

Code:
  1. .data?
  2.  
  3. szBuff   db 12 dup (?)
  4. Mult dd ?
  5.  
  6. Int2StrProc proc uses esi edi
  7. ;eax = BinVal
  8. ;edx = Address of Buffer
  9.  
  10.          mov edi, edx
  11.          mov ecx, 10
  12.          mov esi, offset szBuff+11
  13.  
  14. @@:
  15.          xor edx,edx
  16.          div ecx
  17.          or dl,30h
  18.          dec esi
  19.          mov [esi],dl
  20.          test eax, eax
  21.          jnz @B
  22.  
  23.          mov ecx, offset szBuff+12
  24.          sub ecx, esi
  25.          rep movsb
  26.          mov eax, edi
  27.          dec eax
  28.          ret
  29.  
  30. Int2StrProc endp
  31.  
  32.  
  33. Str2IntProc proc uses edi ebx
  34. ;eax=Pointer to null-terminated string
  35.  
  36.          mov ecx, -1
  37.          mov edi, eax
  38.          xor eax, eax
  39.          repne scasb
  40.          not ecx
  41.          dec ecx
  42.          jz @@Exit
  43.          sub edi,2
  44.  
  45.          xor ebx,ebx
  46.          mov Mult,1
  47. @@1:
  48.          xor eax,eax
  49.          mov al, [edi]
  50.  
  51.          and al, 0Fh
  52.  
  53.          mul Mult
  54.          add ebx, eax
  55.  
  56.          imul edx, Mult, 10
  57.          mov Mult, edx
  58.          dec edi
  59.          dec ecx
  60.          jnz @@1
  61.          mov eax,ebx
  62. @@Exit:
  63.          ret
  64.  
  65. Str2IntProc endp


-----
zzz




Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 27 ноября 2009 15:31
· Личное сообщение · #4

Code:
  1. invoke GetDlgItemInt,hWin,1002,addr id_code ,0
  2. MOV EBX,EAX
  3. SHL EBX,2h
  4. SUB EBX,EAX
  5. ADD EBX,20A4h
  6. invoke SetDlgItemInt,hWin,1003,EBX,0



 eXeL@B —› Вопросы новичков —› Перевод значений - как реализовать на масм?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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