Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Karcrack

#262
I can't understand your question. You're already calling this API (MulDiv) without using [Str/Var/Obj]Ptr... you're actually using MulDiv instead of [Var/Obj]Ptr... So I don't understand what you mean with:
Cita de: msdl en 30 Abril 2012, 21:16 PM
is it possible to invoke this API (without using strptr or varptr) ?
#263
If you look at MSVBVM60's export table you'll see there's no functions called StrPtr() or ObjPtr()... Those are just macros of VarPtr()... So in theory you'd be able to replace those macros but sadly is not posible with StrPtr().

You cannot replace StrPtr() because VB6 always create a copy of the string you're passing to an external function... so if you try to pass the string to the MulDiv() func it will recieve a copy of the string, therefore you'll be getting the pointer to a copied string that after the API call will be deleted from memory. Here you got a sample that shows it won't work:
Código (vb) [Seleccionar]
'KERNEL32
Private Declare Function VarPtr__ Lib "KERNEL32" Alias "MulDiv" (ByRef a As Any, Optional ByVal b As Long = 1, Optional ByVal c As Long = 1) As Long
'MSVBVM60
Private Declare Sub GetMem4 Lib "MSVBVM60" (ByVal lPtr As Long, ByRef ret As Long)
'USER32
Private Declare Function MessageBoxW Lib "USER32" (ByVal hWnd As Long, ByVal lpText As Long, ByVal lpCaption As Long, ByVal wType As Long) As Long

Private Sub Form_Load()
   Dim cadena      As String
   Dim ptr1        As Long
   Dim ptr2        As Long
   
   cadena = "karcrack"
   
   ptr1 = StrPtr(cadena)
   'StrPtr__
   Call GetMem4(VarPtr__(cadena) + 4, ptr2)
   
   MsgBox (ptr1 = ptr2)
   
   Call MessageBoxW(0, ptr2, 0, 0)
   Call MessageBoxW(0, ptr1, 0, 0)
End Sub



About ObjPtr() there's no problem about it... just need to change ByRef to ByVal because of the VB6 object instance creator...
Código (vb) [Seleccionar]
'KERNEL32
Private Declare Function ObjPtr__ Lib "KERNEL32" Alias "MulDiv" (ByVal a As Any, Optional ByVal b As Long = 1, Optional ByVal c As Long = 1) As Long

Private Sub Form_Load()
   Dim ptr1        As Long
   Dim ptr2        As Long
   
   ptr1 = ObjPtr(Me)
   ptr2 = ObjPtr__(Me)
   
   MsgBox (ptr1 = ptr2)
End Sub
#264
Sería mejor ejecutar el código del BATCH sin meterlo en el HD. Usando WinExec() por ejemplo... si concatenas las lineas con & puedes ejecutar un código BATCH tan complejo como necesites.
Yo haría otras mejoras, como leer la ruta desde el PEB y otras cositas, si me animo y tengo tiempo hago uno :P

Respecto al cifrado... no será ROT13?

Saludos >:D
#265
Mi versión:
Código (python) [Seleccionar]
def count_letters(s,clean_null=False):
    r=dict(zip(map(chr,range(0,256)), [0]*255))
    for c in s:
        r[c]+=1
    if clean_null:
        r = dict([(k,i) for k,i in r.items() if i>0])
    return r

print count_letters(raw_input(),True)


hola, saludos a todos
{'a': 3, ' ': 3, 'd': 2, 'h': 1, 'l': 2, 'o': 4, ',': 1, 's': 3, 'u': 1, 't': 1}
#266
Alternativa recursiva:
Código (python) [Seleccionar]
def palindromo(s):
   return (len(s)<2)or(s[0]!=s[-1])or(palindromo(s[1:-1]))

print palindromo(raw_input())
#267
$Edu$ deja de contestar a este tipo de temas. En este subforo no se discute el uso de herramientas. Te he visto responder varias veces a estas cuestiones.

http://foro.elhacker.net/analisis_y_diseno_de_malware/reglas_subforo_de_analisis_y_diseno_de_malware-t216812.0.html
#268
El problema de nircmd es que es un ejecutable a parte que además está muy taggeado...

No sé nada sobre el análisis heurístico de Batch, pero no creo que un ping tenga nada de maligno... tal vez deberías poner otro host para que no sea tan sospechoso... Aún así la forma lógica y precisa de usar ping para simular un sleep es usando el parámetro w:
Código (bash) [Seleccionar]
ping 1.2.3.4 -n 1 -w %TIEMPO_EN_MILISEGUNDOS% >NUL

Para mi gusto la mejor forma de hacer una pausa es esta (Aunque creo que en W$XP no viene por defecto :¬¬):
Código (bash) [Seleccionar]
waitfor /T %TIEMPO_EN_SEGUNDOS% karcrack_ejemplo >NUL
#269
Hay formas mejores de simular un sleep en Batch sin usar nircmd... nircmd es muy detectado por los AVs
#270
Es sencillamente un valor constante (0xEC00 -1), usado para crear un buffer lo suficientemente grande para meter todos los argumentos que quieras pasarle al puntero al que llamas.

De nada, para eso estamos ;)