Сейчас на форуме: vsv1, Alf (+4 невидимых)

 eXeL@B —› Вопросы новичков —› Генерация уникальной строки
Посл.ответ Сообщение

Ранг: 10.7 (новичок)
Активность: 0.020
Статус: Участник

Создано: 17 сентября 2015 16:34
· Личное сообщение · #1

Здравствуйте! Есть утилита, задача которой сгенерировать уникальную строку.

Code:
  1. VkZkd1FtUXdNVVZhZWxKdFVqSm9XRmxyVW1GUk1rcFpWV3MxVGxZemFIQlpNR1JyWWxaS1YxSlljRTlYUjNoMVYxYzFiMDFzYkZaU2FrSldWakExTUZaclZrcE5NVnBJVkd4YVYxTkdXalJaVmxaWFpXeHdWazFYZUZSU2JUazJWVlJLUzFKck1YRlVXRnBXVmtSQk5WcHJVa1pPVlRsVlZsaHNUMUZVTURrPQ==


Сразу видно, что она в base64. Если декодировать ее 4 раза, то получаем:

Code:
  1. VFdwQmQwMUVaelJtUjJoWFlrUmFRMkpZVWs1TlYzaHBZMGRrYlZKV1JYcE9XR3h1V1c1b01sbFZSakJWVjA1MFZrVkpNMVpIVGxaV1NGWjRZVlZXZWxwVk1XeFRSbTk2VVRKS1JrMXFUWFpWVkRBNVprUkZOVTlVVlhsT1FUMDk=
  2.  
  3. TWpBd01EZzRmR2hXYkRaQ2JYUk5NV3hpY0dkbVJWRXpOWGxuWW5oMllVRjBVV050VkVJM1ZHTlZWSFZ4YVVWelpVMWxTRm96UTJKRk1qTXZVVDA5ZkRFNU9UVXlOQT09
  4.  
  5. MjAwMDg4fGhWbDZCbXRNMWxicGdmRVEzNXlnYnh2YUF0UWNtVEI3VGNVVHVxaUVzZU1lSFozQ2JFMjMvUT09fDE5OTUyNA==
  6.  
  7. 200088|hVl6BmtM1lbpgfEQ35ygbxvaAtQcmTB7TcUTuqiEseMeHZ3CbE23/Q==|199524


По бокам числа, а в середине что-то похожее на base64. Если перевести base64 to HEX - получим это:

Code:
  1. 85597A066B4CD656E981F110DF9CA06F1BDA02D41C99307B4DC513BAA884B1E31E1D9DC26C4DB7FD


Protection_ID info:

Code:
  1. [!] [.net scan core] ConfuserEx v0.5.0 detected!
  2. [CompilerDetect] -> .NET
  3. [.] .Net Info -> v 2.5 (struct version) | MSIL 32 bit preferred (/platform:anycpu32bitpreferred) | Flags : 0x00020003 -> COMIMAGE_FLAGS_ILONLY | COMIMAGE_FLAGS_32BITREQUIRED | COMIMAGE_FLAGS_32BITPREFERRED | 
  4. [.] Entrypoint (Token) : 0x06000002
  5. [.] MetaData RVA : 0x0001C8DC | Size : 0x000094F4 (38132)
  6. [.] MetaData->Version 1.1 (struct ver) -> v4.0.30319 (required framework)
  7. [.] Flags : 0x0 | Streams : 0x7 (7) unusual (its usually 5) -> #~ | #Strings | #GUID | #Blob | #Strings | #Blob | #Schema


Задача: понять алгоритм генерации уникальной строки.

Пробовал натравить последний de4dot, но попытка не увенчалась успехом.

Code:
  1. ERROR: Error calculating max stack value
  2. ERROR: Instruction is null
  3. ERROR: Operand is not a local/arg
  4. ERROR: Instruction operand is null
  5. ERROR: CallingConventionSig is null
  6. Ignored 93 warnings/errors
  7. Use -v/-vv option or set environment variable SHOWALLMESSAGES=1 to see all messages
  8. The system cannot write to the specified device.


Посоветуйте, пожалуйста, как снять ConfuserEx v0.5.0.

P.S. Хотел в отладчике перехватить момент конвертации данных в base64.

Для этого должна использоваться функция CryptBinaryToString из Crypt32.dll

Но я ее не нашел в адресном пространстве процесса. Зато нашел: cryptbase.dll, cryptsp.dll, bcrypt.dll.

В их экспорте не нашел ничего подходящего. Что использует .NET для перевода в base64 ?

Прикрепляю утилиту.

d96f_17.09.2015_EXELAB.rU.tgz - xid.exe



Ранг: 237.0 (наставник), 20thx
Активность: 0.130
Статус: Участник
sysenter

Создано: 17 сентября 2015 19:20
· Личное сообщение · #2

Dynamic пишет:
Хотел в отладчике перехватить момент конвертации данных в base64.

Для этого должна использоваться функция CryptBinaryToString из Crypt32.dll

Полное фуфло, в base64 и обратно можно переводить и без всяких API

-----
продавец резиновых утёнков


| Сообщение посчитали полезным: Rainbow, Dynamic, DenCoder


Ранг: 110.8 (ветеран), 104thx
Активность: 0.090.01
Статус: Участник

Создано: 17 сентября 2015 22:05
· Личное сообщение · #3

--> STATIC <--

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

Ранг: 10.7 (новичок)
Активность: 0.020
Статус: Участник

Создано: 17 сентября 2015 22:37 · Поправил: Dynamic
· Личное сообщение · #4

HiEndsoft, Rainbow

Спасибо. То, что можно без API - это очевидно.

Вопрос заключался в другом.

Какая API вызывается и с какой библиотеки при использовании функционала .NET по переводу строки в base64 ?

Или этот функционал встроен в .NET ?




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 18 сентября 2015 05:31 · Поправил: plutos
· Личное сообщение · #5

Dynamic пишет:
Какая API вызывается и с какой библиотеки при использовании функционала .NET по переводу строки в base64 ?


Code:
  1. public static string Base64Encode(string plainText) {
  2.   var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText);
  3.   return System.Convert.ToBase64String(plainTextBytes);
  4. }


Code:
  1. public static string Base64Decode(string base64EncodedData) {
  2.   var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData);
  3.   return System.Text.Encoding.UTF8.GetString(base64EncodedBytes);
  4. }


Оно?

-----
Give me a HANDLE and I will move the Earth.




Ранг: 51.8 (постоянный), 58thx
Активность: 0.03=0.03
Статус: Участник

Создано: 20 сентября 2015 09:56
· Личное сообщение · #6

Dynamic пишет:
Если перевести base64 to HEX - получим это:
85597A066B4CD656E981F110DF9CA06F1BDA02D41C99307B4DC513BAA884B1E31E1D9DC26C4DB7FD


Это строка, зашифрованная 3DES ECB, ключ шифрования E7CCFCC9B881FD6DEED0402B47EB7693, после расшифровки 4FCC-022C-4D47-985C-7578-B0E4-0D2D-FEA9. Если убрать дефисы, то останется хэш МД5, который посчитан от длинной текстовой строки с описанием железа ПК (CPU+BIOS+MB+диск+видео).

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


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