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

#521
@F3B14N: Con unos cuantos MOVs para recorrer la estructura y un par de XORs seria suficiente... ademas de un acceso momentaneo al PEB para sacar el BaseAddress :P

@79137913: Nuestro querido IDE de VB6 es mas listo de lo que parece, y hace algunas comprobaciones antes de compilar, para quitar código innecesario, así que no habría comparación sino que directamente saltaria al GoTo, aún así es una idea interesante... pero me gusta más hacerlo así:
Original:
Código (vb) [Seleccionar]
Sub Main()
   Call doSomething
End Sub

Ofuscado:
Código (vb) [Seleccionar]
Sub Main()
   If Rnd() + 1 Then
       Call doSomething
   End If
End Sub


Prefiero agregar la referencia a Rnd() que a GoTo ya que la referencia de GoTo se utiliza en uno de mis métodos para llamar punteros... :)

@BlackZeroX▓▓▒▒░░: No se muy bien a que te refieres, lo que yo he planteado (cifrar las cadenas y descifrarlas en runtime con una shellcode) es stubless, es decir, sin stub...

Un saludo ;)
#522
http://pdos.csail.mit.edu/6.828/2006/readings/i386/INS.htm
No son funciones, sino instrucciones

Aún así... Me da la sensación que lo que se esta viendo esta cifrado, empaquetado o algo similar... no son muy normales los valores que se pushean o las instrucciones que se usan...
#523
Cita de: F3B14N en 26 Enero 2011, 16:07 PM
Despues estaria muy bueno agregale algo que limpie la ***** que agrega VB6, jugar con las estructuras que utilizo BlackZero (sino me equivoco), lo pensé hace tiempo, y creo que seria posible.
Ese tipo de modificaciones serian sobre el fichero compilado y en este proyecto me intereso en el codigo :)

Por cierto, estuve haciendo un poco de research :P y lanzo una buenisima idea para aquel que tenga tiempo :P... Desde el header de un fichero compilado de VB6 se puede acceder a las cadenas de las APIs importadas, se cifran, se modifica tambien el header para que haga al Loader de VB6 ejecutar una pequeña shellcode que descifrará las cadenas de las APIs... para que quede mas claro:

  • Abrimos el fichero compilado
  • Leemos la cabecera del VB6 y recorremos las cadenas de las APIs cifrando cada una
  • Inyectamos una shellcode en uno de los muchos huecos que quedan en el ejecutable
  • Modificamos la cabecera del VB6 para que haga ejecutar al Loader nuestra shellcode primero
  • La shellcode se encargará de descifrar las cadenas y saltar al EntryPoint original que había en el header del VB6

De esta forma las APIs serian descifradas en Runtime y en Scantime nuestras APIs serian irreconocibles :)
#524
Tal vez el parametro -h no funcione, pero seguramente lo hará el /? o alguno similar... podrias subir una captura de la informacion del fichero? (Segundo boton,propiedades)
#525
Es interesante la ofuscación de constantes :) Aunque lo de agregar módulos/funciones basura no me gusta la verdad... para mi es importante que el codigo resultante tenga una lectura tan sencilla como estaba antes... aunque lo que dices de meter APIs a diestro y siniestro puede ser útil :)

Ah! Otra idea que tuve es permitir el cambio de convención a la hora de llamar a las APIs, es decir, en vez de importarlas directamente desde el código (DllFunctionCall) hacerlo desde la IAT (TypeLiBrary)

Ya tengo una buena lista :) Creo que este fin de semana empezaré con los algoritmos :)
#526
Cita de: Ricardo95 en 25 Enero 2011, 18:11 PM
El algoritmo consiste en multiplicar por 2 las cifras que ocupan por una posicion impar, si es mayor que nueve el resultado restarle dicho numero con los nuevos resultados que obtenemos los sumamos con los numeros de la sposiciones pares y si es multiplo de 10 el resultado es correcto.
Código (python) [Seleccionar]
from random import randint

n=[]
for w in range(1,16):
    i=randint(1,9)
    if w%2:
        i*=2
        if i>9:i-=9
    n+=i,

print ''.join(map(str,n))

if sum(n)%10:
    print ":)"
else:
    print ":("

Tu haces cosas extrañas en tu codigo... pero según tu definición del algoritmo mi codigo funciona perfecto :xD

PD: Hubiese sido mas sencillo entender el algoritmo si usases los signos de puntuación... ya sabes: comas, puntos... etc
#527
Prueba a ver si el instalador permite la instalación oculta mediante un comando del tipo /s... para saberlo puedes hacer desde el cmd un "nombre_instalador.exe -h" por ejemplo ;)
#528
Cita de: [D4N93R] en 24 Enero 2011, 18:37 PM
Esto se se claramente que es VB.Net, por que dicen que es VB6?
Ha sido movido :P
#530
Código (python) [Seleccionar]
import random
lines = open("fichero.txt", "r").readlines()
print lines[random.randint(0, len(lines)-1)]

Pablomi haces cosas innecesarias, como el for por ejemplo...