0xy писал(а):dll-переходники?
0xy писал(а):А есть ли в природе готовые решения для генерации таковых?
0xy писал(а):Патч msvbvm видать?
B8XXXXXXXXFFD0C2YYYY
Function PatchVBA4cdecl(Optional Enable As Boolean = True) As Boolean
' для вызовов dll с соглашением cdecl
'!Support only vba332.dll v.3.0.7019!
Const PAGE_EXECUTE_READWRITE = &H40
Const pCRC = &HD8, CRC = &H1928EA, pPatch1 = &H155E26, pPatch2 = &H155E6B
Const Original = "3B FC 0F 85 BB 6D 00 00", Patch = "8B E7 90 90 90 90 90 90"
Dim p&, i&, S$, er&
p = GetModuleHandle("vba332")
CopyMemory ByVal VarPtr(i), ByVal (p + pCRC), 4
If i <> CRC Then PatchVBA4cdecl = True: Exit Function
If Enable Then S = Hex2Bin(Patch) Else S = Hex2Bin(Original)
er = VirtualProtect(ByVal p + pPatch1, 77, PAGE_EXECUTE_READWRITE, i)
CopyMemory ByVal p + pPatch1, ByVal S, 8
CopyMemory ByVal p + pPatch2, ByVal S, 8
er = VirtualProtect(ByVal p + pPatch1, 77, ByVal i, i)
End Function
0xy писал(а):Так ведь Call eax стек подвинет!?
0xy писал(а):Все же, не проще ли пропатчить msvbvm так, чтобы она сама восстанавливала стек, если этого не сделала вызванная процедура?
Хакер писал(а):0xy писал(а):Все же, не проще ли пропатчить msvbvm так, чтобы она сама восстанавливала стек, если этого не сделала вызванная процедура?
Нет, и не только не проще, а вообще невозможно в принципе.
Потому что msvbvm никак не участвует в вызове функций. Единственное, это когда функция вызывается в первый раз, и её адрес не известен, тогда msvbvm ищет функцию, но всё не вызывает её.
А выложенный тобою код — пугающий непрофессиональный блек-кодинг
0xy писал(а):Ну, в крайнем случае, как раз этой функцией можно и заняться
0xy писал(а):Но, похоже, до этого дело не дойдет: оказывается, после компиляции, On Error Resume Next таки РУЛИТ!!!
0xy писал(а):А под IDE, видимо, можно сделать по аналогии с VBA.
0xy писал(а):Ну да. Зато дешево и практично
0xy писал(а):Апплеты упоминались в примере к твоей приблуде (FuncPtrExample.vbp), причем у меня этот пример падает--вот я под строл и спрятался
0xy писал(а):Да и разбираться в твоем коде на тот момент не было времени (а как заюзать его, не разобравшись--то ли крупными буквами не написано, то ли плохой из меня копи-пастер )
0xy писал(а):Любопытно, что и я собирался ковырять именно эту функцию
0xy писал(а):Вот только ты ее почему-то не патчишь, а с немалым трудом перехватываешь
0xy писал(а):И, как я понял, пакованные файлы работать не будут?
0xy писал(а):Любопытно: как ты обоснуешь "бесполезность" пакеров как средства защиты софта?
Хакер писал(а):Я собирался обосновать бесполезность пакеров.
Сейчас этот форум просматривают: Google-бот и гости: 17