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

 eXeL@B —› Протекторы —› Помогите найти вызов функции
Посл.ответ Сообщение

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

Создано: 15 октября 2012 23:19
· Личное сообщение · #1

Решил вот исследовать программу ViKing. Вроде все распаковал, но походу не все. Буквально все исходники на руках и вижу код, но где идет работа с реестром, а именно с работа с ключами. Вот пример дампа API запросов программы, где четко видна работа с реестром.


RegOpenKeyExW ( HKEY_CURRENT_USER, "Software\ViKing", 0, KEY_READ | KEY_CREATE_SUB_KEY | KEY_SET_VALUE, 0x0012f2f8 )
GetLastError ( )
memset ( 0x0638e5ec, 0, 76 )
GetLastError ( )
RtlEnterCriticalSection ( 0x772065c0 )
GetLastError ( )
GetLastError ( )
GetLastError ( )
memset ( 0x0638e5ec, 0, 76 )
GetLastError ( )
RtlLeaveCriticalSection ( 0x772065c0 )
GetLastError ( )
GetLastError ( )
GetLastError ( )
GetLastError ( )
GetLastError ( )
RtlInitUnicodeStringEx ( 0x0012f188, "Software\ViKing" )
GetLastError ( )
GetLastError ( )
GetLastError ( )
GetLastError ( )
GetLastError ( )
NtOpenKeyEx ( 0x0012f2f8, KEY_READ | KEY_CREATE_SUB_KEY | KEY_SET_VALUE, 0x0012f118, 0 )
GetLastError ( )
GetLastError ( )
GetLastError ( )
GetLastError ( )
memset ( 0x0638e4c0, 0, 56 )
GetLastError ( )
GetLastError ( )
GetLastError ( )
GetLastError ( )
RtlNtStatusToDosError ( STATUS_SUCCESS )
GetLastError ( )
GetLastError ( )
memset ( 0x0638dfc0, 0, 56 )
GetLastError ( )
InterlockedCompareExchange ( 0x003a0238, 1, 0 )
RtlEnterCriticalSection ( 0x772065c0 )
InterlockedDecrement ( 0x003a0238 )
GetLastError ( )
HeapAlloc ( 0x00340000, 0, 468 )
InterlockedCompareExchange ( 0x003a0238, 1, 0 )
InterlockedIncrement ( 0x00409064 )
InterlockedDecrement ( 0x003a0238 )
memset ( 0x05988fec, 0, 448 )
RtlLeaveCriticalSection ( 0x772065c0 )
InterlockedDecrement ( 0x00409064 )
InterlockedCompareExchange ( 0x003a0238, -1, 0 )
InterlockedDecrement ( 0x0598b51c )
GetLastError ( )
HeapFree ( 0x00340000, 0, 0x0598b518 )
RtlFreeHeap ( 0x00340000, 0, 0x0598b518 )
InterlockedCompareExchange ( 0x024c3c7c, 4, 8 )
InterlockedIncrement ( 0x05988fdc )
InterlockedExchange ( 0x003a0238, 0 )
GetLastError ( )
HeapAlloc ( 0x00340000, 0, 12 )
strcpy_s ( 0x05987090, 12, "ContainsKey" )
GetLastError ( )
TryEnterCriticalSection ( 0x0038be60 )
HeapFree ( 0x00340000, 0, 0x05987090 )
RtlFreeHeap ( 0x00340000, 0, 0x05987090 )
LeaveCriticalSection ( 0x0038be60 )
strcmp ( "ContainsKey", "IsCompatibleKey" )
InterlockedCompareExchange ( 0x0259627c, 8, 4 )
GetLastError ( )
HeapAlloc ( 0x00340000, 0, 12 )
RegQueryValueExW ( 0x0000054c, "Activation", NULL, 0x0012f384, NULL, 0x0012f380 )
strcpy_s ( 0x05987090, 12, "ContainsKey" )
GetLastError ( )
RtlInitUnicodeStringEx ( 0x0012f1ac, "Activation" )
HeapFree ( 0x00340000, 0, 0x05987090 )
RtlFreeHeap ( 0x00340000, 0, 0x05987090 )
GetLastError ( )
HeapAlloc ( 0x00340000, 0, 12 )
strcpy_s ( 0x05987090, 12, "ContainsKey" )
GetLastError ( )
NtQueryValueKey ( 0x0000054c, 0x0012f1ac, KeyValueFullInformationAlign64, 0x0012f0e8, 144, 0x0012f0c4 )
HeapFree ( 0x00340000, 0, 0x05987090 )
RtlFreeHeap ( 0x00340000, 0, 0x05987090 )
GetLastError ( )
HeapAlloc ( 0x00340000, 0, 12 )
strcpy_s ( 0x05987090, 12, "ContainsKey" )
GetLastError ( )
HeapFree ( 0x00340000, 0, 0x05987090 )
RtlFreeHeap ( 0x00340000, 0, 0x05987090 )
RtlNtStatusToDosError ( STATUS_SUCCESS )
GetLastError ( )
HeapAlloc ( 0x00340000, 0, 12 )
strcpy_s ( 0x05987090, 12, "ContainsKey" )
GetLastError ( )
HeapFree ( 0x00340000, 0, 0x05987090 )
RtlFreeHeap ( 0x00340000, 0, 0x05987090 )
GetLastError ( )
HeapAlloc ( 0x00340000, 0, 12 )
strcpy_s ( 0x05987090, 12, "ContainsKey" )
GetLastError ( )
HeapFree ( 0x00340000, 0, 0x05987090 )
InterlockedCompareExchange ( 0x0259627c, 4, 8 )
RtlFreeHeap ( 0x00340000, 0, 0x05987090 )
InterlockedCompareExchange ( 0x0259627c, 8, 4 )
GetLastError ( )
RegQueryValueExW ( 0x0000054c, "Activation", NULL, 0x0012f384, 0x0259a6dc, 0x0012f380 )
HeapAlloc ( 0x00340000, 0, 12 )
strcpy_s ( 0x05987090, 12, "ContainsKey" )
GetLastError ( )
RtlInitUnicodeStringEx ( 0x0012f1ac, "Activation" )
HeapFree ( 0x00340000, 0, 0x05987090 )
RtlFreeHeap ( 0x00340000, 0, 0x05987090 )
GetLastError ( )
HeapAlloc ( 0x00340000, 0, 12 )
strcpy_s ( 0x05987090, 12, "ContainsKey" )
NtQueryValueKey ( 0x0000054c, 0x0012f1ac, KeyValueFullInformationAlign64, 0x0012f0e8, 144, 0x0012f0c4 )
GetLastError ( )
HeapFree ( 0x00340000, 0, 0x05987090 )
RtlFreeHeap ( 0x00340000, 0, 0x05987090 )
GetLastError ( )
HeapAlloc ( 0x00340000, 0, 12 )
RtlAllocateHeap ( 0x00340000, 0, 383 )
strcpy_s ( 0x05987090, 12, "ContainsKey" )
GetLastError ( )
HeapFree ( 0x00340000, 0, 0x05987090 )
RtlFreeHeap ( 0x00340000, 0, 0x05987090 )
GetLastError ( )
HeapAlloc ( 0x00340000, 0, 12 )
strcpy_s ( 0x05987090, 12, "ContainsKey" )
GetLastError ( )
HeapFree ( 0x00340000, 0, 0x05987090 )
NtQueryValueKey ( 0x0000054c, 0x0012f1ac, KeyValueFullInformationAlign64, 0x059435d8, 383, 0x0012f0c4 )
RtlFreeHeap ( 0x00340000, 0, 0x05987090 )
GetLastError ( )

Программа написана на .NET и защита была Obfuscated. Исходник вижу, главная прога ViKing.exe грузит только DLL, а в ViKing.Engine.dll основной код программы. Только вот нет нигде работы с реестром, все перерыл, потом пришло в голову что в ресурсе находится код активации. Но то ли у меня руки кривые, то ли я чего то не так понял. Хочу посмотреть к чему привязка идет для создания серийника, если уж простая перестановка ОС требует покупки новой лицензии. Есть еще DLL остальные, но вроде там ничего особенного. Возможно там, что то не углядел. Вообщем не могу понять как защищена часть работы с реестром. Помогите разобраться.




Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

Создано: 15 октября 2012 23:26 · Поправил: KingSise
· Личное сообщение · #2

если это .НЕТ, то можно посмотреть в сторону

SaveSetting "AppName", "Section", "Key", "Setting"
GetSetting("AppName", "Section", "Key")

а вообще стандартные классы насколько я помню Microsoft.Win32.Registry, Microsoft.Win32.RegistryKey


[добавил]
Ессли нет вызовов в самом ехе, ищи в длл

-----
-=истина где-то рядом=-




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

Создано: 15 октября 2012 23:27 · Поправил: yltalex
· Личное сообщение · #3

Сам ViKing уже DeObfuscated

6b6d_15.10.2012_EXELAB.rU.tgz - ViKing.rar

ViKing.Engine.dll уже DeObfuscated

0012_15.10.2012_EXELAB.rU.tgz - ViKing.Engine.dll

Сам Viking можно скачать тут https://rapidshare.com/files/2919790880/Original.rar



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

Создано: 15 октября 2012 23:35
· Личное сообщение · #4

KingSise пишет:
если это .НЕТ, то можно посмотреть в сторону

SaveSetting "AppName", "Section", "Key", "Setting"
GetSetting("AppName", "Section", "Key")

а вообще стандартные классы насколько я помню Microsoft.Win32.Registry, Microsoft.Win32.RegistryKey


Сейчас посмотрел, тоже нет, проблема в том что нет даже текстовых строк с упоминанием разделов реестра и ничего близкого, в ViKing.Engine.dll где основной код все модули перекапустил, все не то. Именно параметры реестра, названия ключей реестра, функций работы с реестрами нигде нет, будто из ничего появляется.




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

Создано: 16 октября 2012 00:24 · Поправил: plutos
· Личное сообщение · #5

Кнопка "ПРАВКА" на что?

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


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

Ранг: 45.7 (посетитель), 40thx
Активность: 0.030
Статус: Участник

Создано: 16 октября 2012 01:49
· Личное сообщение · #6

ссылку на программу дайте




Ранг: 469.0 (мудрец), 100thx
Активность: 0.250
Статус: Участник
[www.AHTeam.org]

Создано: 16 октября 2012 03:36
· Личное сообщение · #7

yltalex пишет:
Сейчас посмотрел, тоже нет


есть

Microsoft.Win32.Registry ипользуется в ViKing.exe
Ищи внимательней.

-----
-=истина где-то рядом=-





Ранг: 57.3 (постоянный), 67thx
Активность: 0.060
Статус: Участник

Создано: 16 октября 2012 05:53
· Личное сообщение · #8

А че париться с апи монитором? Возьми рефлектор и смотри, че там (http://exelab.ru/f/action=vthread&forum=1&topic=16650&page=19#16).

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

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

Создано: 16 октября 2012 11:11
· Личное сообщение · #9

Я же конечно первым делом и посмотрел рефлектором на все, но там нет ни строк с названием полей реестра ни функций ввода/вывода в реестр. Мне интересен сам кусок кода где идет работа с реестром и лицензионными данными, чтоб узнать к чему идет привязка лицензии в системе, так как любая переустановка ОС требует покупки лицензии. В Viking почти все функции у меня показывает как:
public void Procedure_5(JobInfoBase jobInfoBase_0, ThreadStatus threadStatus_1)
{
throw new Exception("Error, ViKing Runtime library not loaded!");
}

независимо от названия функции и входных параметров. Может я не правильно распаковал ViKing.exe потому, что в ViKing.Engine.dll все хорошо.



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

Создано: 16 октября 2012 11:32
· Личное сообщение · #10

прогони прогу в KDT http://portal.b-at-s.net/download.php?view.53 и увидишь какие функции используются

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

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

Создано: 21 октября 2012 01:08
· Личное сообщение · #11

А кто-то может правильно распаковать ViKing.exe, а то мне кажется что он не распакован до конца мною???


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


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