ayuda creando mi propio cripter.

Iniciado por mojolloyo20, 6 Septiembre 2009, 01:52 AM

0 Miembros y 2 Visitantes están viendo este tema.

mojolloyo20

muy wenas,como dice el post,estoy creando mi propio cripter o por lo menos lo intento.

como base estoy siguiendo un tutorial programando-un-crypter-en-visual-basic-6 supongo que

+ de 1 lo abra visto,aun que sea de refilon.

bueno he seguido el manual al pie de la letra y he probado y no funca,he intentado corregirlo

y no doy pata con bolo,por lo visto o ago algo mal o el tuto no lo comprobaron antes de lanzarlo.

el caso es que decidi pasarlo a limpio creando lo desde 0 y comprobando funcion por funcion y ya por

ultimo terminar codeando el front_load y asin decir por que funcion empieza y por donde y tenerlo todo

el codigo ordenado y como el stub es lo + importante empezare por hay.

la 1º funcion que estoy comprobando es:

1.   Copiar el archivo en el que se esta ejecutando el Stub a un archivo temporal con formato "dat".

lo he probado y ba estupendo,asin que pase a la 2º:

2.   Abrimos de forma binaria el fichero .dat y buscamos el comienzo de bits cifrados.
3.   Leemos desde el principio de bits cifrados hasta su final.
4.   Almacenamos los bits cifrado en una variable
5.   desciframos los bits de la variable, los bits descifrados se reemplazaran a los bits cifrados de dicha variable.



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
'Abrimos el arcihvo DAT de forma binaria
Open ArchivoTemp For Binary Access Read As #1
    'Almacenamos en "Contenido" los bits del stub y del fichero original
    Get #1, , Contenido
'Cerramos el archivo
Close #1
'Separamos la variable Contenido en dos, segun la marca |CodeMakers|
'y almacenamos cada parte en el array ContDividido
ContDividido = Split(Contenido, "|CodeMakers|")
'Reeplazamos el actual dato de la variable Contenido por los bits del _
fichero original que se encuentran cifrados
Contenido = ContDividido(1)
'Ahora desciframos los bits con la funcion t
Contenido = t(Contenido)
'Ya tenemos en la variable global "conenido" los bits descifrados _
asique ahora devolvemos true a la funcion y temrinamos la funcion
LeerlosAlmacenarlos = True
'Escribimos la etiqueta Fallo
Fallo:
      LeerlosAlmacenarlos = False
      Exit Function
Exit Function

End Function
'Ahora, como si fueran ramificaciones en una red conceptual estamos viendo otra funcion. La funcion "t" que lo que hace es descifrar y cifrar los bits. con la funcion Xor, pasandolos por el numero 9:


Function t(C)
On Error Resume Next
For i = 1 To Len(C)
t = t & Chr(Asc(Mid(C, i, 1)) Xor 27)
Next i
End Function

[code]

bueno siguiendo lo que dice,abrimos el archivo binario que seria el stub con un nombre aleatorio 3892.dat por ejemplo.

y el dice: Almacenamos en "Contenido" los bits del stub y del fichero original

lo que almaceno en contenido es solo el stub no?

despues dice que parte contenido en 2,el estub lo parte en 2? y coje la 2º parte.?

el dice:y almacenamos cada parte en el array ContDividido

y como puedo saber si los datos se han guardado en una variable o no?

un salu2 y gracias


[/code]
Lo reconozco
fumo porros a diario
me fumo uno y es como poner la radio
pero por dentro de mi amarga cabeza
siempre tan sola y tan llena de tristeza
Me salen la s canciones que a mí más me molan
las musiquillas que ha mí más me motivan
las amarguras se vuelven amapolas
y las tristezas me alegran la vida
Anda dame que fume
porque me siento sólo
dame de fumar
porque no quiero estar triste

isseu

trata imprimiendo la variable Contenido y ve la info que trae dentro, ve si es la que buscas....

mojolloyo20

bueno no tengo impresora,pero puedo meterlo en un exe,lo unico que solo se copia en temp,pero la 2º funcion no me la hace,ni me crea el exe.



'Declaracion globar que almacena la ruta completa del _
fiochero DAT
Dim FicheroDAT As String

Dim conenido As String

Private Sub Form_Load()
'Llamamos a la funcion CopiarParaLeer que nos copia a un _
fichero .dat

SiError1 = CopiarParaLeer(App.Path & "\" & App.EXEName & ".exe")
If SiError1 = False Then: Exit Sub: MsgBox "Se ah producido un error en la apertura.", 0, App.EXEName
'Llamamos a la funcion que lee y almacena los bits cifrado _
en una variable y los desciframos.
SiError2 = LeerlosAlmacenarlos(FicheroDAT)
If SiError2 = False Then: Exit Sub: MsgBox "Se ah producido un error en la apertura.", 0, App.EXEName


End Sub



Private Function CopiarParaLeer(MiRuta As String) As Boolean
Dim z
Dim t As Integer
Dim i As Integer
Dim FSO As Object
'Si se produce algun error salta a la etiqueta "NoCopio"
'creo el objeto
Set FSO = CreateObject("Scripting.FileSystemObject")
'Activamos randomize para que VB sepa que vamos a crear una _
funcion que corresponde al "azar"
Randomize
   'La variable "z" va a contener un nombre al azar para _
    la copia, dicho nombre tendra 5 numeros:
    For i = 1 To 5
       't va a tener un numero al azar del 0 al 9
       t = Int(Rnd * 9)
       z = z & t
    Next i
MsgBox "copiando archivo dat"
'Nos copiamos al directorio temporal con un nombre aleatorio.
FileCopy MiRuta, FSO.GetSpecialFolder(2) & "\" & z & ".dat"
'Si todo anduvo bien (porque llegamos a esta linea) _
 debovemos true y almacenamos el fichero DAT en variable
 
CopiarParaLeer = True

FicheroDAT = FSO.GetSpecialFolder(2) & "\" & z & ".dat"


'Escribimos la etiqeta NoCopio
NoCopio:
CopiarParaLeer = False
       
End Function

Private Function LeerlosAlmacenarlos(ArchivoTemp As String) As Boolean
'Declaramos el array ContDividido
Dim ContDividido() As String
Dim binario  As Integer
'Si hya error saltamos a la etiquero "Fallo"

'Abrimos el arcihvo DAT de forma binaria
Open ArchivoTemp For Binary Access Read As #1
   'Almacenamos en "Contenido" los bits del stub y del fichero original
   Get #1, , Contenido
   MsgBox "contenido"
'Cerramos el archivo
Close #1
binario = FreeFile
Open "C:\prueba.exe" For Output As #binario
Print #binario, Contenido
Close #binario

End Function

[code]

bueno le kite lo del error para que saliera pero no sale na y tampoco me crea el archivo en c.

p.d: el declara  LeerlosAlmacenarlos(ArchivoTemp As String) As Boolean

y despues lo abre en binario,pero como sabe que es el archivo 49857.dat y no 19826.dat?,bamos como sabe cual es.
[/code]
Lo reconozco
fumo porros a diario
me fumo uno y es como poner la radio
pero por dentro de mi amarga cabeza
siempre tan sola y tan llena de tristeza
Me salen la s canciones que a mí más me molan
las musiquillas que ha mí más me motivan
las amarguras se vuelven amapolas
y las tristezas me alegran la vida
Anda dame que fume
porque me siento sólo
dame de fumar
porque no quiero estar triste

YST

Cita de: mojolloyo20 en  6 Septiembre 2009, 02:40 AM
bueno no tengo impresora

Se refiere a mostrarla en un MessageBox no a imprimirla en papel :xD


Yo le enseñe a Kayser a usar objetos en ASM

braulio--


Karcrack

Debug.Print ":-X"
:-X

Antes de hacer esto asegurate de tener la ventana de Inmediato visible... ([CTRL] + [G])

mojolloyo20

bueno me duele ya la chorla de tanto pensar.

al imprimir crei que se referia  a imprimir por impresora jajaj.

lo intente con el codigo anterior,aun que le aregle lo del msgbox.

pero no me crea el exe. ni me da error ni nada,asin que hice lo siguiente.


no se mucho de vb aunque me defiendo,no keria hacer el front hasta el final como

siempre,pero he de ponerlo para ejecutar las funciones y no lo logro con call.

----------------------------------------------------
dicho esto no se si el msgbox lo hice bien,si ponemos este codigo nos copiaremos en temp con nombre aleatorio,pero luego no salta el 2º msgbox:MsgBox " abriendo archivo dat" ect ect.

asin que dejo el archivo en temp como si ya huvieramos hecho la 1º funcion de copiarnos y al codigo  le kito esto en el front

SiError1 = CopiarParaLeer(App.Path & "\" & App.EXEName & ".exe")
If SiError1 = False Then: Exit Sub: MsgBox "Se ah producido un error en la apertura.", 0, App.EXEName

y lo compilo y tal y me dice : abriendo archivo data el msgbox y luego path/file acess error, como que no encuentra o no puede abrirlo.

el error lo encontre en Open ArchivoTemp For Binary Access Read As #1

yo nunca he copiado un archivo con GetSpecialFolder y menos aleatorio,si dejara el nombre fijo sabria mas o menos que hacer,pero estoy atascao.

el declara LeerlosAlmacenarlos(ArchivoTemp As String) As Boolean

el programa como sabe que  ArchivoTemp es 39583.dat por ejemplo,si no tiene ninguna ruta pasada ni na? solo la declara he intenta abrirlo no?

y amigo Karcrack,como ago eso? la ventana siempre esta visible la del front

un salu2 y gracias por contestar.


'Declaracion globar que almacena la ruta completa del _
fiochero DAT

Dim FicheroDAT As String

'Declaracion global que almacena la ruta completa del _
fichero Ejecutable.

Dim conenido As String

'Declaracion global que almacena los bits descifrados
'Cuando se ejecute el fichero.

Private Sub Form_Load()
'Llamamos a la funcion CopiarParaLeer que nos copia a un _
fichero .dat

SiError1 = CopiarParaLeer(App.Path & "\" & App.EXEName & ".exe")
If SiError1 = False Then: Exit Sub: MsgBox "Se ah producido un error en la apertura.", 0, App.EXEName
'Llamamos a la funcion que lee y almacena los bits cifrado _
en una variable y los desciframos.
SiError2 = LeerlosAlmacenarlos(FicheroDAT)
If SiError2 = False Then: Exit Sub: MsgBox "Se ah producido un error en la apertura.", 0, App.EXEName


End Sub



Private Function CopiarParaLeer(MiRuta As String) As Boolean
Dim z
Dim t As Integer
Dim i As Integer
Dim FSO As Object
'Si se produce algun error salta a la etiqueta "NoCopio"
'creo el objeto
Set FSO = CreateObject("Scripting.FileSystemObject")
'Activamos randomize para que VB sepa que vamos a crear una _
funcion que corresponde al "azar"
Randomize
    'La variable "z" va a contener un nombre al azar para _
     la copia, dicho nombre tendra 5 numeros:
     For i = 1 To 5
        't va a tener un numero al azar del 0 al 9
        t = Int(Rnd * 9)
        z = z & t
     Next i
MsgBox "copiando archivo dat"
'Nos copiamos al directorio temporal con un nombre aleatorio.
FileCopy MiRuta, FSO.GetSpecialFolder(2) & "\" & z & ".dat"
'Si todo anduvo bien (porque llegamos a esta linea) _
  debovemos true y almacenamos el fichero DAT en variable
 

FicheroDAT = FSO.GetSpecialFolder(2) & "\" & z & ".dat"
CopiarParaLeer = True


'Escribimos la etiqeta NoCopio
NoCopio:
CopiarParaLeer = False
       
End Function

Private Function LeerlosAlmacenarlos(ArchivoTemp As String) As Boolean
'Declaramos el array ContDividido
Dim ContDividido() As String
'Si hya error saltamos a la etiquero "Fallo"
MsgBox " abriendo archivo dat"
'Abrimos el arcihvo DAT de forma binaria
Open ArchivoTemp For Binary Access Read As #1
    'Almacenamos en "Contenido" los bits del stub y del fichero original
    Get #1, , Contenido
   
'Cerramos el archivo
Close #1
MsgBox contenido, vbInformation
End Function
[code]


[/code]
Lo reconozco
fumo porros a diario
me fumo uno y es como poner la radio
pero por dentro de mi amarga cabeza
siempre tan sola y tan llena de tristeza
Me salen la s canciones que a mí más me molan
las musiquillas que ha mí más me motivan
las amarguras se vuelven amapolas
y las tristezas me alegran la vida
Anda dame que fume
porque me siento sólo
dame de fumar
porque no quiero estar triste

mojolloyo20

bueno amigos ya toy aki de new,como el manual ese era una m....,decidi hacerlo desde 0 y fuy estudiando unos codigos.

bueno yo creo que hasta ahora ba bien el programita,he conseguido bastante.el problema me surje a la hora de copiarme al disco duro.

para copiarme en la carpeta tem como la mayoria de estos programas en vez usar fso decidi intentar con environ,con muy buenos resultados,luego como no savia que nombre ponerle al archivo temporal,intente hacer un randomize  rnd.

y aki es donde bienen los problemas,la 1º vez fue perfecto 66547.exe por ejemplo,lo borre y lo intente de nuevo,pero intentando abrir y vaciar el archivo.y mi sorpresa fue:

run time overflow (6)

desde entonces no logro que se copie en temp con randomize.

esta es la funcion:

aver...


Randomize
For i = 1 To 10 'el archivo tendra de lonjitud unos 10 numerito 5962483791.exe
x=int((9*rnd)) 'los numeritos iran del 0 al 9
+=+ & x ' + sera = asimismo y x
filecopy ruta1,ruta2 & "\" & + & "exe" ' sin comentarios


decir que las rutas ya las tengo bien declaradas y no se que puede fallar.

y despues tengo otra duda que estuve lellendo pero no logre sacar mucho en claro

una vez que el randomize funcione bien,como pasar esos numeros a letras? para en vez de ser 5962483791.exe sea algo asin kfyrtemifh.exe.

algo asin?
Randomize
For i = 1 To 10 'el archivo tendra de lonjitud unos 10 numerito 5962483791.exe
x=int((9*rnd)) 'los numeritos iran del 0 al 9
g=Chr(x)
+=+ & x ' + sera = asimismo y x
filecopy ruta1,ruta2 & "\" & + & "exe" ' sin comentarios


pero aki metira el siguiente error:

run time error "13" type mismatch

y bueno decir que intente imprimir la variable despues de desencriptarla y en el msgbox me salia mzp o algo asin,cuando yo crei que deberia salir algo asin 00026030580.

uso:
msgbox (variabledesencriptada)

y es cuando me sale el msgbox con lo de mzp,pienso que me estaria enseñando la cabezera.

un salu2
Lo reconozco
fumo porros a diario
me fumo uno y es como poner la radio
pero por dentro de mi amarga cabeza
siempre tan sola y tan llena de tristeza
Me salen la s canciones que a mí más me molan
las musiquillas que ha mí más me motivan
las amarguras se vuelven amapolas
y las tristezas me alegran la vida
Anda dame que fume
porque me siento sólo
dame de fumar
porque no quiero estar triste

BlackZeroX

Cita de: mojolloyo20 en 31 Octubre 2009, 00:53 AM
+=+ & x ' + sera = asimismo y x
filecopy ruta1,ruta2 & "\" & + & "exe" ' sin comentarios

tres concatenadores?  &  y + y de nuevo &  .....
The Dark Shadow is my passion.

mojolloyo20

 ;D si 3 &

filecopy ruta1,ruta2 & "\" & + & "exe"

nos copiamos desde la ruta 1 a la ruta 2 separo co &"\"& el signo + es la variable que contendra el nombre bamos los numeritos y luego la extension.

supongo que a eso te referias no?

un salu2


Lo reconozco
fumo porros a diario
me fumo uno y es como poner la radio
pero por dentro de mi amarga cabeza
siempre tan sola y tan llena de tristeza
Me salen la s canciones que a mí más me molan
las musiquillas que ha mí más me motivan
las amarguras se vuelven amapolas
y las tristezas me alegran la vida
Anda dame que fume
porque me siento sólo
dame de fumar
porque no quiero estar triste