Перейти к содержанию

imul шифрование


Antonshka

Рекомендуемые сообщения

  • Ответов 69
  • Создана
  • Последний ответ

Топ авторов темы

5 минут назад, Antonshka сказал:

~ 58 секунд до напечатания "x". Луа не подходит.

Языки с динамической типизацией сразу надо отбросить, на Python это занимало около 1-2 минут.

Ссылка на комментарий
Поделиться на другие сайты

Итог тестирования многопоточности:

19 скриптов АА, в каждом свой отдельный поток (createthread(name)) - поиск для (float)152.4550018 = ~3 секунды.

1 скрипт АА с одним потоком - результат почти тот же.

19 скриптов дали прирост, но не большой.

Ссылка на комментарий
Поделиться на другие сайты

6 минут назад, Antonshka сказал:

19 скриптов дали прирост, но не большой.

Вот более быстрый поиск, но ограничение только для целых значений частоты вращения ((float)1,.........,(float)100,.............,(Float)1000 и т.д.)

Спойлер

{ Game   : Tutorial-i386.exe
  Version: 
  Date   : 2019-03-09
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
aobscanmodule(INJECT,Tutorial-i386.exe,81 BB 80 04 00 00 E8 03 00 00) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
label(adres)
registersymbol(adres)
label(Value_EAX)
registersymbol(Value_EAX)
label(Value)
label(Podbor)
registersymbol(Value)
registersymbol(INJECT)

newmem:
  cmp [Value_EAX],0
  jne code
  push eax
  push ebx
  push ecx
  mov ecx,[Value]
  mov ebx,ecx
  imul eax,ebx,6B

Podbor:
  imul ebx,eax,B05C6C43
  cmp ebx,ecx
  je @f
  add eax,10000000
  jmp Podbor

@@:
  mov [adres],eax
  mov [Value_EAX],ebx
  pop ecx
  pop ebx
  pop eax

code:
  cmp [ebx+00000480],000003E8
  jmp return

adres:
  dd 0
Value_EAX:
  dd 0
Value:
  dd 0

INJECT:
  jmp newmem
  db 90 90 90 90 90
return:

[DISABLE]
INJECT:
  db 81 BB 80 04 00 00 E8 03 00 00

unregistersymbol(Value)
unregistersymbol(Value_EAX)
unregistersymbol(adres)
unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "Tutorial-i386.exe"+24073

"Tutorial-i386.exe"+24061: C9                             -  leave 
"Tutorial-i386.exe"+24062: C3                             -  ret 
"Tutorial-i386.exe"+24063: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+24065: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+24067: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+24069: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+2406B: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+2406D: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+2406F: 00 53 89                       -  add [ebx-77],dl
"Tutorial-i386.exe"+24072: C3                             -  ret 
// ---------- INJECTING HERE ----------
"Tutorial-i386.exe"+24073: 81 BB 80 04 00 00 E8 03 00 00  -  cmp [ebx+00000480],000003E8
// ---------- DONE INJECTING  ----------
"Tutorial-i386.exe"+2407D: 75 2C                          -  jne Tutorial-i386.exe+240AB
"Tutorial-i386.exe"+2407F: 8B 83 68 04 00 00              -  mov eax,[ebx+00000468]
"Tutorial-i386.exe"+24085: B2 01                          -  mov dl,01
"Tutorial-i386.exe"+24087: 8B 8B 68 04 00 00              -  mov ecx,[ebx+00000468]
"Tutorial-i386.exe"+2408D: 8B 09                          -  mov ecx,[ecx]
"Tutorial-i386.exe"+2408F: FF 91 20 02 00 00              -  call dword ptr [ecx+00000220]
"Tutorial-i386.exe"+24095: 8B 83 78 04 00 00              -  mov eax,[ebx+00000478]
"Tutorial-i386.exe"+2409B: B2 00                          -  mov dl,00
"Tutorial-i386.exe"+2409D: 8B 8B 78 04 00 00              -  mov ecx,[ebx+00000478]
"Tutorial-i386.exe"+240A3: 8B 09                          -  mov ecx,[ecx]
}

 

 

9 минут назад, Antonshka сказал:

тестирования

Потесть у себя на скорость пжлста.

Ссылка на комментарий
Поделиться на другие сайты

18 минут назад, Garik66 сказал:

Вот более быстрый поиск, но ограничение только для целых значений частоты вращения ((float)1,.........,(float)100,.............,(Float)1000 и т.д.)

  Показать контент


{ Game   : Tutorial-i386.exe
  Version: 
  Date   : 2019-03-09
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
aobscanmodule(INJECT,Tutorial-i386.exe,81 BB 80 04 00 00 E8 03 00 00) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
label(adres)
registersymbol(adres)
label(Value_EAX)
registersymbol(Value_EAX)
label(Value)
label(Podbor)
registersymbol(Value)
registersymbol(INJECT)

newmem:
  cmp [Value_EAX],0
  jne code
  push eax
  push ebx
  push ecx
  mov ecx,[Value]
  mov ebx,ecx
  imul eax,ebx,6B

Podbor:
  imul ebx,eax,B05C6C43
  cmp ebx,ecx
  je @f
  add eax,10000000
  jmp Podbor

@@:
  mov [adres],eax
  mov [Value_EAX],ebx
  pop ecx
  pop ebx
  pop eax

code:
  cmp [ebx+00000480],000003E8
  jmp return

adres:
  dd 0
Value_EAX:
  dd 0
Value:
  dd 0

INJECT:
  jmp newmem
  db 90 90 90 90 90
return:

[DISABLE]
INJECT:
  db 81 BB 80 04 00 00 E8 03 00 00

unregistersymbol(Value)
unregistersymbol(Value_EAX)
unregistersymbol(adres)
unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "Tutorial-i386.exe"+24073

"Tutorial-i386.exe"+24061: C9                             -  leave 
"Tutorial-i386.exe"+24062: C3                             -  ret 
"Tutorial-i386.exe"+24063: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+24065: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+24067: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+24069: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+2406B: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+2406D: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+2406F: 00 53 89                       -  add [ebx-77],dl
"Tutorial-i386.exe"+24072: C3                             -  ret 
// ---------- INJECTING HERE ----------
"Tutorial-i386.exe"+24073: 81 BB 80 04 00 00 E8 03 00 00  -  cmp [ebx+00000480],000003E8
// ---------- DONE INJECTING  ----------
"Tutorial-i386.exe"+2407D: 75 2C                          -  jne Tutorial-i386.exe+240AB
"Tutorial-i386.exe"+2407F: 8B 83 68 04 00 00              -  mov eax,[ebx+00000468]
"Tutorial-i386.exe"+24085: B2 01                          -  mov dl,01
"Tutorial-i386.exe"+24087: 8B 8B 68 04 00 00              -  mov ecx,[ebx+00000468]
"Tutorial-i386.exe"+2408D: 8B 09                          -  mov ecx,[ecx]
"Tutorial-i386.exe"+2408F: FF 91 20 02 00 00              -  call dword ptr [ecx+00000220]
"Tutorial-i386.exe"+24095: 8B 83 78 04 00 00              -  mov eax,[ebx+00000478]
"Tutorial-i386.exe"+2409B: B2 00                          -  mov dl,00
"Tutorial-i386.exe"+2409D: 8B 8B 78 04 00 00              -  mov ecx,[ebx+00000478]
"Tutorial-i386.exe"+240A3: 8B 09                          -  mov ecx,[ecx]
}

 

 

Потесть у себя на скорость пжлста.

Работает быстро, исправно.

Для настройки автомобиля правда не подойдет, там важны десятые/сотые доли.

Ссылка на комментарий
Поделиться на другие сайты

Только что, Antonshka сказал:

там важны десятые/сотые доли.

Жаль. но, если покопать дальше можно, то от него (от этого скрипта) оттолкнуться.

Ссылка на комментарий
Поделиться на другие сайты

Когда данные уже расшифровываются и получается так, что они известны, то в любом случае можно ничего не подбирать.  Можно пробовать подменять оригинальные значения любыми способами там, где с ними происходит чтение.

Если оринтируемся на константы и знаем, какие с чем связаны, то можно составить список(или словарь с ключами констант) с данными  констант и подменяемых значений. А если нужно, то еще и возвращаемых оригинальных, чтобы отменить изменения. По этому списку подменять результат расшифровки.

 

Ссылка на комментарий
Поделиться на другие сайты

9 часов назад, MasterGH сказал:

Можно пробовать подменять оригинальные значения любыми способами там, где с ними происходит чтение.

Это уже обсуждалось, вот здесь ТС ответил, почему его это не устраивает 

 

Ссылка на комментарий
Поделиться на другие сайты

С форума СЕ. Автор - ParkourPenguin

(float)188.4955597 = 433C7EDD             // original value
433C7EDD * DA9A406B mod 2^32 = BCF2465F   // encrypt value
BCF2465F * B05C6C43 mod 2^32 = 433C7EDD   // decrypt value 

Ключ B05C6C43 для расшифровки известен изначально из инструкции.

Используя этот ключ и брутфорс метод, автор получил ключ DA9A406B для зашифровки любого нового значения.

Брутфорс метод автора

Спойлер

  xor ecx,ecx
  mov edx,ecx
  mov eax,[encryptKey] -- B05C6C43
@@:
  inc ecx
  add edx,eax
  cmp edx,1
  jne short @b
  mov [decryptKey],ecx --DA9A406B

 

Недостаток такого метода, опять же занимающий некоторое время брутфорс.

Изменено пользователем Antonshka
Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, Antonshka сказал:

Недостаток такого метода, опять же занимающий некоторое время брутфорс.

Если бы я делал, то я бы сделал две функции и скрипт CE

1) функция. которая собирает словарь в текстовый файл с константами и оригинальной расшифровкой (на CE Lua в режиме отладки)

2) функция в инжектируемой dll, которая грузит словарь из файла в память и принимает аргументы константу и оригинальное расшифровываемое значение, а возвращает модифицированное.

3) CE скрипт с инжектом dll-ки и вызовом функции из пункта2 (с подменой по словарю оригинальных значений)

И все... и никакого брутфорса. Пункты 1 -  полу-универсальный , 2-универсальный, а 3 - меняется. Подойдет< скорее всего, или может подойти для любых типов шифрований в играх, где есть расшифровка в процессе игры.

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

4 часа назад, Antonshka сказал:

Недостаток такого метода, опять же занимающий некоторое время брутфорс.

 

А если переписать код, для того, чтобы все вычисления производились на видеокарте? Код не сложный, пара математических операций. В итоге вычисление будут быстрее раз в 20 производиться.  Опять же, в этом есть смысл, если проект собирается быть долгоживущим, иначе , результат не окупит затраты на написание кода.

 

Так же можно сделать минибазу,  чтобы разбить поиск на блоки, а не перебирать все значения. Я подобное делал в GTA 5, для поиска значений работающих со скриптами и этот способ показал отличную эффективность и производительность. Задача была похожая.

 

newGlobalPageBase = this->read<DWORD64, PBYTE*>(Global_struct + ((index >> 18 & 0x3F) << 3))
if (newGlobalPageBase != 0)
{
	return (newGlobalPageBase + ((index & 0x3FFFF) << 3));
}

 

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

4 часа назад, Antonshka сказал:

Недостаток такого метода, опять же занимающий некоторое время брутфорс.

Скрипт:

Спойлер

{ Game   : Tutorial-i386.exe
  Version: 
  Date   : 2019-03-09
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
aobscanmodule(INJECT,Tutorial-i386.exe,81 BB 80 04 00 00 E8 03 00 00) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
label(Value_Shifr)
registersymbol(Value_Shifr)
label(Value)
registersymbol(Value)
label(Value_Prover)
registersymbol(Value_Prover)
label(Flag)
registersymbol(Flag)
registersymbol(INJECT)

newmem:
  push eax
  cmp [Flag],1
  jne @f
  imul eax,[Value],DA9A406B
  mov [Value_Shifr],eax
  jmp code

@@:
  cmp [Flag],2
  jne code
  imul eax,[Value_Shifr],B05C6C43
  mov [Value_Prover],eax

code:
  pop eax
  cmp [ebx+00000480],000003E8
  jmp return

Value:
  dd 0
Value_Shifr:
  dd 0
Value_Prover:
  dd 0
Flag:
  dd 0

INJECT:
  jmp newmem
  db 90 90 90 90 90
return:

[DISABLE]
INJECT:
  db 81 BB 80 04 00 00 E8 03 00 00

unregistersymbol(Value)
unregistersymbol(Value_Prover)
unregistersymbol(Value_Shifr)
unregistersymbol(Flag)
unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "Tutorial-i386.exe"+24073

"Tutorial-i386.exe"+24061: C9                             -  leave 
"Tutorial-i386.exe"+24062: C3                             -  ret 
"Tutorial-i386.exe"+24063: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+24065: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+24067: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+24069: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+2406B: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+2406D: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+2406F: 00 53 89                       -  add [ebx-77],dl
"Tutorial-i386.exe"+24072: C3                             -  ret 
// ---------- INJECTING HERE ----------
"Tutorial-i386.exe"+24073: 81 BB 80 04 00 00 E8 03 00 00  -  cmp [ebx+00000480],000003E8
// ---------- DONE INJECTING  ----------
"Tutorial-i386.exe"+2407D: 75 2C                          -  jne Tutorial-i386.exe+240AB
"Tutorial-i386.exe"+2407F: 8B 83 68 04 00 00              -  mov eax,[ebx+00000468]
"Tutorial-i386.exe"+24085: B2 01                          -  mov dl,01
"Tutorial-i386.exe"+24087: 8B 8B 68 04 00 00              -  mov ecx,[ebx+00000468]
"Tutorial-i386.exe"+2408D: 8B 09                          -  mov ecx,[ecx]
"Tutorial-i386.exe"+2408F: FF 91 20 02 00 00              -  call dword ptr [ecx+00000220]
"Tutorial-i386.exe"+24095: 8B 83 78 04 00 00              -  mov eax,[ebx+00000478]
"Tutorial-i386.exe"+2409B: B2 00                          -  mov dl,00
"Tutorial-i386.exe"+2409D: 8B 8B 78 04 00 00              -  mov ecx,[ebx+00000478]
"Tutorial-i386.exe"+240A3: 8B 09                          -  mov ecx,[ecx]
}

 

Видео:

 

табличка

Tutorial-i386090319.CT

  • Понравилось 1
Ссылка на комментарий
Поделиться на другие сайты

Забыл в видео сказать, что констант всего 4: 1A9A406B, 5A9A406B, 9A9A406B, DA9A406B.

Можно использовать любую.

И также забыл показать скрипт с помощью которого я находил эти константы.

Спойлер

{ Game   : Tutorial-i386.exe
  Version:
  Date   : 2019-03-09
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
aobscanmodule(INJECT,Tutorial-i386.exe,81 BB 80 04 00 00 E8 03 00 00) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
label(adres)
registersymbol(adres)
label(Value_EAX)
registersymbol(Value_EAX)
label(Value)
label(Podbor)
registersymbol(Value)
registersymbol(INJECT)

newmem:
  push eax
  push ebx
  push ecx
  mov ecx,0

Podbor:
  cmp [Value_EAX],FFFFFFFF
  je code
  imul eax,[Value_EAX],42DE71C4 //42C80000//100 тоже 4; 42DE71C4 // 111.2221985 скрипт дал 4 константы
  imul ebx,eax,B05C6C43
  cmp ebx,42DE71C4
  je @f
  inc [Value_EAX]
  jmp Podbor

@@:
  mov ebx,[Value_EAX]
  mov [adres+ecx*4],ebx
  inc ecx
  inc [Value_EAX]
  jmp Podbor

code:
  pop ecx
  pop ebx
  pop eax
  cmp [ebx+00000480],000003E8
  jmp return

Value_EAX:
  dd 0
Value:
  dd 0
adres:
  dd 0

INJECT:
  jmp newmem
  db 90 90 90 90 90
return:

[DISABLE]
INJECT:
  db 81 BB 80 04 00 00 E8 03 00 00

unregistersymbol(Value)
unregistersymbol(Value_EAX)
unregistersymbol(adres)
unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "Tutorial-i386.exe"+24073

"Tutorial-i386.exe"+24061: C9                             -  leave
"Tutorial-i386.exe"+24062: C3                             -  ret
"Tutorial-i386.exe"+24063: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+24065: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+24067: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+24069: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+2406B: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+2406D: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+2406F: 00 53 89                       -  add [ebx-77],dl
"Tutorial-i386.exe"+24072: C3                             -  ret
// ---------- INJECTING HERE ----------
"Tutorial-i386.exe"+24073: 81 BB 80 04 00 00 E8 03 00 00  -  cmp [ebx+00000480],000003E8
// ---------- DONE INJECTING  ----------
"Tutorial-i386.exe"+2407D: 75 2C                          -  jne Tutorial-i386.exe+240AB
"Tutorial-i386.exe"+2407F: 8B 83 68 04 00 00              -  mov eax,[ebx+00000468]
"Tutorial-i386.exe"+24085: B2 01                          -  mov dl,01
"Tutorial-i386.exe"+24087: 8B 8B 68 04 00 00              -  mov ecx,[ebx+00000468]
"Tutorial-i386.exe"+2408D: 8B 09                          -  mov ecx,[ecx]
"Tutorial-i386.exe"+2408F: FF 91 20 02 00 00              -  call dword ptr [ecx+00000220]
"Tutorial-i386.exe"+24095: 8B 83 78 04 00 00              -  mov eax,[ebx+00000478]
"Tutorial-i386.exe"+2409B: B2 00                          -  mov dl,00
"Tutorial-i386.exe"+2409D: 8B 8B 78 04 00 00              -  mov ecx,[ebx+00000478]
"Tutorial-i386.exe"+240A3: 8B 09                          -  mov ecx,[ecx]
}

 

Спойлер

image.thumb.png.5426f9abe87d77a35d3bd3e953df3e0f.png

 

  • Плюс 2
Ссылка на комментарий
Поделиться на другие сайты

11 часов назад, MasterGH сказал:

Если бы я делал, то я бы сделал две функции и скрипт CE

10 часов назад, partoftheworlD сказал:

А если переписать код, для того, чтобы все вычисления производились на видеокарте? Код не сложный, пара математических операций.

@MasterGH, @partoftheworlD, интересные идеи.

 

@Garik66, отличный скрипт получился. Как я понял он использует метод пользователя ParkourPenguin?

433C7EDD * DA9A406B mod 2^32 = BCF2465F   // encrypt value
BCF2465F * B05C6C43 mod 2^32 = 433C7EDD   // decrypt value 

Спасибо за видео @Garik66, интересно было посмотреть. По поводу

14 часов назад, Antonshka сказал:

Недостаток такого метода, опять же занимающий некоторое время брутфорс.

, я имел ввиду брутфорс для получения DA9A406B.

 

Нужно протестировать много адресов в памяти, перед тем как понять нужны ли они для конечного инструмента или нет. В конечном инструменте будут использованы готовые ключи типа DA9A406B, для быстрой зашифровки. Но для "Коленвала", задача которого есть быстрое понимание назначения текущего значения в памяти по отношению к автомобилю - брутфорс получение DA9A406B для каждого нового B05C6C43 обременительно. Потому так написал.

В "Коленвал" наверно нужно встроить опцию получения ключей зашифровки типа DA9A406B, для определенных ключей расшифровки типа B05C6C43. Затем добавить полученные ключи в конечный инструмент.

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, Antonshka сказал:

для каждого нового B05C6C43 обременительно

Я спрашивал, ты сказал, что это константа.

Или думаешь они будет меняться?

2 минуты назад, Antonshka сказал:

Как я понял он использует метод пользователя ParkourPenguin?

Я не знаю.
Я просто предполагал изначально, что зашифровка тоже будет в виде либо деления либо умножения с отбрасыванием старшей части.
самый первый мой скрипт - юзал деление, но дальше оно не пошло.
далее я уже смотрел умножение - такое же как и при дешифровке. 

5 минут назад, Antonshka сказал:

для каждого нового B05C6C43 обременительно

И с другой стороны. это же тоже не сложно добавить в скрипт, юзая флаги

1. добавить проверку равна ли константа расшифровки B05C6C43

2. сделать разовый подбор константы зашифровки.

Ссылка на комментарий
Поделиться на другие сайты

12 минут назад, Garik66 сказал:

Я спрашивал, ты сказал, что это константа.

B05C6C43

Это константа. Но я немного о другом.

Я планирую сделать два приложения. Первое приложение для быстрого тестирования значений в памяти, для понимания их назначений.. Вот как оно должно работать - первый адрес, ставим бряк на чтение, получаем ключ типа B05C6C43, придумываем любое новое значение float, используя брутфорс получаем float в зашифрованном виде, записываем его вручную в память и смотрим что изменилось в поведении автомобиля, решаем нужен ли этот адрес для другого второго приложения. Далее идем на второй адрес, ставим опять бряк, берем новый ключ типа B05C6C43, float, брусфорс, наше решение, и так далее, третий адрес, четвертый, тестируем, отбираем.

 

Во втором приложении будут использоваться только отобранные адреса. Для каждого отобранного адреса будет свой собственный ключ типа DA9A406B для зашифровки, и ключ типа B05C6C43 для расшифровки. Во втором приложении брутфорс не нужен.

 

Первое приложение - для отсева параметров автомобиля от не параметров, и для нахождения ключей B05C6C43 и DA9A406B для каждого параметра.

Второе приложение - для настройки отобранных параметров.

Ссылка на комментарий
Поделиться на другие сайты

4 минуты назад, Antonshka сказал:

Первое приложение - для отсева параметров автомобиля от не параметров, и для нахождения ключей B05C6C43 и DA9A406B для каждого параметра.

Второе приложение - для настройки отобранных параметров.

Ну теперь более понятно.

Т.е. параметры авто скорее всего все в игре шифруются и константы могут быть другими.
А, если разработчики не только IMUL-шифрование юзали?

ЗЫ: да и кстати сомневаюсь, что пар зашифровки/дешифровки (при  IMUL-шифровании) много может быть.

Ссылка на комментарий
Поделиться на другие сайты

55 минут назад, Garik66 сказал:

А, если разработчики не только IMUL-шифрование юзали?

ЗЫ: да и кстати сомневаюсь, что пар зашифровки/дешифровки (при  IMUL-шифровании) много может быть.

Пока что кроме IMUL-шифрование параметров ничего не встречал.

Вот еще адрес с шифрованным значение 90D8369C, его ключ imul 6FA85A41. Расшифрованное значение 4478B59C (float)994.8376465. Ключ для его зашифровки 9144B5C1.

И так все "imul" адреса которые проверял.

  • Спасибо 1
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.