Beruflich Dokumente
Kultur Dokumente
Crypter
ANYD00M
maxigile_tl@hotmail.com
Programacin en VB6
Crypter
ANYD00M
maxigile_tl@hotmail.com
ANYD00M
Programacin en VB6
Crypter
maxigile_tl@hotmail.com
Programacin en VB6
Crypter
ANYD00M
maxigile_tl@hotmail.com
'Terminamos el sub
Exit Sub
'Escribimos la etiqeta NoCopio
NoCopio:
CopiarParaLeer = False
Exit Sub
End Function
[/code]
Muy bien, hasta aqu ya hemos copiado el fichero para poder leerlo posteriormente y hemos
contralo los posibles errores..
Ahora sigamos con la funciona que abrira el fichero dat y obtendra los bits que
correspondan al fichero encriptado. Para esto debo explicar que al encriptar el fichero, se
puso una marca para separar el Stub del fichero encriptado. En mi caso la marca ah sido |
CodeMakers| aunque es recomendable usar una marca mas chica ya que cada carcter sera
un byte que le agregaremos al archivo ;)
Entonces esta funcion leera el fichero y buscara la marca (|CodeMakers|) , al encontrarla
tomara todos los bits que halla desde alli hasta el final de la marca que se indica con la
misma marca (|CodeMakers|). Para hacer esta separacion usaremos la funcion Split,
quedando en el segundo indice (1 ya que el primer indice es 0) los bits encriptados.
As que a la funcion se le pasa como parmetros el fichero DAT y su declaracion seria:
[code=vb]
Private Function LeerlosAlmacenarlos(ArchivoTemp As String) As Boolean
End Function
[/code]
Lo que debemos hacer es abrir de forma inaria el fichero DAT, y almacenar todo su
contenido en una variable a la que llamaremos Contenido luego usaremos la funcion Split
para separar a lo leido (que esta en Contenido) en dos partes. Dichas partes seran
almacenadas en una variable que llamaremos ContDividido y sera un array, pero no le
daremos un valor la dejaremos con los parntesis vacios (Dim ContDividido() as String)
Se entiende? Espero que si porque no estamos chateando y no te podre escuchar ;)
Asi al utilizar Split, la variable ContDividido se dividira en 2, una con indice 0 y otra con
indice 1. La que tiene indice 1 es las que nos interesa, y cambiaremos el valor que tiene la
variable Contenido por ContDividido(1). Luego debemos desencriptar la variable
contenido. Esta variable que tiene los bits desencriptados es la que esta declarada
globalmente para que podamos acceder a ella desde otra funcion. Ya que eso es lo que
necesitaremos Comenzemos a codear esta funcion:
[code=vb]
Private Function LeerlosAlmacenarlos(ArchivoTemp As String) As Boolean
'Declaramos el array ContDividido
Dim ContDividido() As String
'Si hya error saltamos a la etiquero "Fallo"
On Error GoTo Fallo
Programacin en VB6
Crypter
ANYD00M
maxigile_tl@hotmail.com
Programacin en VB6
Crypter
ANYD00M
maxigile_tl@hotmail.com
es como para que quede Marcado :P (esto no es necesario hacerlo y es algo estupido, as
que si quieren no lo hagan).. Bien bien, codiemos la funcion:
[code=vb]
Private Function CrearloMarcarlo() As Boolean
'Declaramos variables
Dim FSO As Object
'Si hay error saltamos a la etiqueta "UboError"
On Error GoTo UboError
'Creamos objeto fSO com ya explique para obtener _
el directorio temporal.
Set FSO = CreateObject("Scripting.FileSystemObject")
'Creamos un fichero binario con nuestro mismo nombre _
en el directorio temporal.
Open FSO.GetSpecialObject(2) & "\" & App.EXEName & ".exe" For Binary Access Write
As #1
'Le aplicamos los bits desencriptados
Put #1, , Contenido
'Aplicamos firma
Put #1, , "Code-Makers.es"
'Cerramos
Close #1
'Todo salio bien, asique hacemos lo mismo que con las otras
CrearloMarcarlo = True
Exit Function
'Escribimos la etiqueta UboError
UboError:
CrearloMarcarlo = False
Exit Function
End Function
[/code]
Asi pos ya tenemos mucho jeje, solo nos falta ejecutar el archivo que acabamos de crear en
el directorio temporal, y pos eso es lo ultimo, ya que luego se elimina el fichero DAT y nos
terminamos con End pero eso ya lo hemos puesto en el Form_Load. As que sigamos ocn
la funcion que ejecutara este fichero temporal: EjecutarloAhora. Lo unico que haremos sera
utilizar Shell para ejecutarlo y ps, lo otro es la creacin del objeto FileSystemObject para
obtener el directorio temporal y la creacin de la etiqueta de error Come on!
[code=vb]
Private Function EjecutarloAhora() As Boolean
'Delcracion de variables
Dim FSO As Object
'Si hay error, bla bla bla
On Error GoTo SiHayError
'Creamos el onjeto FSO
ANYD00M
Programacin en VB6
Crypter
maxigile_tl@hotmail.com
Bueno, me eh quedado en el Stub, que ya lo tendriamos que tener terminado, sino no sigas
leyendo y terminalo
Ahora comenzaremos con el crypter, que es la parte grafia y en la que el usuario eligira un
fichero ejecutable qu dece encriptar. Luego debemos abrir ese fichero de forma binaria,
tomar sus bits y encriptarlos. Esos bits encriptados se almacenaran en una variable, luego
de encriptarlos, copiamos el fichero original tal y ocmo es inclusive con la extencion .exe
pero luego le damos una doble extencion y le ponemos .bak (si no te diste cuenta hemos
creado un Buck Up del archivo) asi aseguramos el fichero original. Luego basiamos el
fichero original que el usuario eligio, y abrimos de forma binaria el Stub. Obtenemos los
bits del stub y los aplicamos a una variable. Luego abrimos el fichero que esta vacio (el que
eligio elk usuario) y le aplicamos primero los bits del Stub, luego una marca (en mi caso
sera |CodeMakers|) y luego los bits encriptados y para finalizar otra marca (en mi caso sera
de nuevo |CodeMakers|) aunque esta ultima marca no es necesaria, y yo la pongo solo para
dar un modelo grafico de lo que hacemos
Los controles que utilizaremos seran:
Un TextBox
Un Frame
Un CommandButton
Y debido a que el crypter que aremos es una base para que creen el suyo no agregaremos
mas controles. Estos controles los pueden ubicar de la forma que quieran, claro que no hay
mucha magia en esto, menos con la cantidad de controles que usamos. A mi me ah quedado
asi:
ACA VA LA IMAGEN QUE DEBES SUBIR A IMAGESHACK!!!
Bueno, veran la sencilles de esto, ya que no usaremos un control CommondDialog para
elegir el fichero, esto es porque, como les vuelvo a repetir, lo que quiero es que tengan una
base para que creen su propio crypter ;)
ANYD00M
Programacin en VB6
Crypter
maxigile_tl@hotmail.com
Comenzaremos con el evento Clic del CommndButton, lo que hara aca el crypter es
verificar copiar el fichero elegido a su misma ruta con su mismo nombre y su extencion
pero abregandole al final un .bak. Como veraz no verifico si existe o no el archivo o si se
ah introducido o no algun dato en el textbox, hace falta que te repita porque? ..
Asi ps, ya que hemos creado el Buck, lo que aremos sera obtener sus bits y almacenarlos en
una variable a la que llamaremos BitsOriginal y luego nos dedicaremos a vaciar el
fichero original. Luego abrimos de forma binaria el Stub y obtenemos sus bits, los cuales
almacenaremos en una variable llamada BitsStub (que original no? :P) y luego los bits
del fichero que abiamos guardado en la variable BitsOriginal los encriptamos. Para
finalizar abrimos de forma binaria el fichero que esta actualmente vacio y le aplicamos
primero los bits del stub, luego la marca y por ultimo los bits encriptado y una marca final..
As que dare el codigo del evento clic completo pero cada linea que necesite ser explicada
lo estara en un comentario ubicado sobre dicha linea:
[code=vb]
Private Sub Command1_Click()
Dim BitsOriginal As String
Dim BitsStub As String
'Cremos el Back Up
FileCopy Text1.Text, Text1.Text & ".bak"
'Obtenemos los bits del fichero y los almacenamos _
en la variable.
Open Text1.Text For Binary Access Read As #1
Get #1, , BitsOriginal
'Cerramos
Close #1
'Vaciamos el fichero original:
Open Text1.Text For Output As #2
Print #2, ""
Close #2
'Obtenemos los bits del stub y los almacenamos _
en su variable correspondiente
Open App.Path & "\Stub.exe" For Binary Access Read As #3
Get #3, , BitsStub
'Cerramos
Close #3
'Encriptamos los bits del fichero original
BitsOriginal = t(BitsOriginal)
'Armamos de nuevo el fichero del usuario:
Open Text1.Text For Binary Access Write As #4
'Le aplicamos el stub
Put #4, , BitsStub
'Le aplicamos una marca
Put #4, , "|CodeMakers|"
Programacin en VB6
Crypter
ANYD00M
maxigile_tl@hotmail.com