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

 eXeL@B —› Вопросы новичков —› Помогите :: Проверка серийника с таблицей
Посл.ответ Сообщение

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

Создано: 04 марта 2012 23:26 · Поправил: webcont
· Личное сообщение · #1

Помогите разобраться
Проверяется сeрийник по всей видимости с crctable

Code:
  1. __text:0A1018E8 loc_A1018E8:   ; CODE XREF: IsLicenceNumberValid(char *,char *,long *)+191j
  2. __text:0A1018E8 movzx   eax, byte ptr [ecx-1]   ; Char (v13)
  3. __text:0A1018EC inc     esi
  4. __text:0A1018ED mov     edi, [ebp+var_2C]
  5. __text:0A1018F0 xor     eax, edx             ; 1 (v12)
  6. __text:0A1018F2 movzx   eax, al             ; 2
  7. __text:0A1018F5 shr     edx, 8                 ; 3
  8. __text:0A1018F8 xor     edx, [edi+eax*4]     ; 4
  9.  
  10.  


Hex-Rays выдает вот что - v12 = crctable[(unsigned __int8)(v12 ^ *(v13 - 1))] ^ ((unsigned int)v12 >> 8)

Благодарю




Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

Создано: 04 марта 2012 23:56
· Личное сообщение · #2

Вы когданить ВСЕ (новички) научитесь вместе с вопросом (просьбой) постить ссылки на программы?
Тот код что вы (новички) приводите как правило не о чем! только гадать на кофейной гуще...

-----
aLL rIGHTS rEVERSED!


| Сообщение посчитали полезным: DimitarSerg

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

Создано: 05 марта 2012 00:39
· Личное сообщение · #3

Программа на MAC OS X

можете формулу упростить v12 = crctable[(unsigned __int8)(v12 ^ *(v13 - 1))] ^ ((unsigned int)v12 >> 8)
или расписать подробнее

>Тот код что вы (новички) приводите как правило не о чем

ABCDEFGHIJ-1234 ; Скажем это наш серийник

movzx eax, byte ptr [ecx-1] ; А попорядку пропускает серийник
inc esi это счетчик
mov edi, [ebp+var_2C] ; это адрес crctable он остается без изменения
xor eax, edx ; ксорится А=41h c FFFFFFFF = FFFFFFBE причем если первая буква не правильна то все суммы будут тоже неправильны
movzx eax, al ; из FFFFFFBE остается BE
shr edx, 8 ; 00FFFFFF
xor edx, [edi+eax*4] ???



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 05 марта 2012 02:18 · Поправил: tihiy_grom
· Личное сообщение · #4

webcont пишет:
xor edx, [edi+eax*4] ???

тут EDX ксорится на элемент массива (таблицы) с индексом $BE. А сами элементы в массиве имеют тип DWORD.
То есть имеем некий массив (таблицу):
mass: array[0..$FF] of DWORD


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


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