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ú

Temas - MeCraniDOS

#1
Desarrollo Web / Simular clic javascript
12 Mayo 2015, 12:48 PM
Hola  ;D

Estoy intentando simular un clic con javascript pero no funciona..  :huh:

La página web es esta:


Código (html4strict) [Seleccionar]
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >

<title>No Title</title>
<script>
  function load() {
document.getElementsByClassName("adsbygoogle")[0].click();
  }
</script>
</head>
<body onLoad="load()">
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- XXXXXXXX -->
<ins  class="adsbygoogle"
style="display:inline-block;width:XXXpx;height:XXXpx"
data-ad-client="XX-XXX-XXXXXXXXXXXXXXXXX"
data-ad-slot="XXXXXXXXXXX"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</body>
</html>


Esto se ejecuta en un popup que llamo desde

Código (javascript) [Seleccionar]
var myWindow = window.open('web.html', 'pagina', 'toolbar=no, scrollbars=no, resizable=no');
if (myWindow != null)
{
myWindow.close();
}


Pero el resultado es un poco raro, se crea el popup dos veces y no da clic en ninguno, solo visualizo el anuncio como si no le hubiera dado clic (si comento la linea myWindow.close(); )

Lo que me interesa hacer es abrir una vez el popup, esperar que haya cargado correctamente, simular el clic sobre él y cerrar el popup..  :rolleyes:

A ver si alguien me puede ayudar..

Un saludo

#2
Programación C/C++ / [?] Qt vs wxWidgets
20 Abril 2015, 21:10 PM
Buenas  ;D

A modo de debate, que me recomendais, ¿Qt o wxWidgets para desarrollo de interfaces gráficas?  :silbar:

Que tal os va a cada uno con la que utilicéis?  :laugh:  ;-)

Un saludo
#3
Hola  ;D,

Estoy teniendo problemas al crear un hilo  :-[

Tengo el siguiente código (simplificado a la parte donde me da error)


Atributos de la clase (Padre es una clase virtual)

Código (cpp) [Seleccionar]
std::vector <std::thread> th; //Hilos de ejecucion
std::vector <Padre*> padre; //Puntero a los hijos (Polimorfismo)


En el constructor de la clase hago esto

Código (cpp) [Seleccionar]
padre.push_back(new HijoEjemplo(argumentos del constructor de hijo)); //Los vamos metiendo al final

Para acceder a sus métodos tengo que hacer esto:

Código (cpp) [Seleccionar]
padre.at(0)->moverHijo(parametros del metodo);

Ahora lo que estoy intentando hacer es ejecutar ese metodo en un hilo

Lo he intentado como hacen en este ejemplo pero me salta un error


Ejemplo (funcion, argumentos)
Código (cpp) [Seleccionar]
void bar(int x)
{
 // do stuff...
}

std::thread second (bar,0);


Lo que he intentado, me da error en la primera línea
Código (cpp) [Seleccionar]
th.at(0) = std::thread(padre.at(0)->moverHijo, parametros del metodo);
th.at(0).detach();

        error: invalid use of non-static member function

A ver si me podeis ayudar..  :-\

Un saludo y gracias
#4
Hola a todos  ;D,

Estoy intentando recoger la salida de un comando en una variable pero no se porque me da error...  :huh:


Código (bash) [Seleccionar]
leido=$(awk 'NR==$1' $2)
echo "${leido:-Warning: No existe la linea $1}"
exit 0


Ese es el trozito de código que me falla, el script es mas largo pero solo hago comprobaciones de la entrada y eso

La entrada es "script linea archivo"
                                    $1     $2

He estado buscando en internet pero hacen lo mismo que estoy haciendo yo y no se porque falla...  :huh:

A ver si me pueden ayudar,

Un saludo



El script lee la linea x de un archivo y lo muestra por pantalla, la salida que me da ese script es una linea en blanco, en cambio, si pongo el mismo comando en la consola me devuelve una salida correcta
#5
Java / [?] Código correcto?
17 Enero 2015, 19:38 PM
Hola  ;D,

Solo quiero saber si este código es correcto, aunque hace lo que quiero que haga..  :silbar:

Código (java) [Seleccionar]
   private Object[][] data = {
       {true, "", "", 0, 1, ""},
       {false, "", "", 0, 1, ""},
   };

   public void add(Object[] value) {
       data = appendValue(data, value);
   }

   private Object[][] appendValue(Object[][] obj, Object[] newObj) {
       ArrayList<Object> temp = new ArrayList<>(Arrays.asList(obj));
       temp.add(newObj);
       return temp.toArray(obj);
   }


Lo unico que hace es añadir un elemento al Object[][], la funcion appendValue es la que no se si es correcta  :huh:

Un saludo

#6
Hola  ;D

Estoy haciendo una aplicación que busca una imagen en la pantalla, y te devuelve las coordenadas donde la ha encontrado, el problema es que no se como hacerlo de manera limpia y multiplataforma  :-\

He pensado en capturar la pantalla, y buscar la imagen en la imagen de la captura, pero esa idea no me gusta mucho...

Hay alguna manera de acceder directamente a la memoria de video? El monitor unicamente te muestra pixel a pixel, segun va leyendo de una posicion de memoria, hay alguna manera de acceder a esa zona de memoria? (No se si eso es multiplataforma, supongo que no porque cada sistema almacenara esa informacion en diferentes zonas de memoria), pero veo mas rapido el acceso directo a esa zona de memoria y leer de ahi, que hacer captura de pantalla..  :rolleyes:

A ver si me podeis dar ideas,

Un saludo
#7
ASM / [?] Librito de ASM actual?
8 Enero 2015, 20:16 PM
Hola a todos,

Estoy buscando un libro de asm que sea un poco actual  :silbar:

He estado leyendo este post: http://foro.elhacker.net/asm/libro_de_ensamblador-t255032.0.html, pero teniendo en cuenta que la ultima publicación es de 2011...  :rolleyes:

Alguien se ha comprado recientemente algun libro que me pueda recomendar?  ;-)

(A poder ser en Español, aunque no importa si es en ingles  ;D)

Un saludo
#8
Hola a todos,

Quería saber si hay alguna manera de cambiar el icono que trae por defecto un archivo dll, al igual que en un exe cambiando el icono en recursos, el archivo dll tiene su icono por el sistema, pero de manera individual se le puede cambiar? como si fuera un exe?  :huh:

Un saludo
#9
Análisis y Diseño de Malware / [?] Proactiva?
15 Diciembre 2014, 11:29 AM
Hola,

Tengo una duda, estoy tratando de hacer indetectable un exe (para aprender  :rolleyes:), el antivirus es Trend Micro Internet Security, probando un par de cosas consigo que no me lo detecte, pero al ejecutarlo, a los dos segundos me dice que es sospechoso y me lo borra  :huh:

A eso se le llama proactiva?  :huh:

Como puedo hacer que no lo detecte?

(Con crypters y eso no me lo detecta cuando lo analizo, solo cuando lo ejecuto)

Gracias y saludos
#10
Java / [?] Código HTML de una sesión
9 Noviembre 2014, 12:45 PM
Buenas,

Estoy desarrollando una mini aplicación para leer el código HTML de una web, pero una vez logeado  :rolleyes:

Explico, tengo este código para obtener el HTMl de una web


Código (java) [Seleccionar]
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;

public class URLReader {
   
   public static void main(String[] args) throws Exception
   {
       URL google = new URL("http://www.google.es/");
       try (BufferedReader in = new BufferedReader(
               new InputStreamReader(google.openStream()))) {
           String inputLine;
           while ((inputLine = in.readLine()) != null)
               System.out.println(inputLine);
       }
   }
}


Pero ese código simplemente lee el código y lo va imprimiendo, ahora quiero hacer lo mismo pero a través de una sesión, por ejemplo

Inicias sesión en facebook y te imprime el HTML de tu perfil  :silbar:

La cosa es que no quiero iniciar sesión desde la aplicación enviando usuario y contraseña, haciendo POST y tal, lo que quiero es que inicies sesión desde firefox (por ejemplo), y poniendo el link en el programa detecte que la sesion esta establecida y te saque el HTML, algo asi como el "Inspeccionar elemento"

A ver si alguien me puede dar una idea de como hacerlo  :rolleyes:

(He pensado en la idea de hacer un navegador en java, que facilita mucho la cosa, o un complemento para firefox que se conecte con la aplicación (:laugh:))

Saludos
#11
Hola  ;D

Estoy intentando calcular la media de unos numeros para practicar un poco, pero tengo algunos fallos de concepto, he trabajado antes con ARM, pero las instrucciones en ASM son un poco diferente..

el codigo es este

Código (asm) [Seleccionar]
include 'FASM\INCLUDE\WIN32AX.INC'

.data
vector rd 8 ; Reservamos 8 bytes

.code
start:
mov eax, 0 ;Media
mov ecx, 0 ;Contador

;Inicializamos el vector
mov [vector], 7
mov [vector+1], 8
mov [vector+2], 5
mov [vector+3], 2
mov [vector+4], 9
mov [vector+5], 1
mov [vector+6], 0
mov [vector+7], 3

for:
add eax, [vector] ;Aqui esta el error
inc ecx
cmp ecx, 8
jne for

       ; Aqui divido para obtener la media

invoke ExitProcess, 0

.end start


Se que para los que sepan, es algo muy basico... hay alguna manera de inicializar el vector de una manera mas sencilla? y otra cosa, para ir sumando el valor del vector en un bucle com seria? Intentaba simular esto

Código (cpp) [Seleccionar]
for(int i=0;i<8;i++)
{
   eax += vector[i];
}


No quiero codigos completos, solo una ayudita con las instrucciones  :rolleyes:

Saludos
#12
Hello!   ;D

Estoy intentando entender la estructura PE para poder entender como se hacen los crypters y esas cosas, y me he quedado estancado en una parte, llevo dos dias buscando para no preguntar porque quizás es algo obvio...  :rolleyes:

Si yo quiero añadir una sección a un ejecutable, tengo que incrementar el NumberOfSections y el SizeOfImage, y luego añadir los datos de la nueva sección, lo estaba programando y tengo de momento esto


// ....
    IMAGE_DOS_HEADER DOS_Header;
    IMAGE_NT_HEADERS NT_Header;
    IMAGE_SECTION_HEADER *SECTION_Header;

    FILE *Archivo = fopen("Test.exe", "rb");

    if(Archivo)
    {

        CopyFile("Test.exe", "Backup.exe", TRUE);

        printf("Basic File Information\n\n");
        printf("File Name: Test.exe\n");

        /* Obtenemos el tamaño del fichero */
        fseek(Archivo,0, SEEK_END);
        unsigned long Tamanyo = ftell(Archivo);
        fseek(Archivo,0, SEEK_SET);

        printf("File Size: %lu (%lx)", Tamanyo, Tamanyo);

        /* Obtenemos la estructura DOS_HEADER */
        fread(&DOS_Header, sizeof(IMAGE_DOS_HEADER), 1, Archivo);

        /* Saltamos hasta la posicion donde empieza NT_HEADER, esa posicion se almacena en e_lfanew */
        fseek(Archivo, DOS_Header.e_lfanew, SEEK_SET);
        fread(&NT_Header, sizeof(IMAGE_NT_HEADERS), 1, Archivo);

        NT_Header.FileHeader.NumberOfSections += 1;
        //NT_Header.OptionalHeader.SizeOfImage +=;


        /* Reservamos memoria para las secciones */
        SECTION_Header = (IMAGE_SECTION_HEADER*)malloc(NT_Header.FileHeader.NumberOfSections*sizeof(IMAGE_SECTION_HEADER));

        /* Guardamos las secciones */
        for(unsigned int i=0;i<NT_Header.FileHeader.NumberOfSections-1;i++)
        {
            fread(&SECTION_Header[i], sizeof(IMAGE_SECTION_HEADER), 1, Archivo);
        }

// ....

        free(SECTION_Header);

// ....


Entonces lo que había pensado era hacer esto:

// ....
    IMAGE_DOS_HEADER DOS_Header;
    IMAGE_NT_HEADERS NT_Header;
    IMAGE_SECTION_HEADER *SECTION_Header;

    FILE *Archivo = fopen("Test.exe", "rb+");

    if(Archivo)
    {

        CopyFile("Test.exe", "Backup.exe", TRUE);

        /* Obtenemos el tamaño del fichero */
        fseek(Archivo,0, SEEK_END);
        unsigned long Tamanyo = ftell(Archivo);
        fseek(Archivo,0, SEEK_SET);

        /* Obtenemos la estructura DOS_HEADER */
        fread(&DOS_Header, sizeof(IMAGE_DOS_HEADER), 1, Archivo);

        /* Saltamos hasta la posicion donde empieza NT_HEADER, esa posicion se almacena en e_lfanew */
        fseek(Archivo, DOS_Header.e_lfanew, SEEK_SET);
        fread(&NT_Header, sizeof(IMAGE_NT_HEADERS), 1, Archivo);

        NT_Header.FileHeader.NumberOfSections += 1;

        /* Reservamos memoria para las secciones (+1 para la nueva sección)*/
        SECTION_Header = (IMAGE_SECTION_HEADER*)malloc((NT_Header.FileHeader.NumberOfSections)*sizeof(IMAGE_SECTION_HEADER));

        /* Guardamos las secciones */
        for(int i=0;i<NT_Header.FileHeader.NumberOfSections-1;i++)
        {
            fread(&SECTION_Header[i], sizeof(IMAGE_SECTION_HEADER), 1, Archivo);
        }

        DWORD Tamanyo_RawData = 0x10;
        DWORD VirtualAddressEnd = SECTION_Header[NT_Header.FileHeader.NumberOfSections-2].VirtualAddress;

        /* Escribimos los datos de la nueva sección */

        BYTE NombreSeccion[8] = ".mecra";
        memcpy(SECTION_Header[NT_Header.FileHeader.NumberOfSections-1].Name, NombreSeccion, 8);

        SECTION_Header[NT_Header.FileHeader.NumberOfSections-1].SizeOfRawData = Tamanyo_RawData;
        SECTION_Header[NT_Header.FileHeader.NumberOfSections-1].PointerToRawData = Tamanyo;
        SECTION_Header[NT_Header.FileHeader.NumberOfSections-1].Characteristics = 0xE0000020;
        SECTION_Header[NT_Header.FileHeader.NumberOfSections-1].VirtualAddress = VirtualAddressEnd+NT_Header.OptionalHeader.SectionAlignment;
        SECTION_Header[NT_Header.FileHeader.NumberOfSections-1].Misc.VirtualSize = Tamanyo_RawData;

        /* Incrementamos el SizeOfImage */
        NT_Header.OptionalHeader.SizeOfImage += Tamanyo_RawData;

        /* Escribimos los datos en el archivo */

        //Nos situamos al inicio de la NT Header
        fseek(Archivo, DOS_Header.e_lfanew, SEEK_SET);

        //Escribimos la cabecera
        fwrite(&NT_Header, sizeof(IMAGE_NT_HEADERS), 1, Archivo);

        //Saltamos al Section Header
        fseek(Archivo, DOS_Header.e_lfanew + sizeof(IMAGE_NT_HEADERS), SEEK_SET);

        //Escribimos los datos y la cagamos porque nos cargamos lo que sigue al insertar la sección asi ^^
        for(int i=0;i<NT_Header.FileHeader.NumberOfSections;i++)
        {
            fwrite(&SECTION_Header[i], sizeof(IMAGE_SECTION_HEADER), 1, Archivo);
        }

// ....

        free(SECTION_Header);

// ....


Los que sepan del tema ya sabrán donde estoy fallando, y yo me hago una ligera idea  :huh: :huh:

Según he estado leyendo, tiene que haber espacio para poder insertar la sección, cosa que no compruebo, pero donde está el contenido de cada sección? Justo despues de IMAGE_SECTION_HEADER?

Lo que habia pensado era guardar el contenido que hay justo después de la última sección, insertar la mia, insertar el contenido que he guardado, y modificar de cada sección el PointerToRawData sumando el tamaño de la cabecera de la nueva sección, para apuntar de nuevo donde empieza la sección :rolleyes:

Si no se hace así, a ver si alguien me puede dar una idea de como se hace.. Tengo los conceptos un poco liados  :-\





Dos cositas mas  :silbar:

He estado leyendo el código de [Zero] de como añadir una sección..

http://foro.elhacker.net/analisis_y_diseno_de_malware/srcc_anadir_una_seccion-t261801.0.html

Y veo que utiliza

Citar
PIMAGE_DOS_HEADER;
PIMAGE_NT_HEADERS;
PIMAGE_SECTION_HEADER;

En vez de utilizar esto
Citar
IMAGE_DOS_HEADER;
IMAGE_NT_HEADERS;
IMAGE_SECTION_HEADER;

Hay alguna diferencia? (Ventajas)

PIMAGE_DOS_HEADER sería un puntero a IMAGE_DOS_HEADER?  :huh:

Y ya por último...  :laugh:

He visto en un crypter que he encontrado por internet esta rutina para descifrar una sección


//Rutina encargada de descifrar la sección cifrada
char uncryptroutine[] =       //21 bytes
    "\xB8\x00\x10\x40\x00"  //B8 00104000  MOV EAX, 401000    Section Start  ||Este valor será modificado
    "\x80\x30\xBB"          //8030 BB      XOR BYTE[EAX], BB  Key
    "\x40"                  //40           INC EAX
    "\x3D\x00\x45\x40\x00"  //3D 00454000  CMP EAX, 404500    Section End  ||Este valor será modificado
    "\x75\xF5"              //75 F5        JNZ SHORT -11      (Complemento a dos de 11 = F5)
    "\xB8\x00\x20\x40\x00"  //B8 00204000  MOV EAX, 402000    Pone en EAX el OEP || Este valor será modificado
    "\xFF\xE0";             //FFE0         JMP EAX            Salta al OEP


Se supone que eso son instrucciones en ASM? :huh: :huh:

Saludos

#13
Hola  ;D

Bueno pues como bien dice el título, lo único que quiero saber es como puedo saber en que distribución estoy,  utilizando comandos :huh:

Me explico, cuando tu te vas al "acerca de" del sistema en el que estás, sale algo así,

En el caso de elementary OS):


CitarVersión: 0.2 "Luna" ( 32-bit )
Built on: Ubuntu 12.04 ( "Precise" )

En Ubuntu 14.04:
Citar
Versión: Ubuntu 14.04 LTS


Alguien sabe algún comando para obtener esa información? Solo me interesa saber si estas en CenOS, Debian, Ubuntu, Red Hat, openSUSE, etc..  :huh: :huh:

Saludos  :silbar:

#14
Programación C/C++ / [?] Tor y C/C++
19 Mayo 2014, 20:20 PM
Hola, estoy intentando hacer una mini aplicación usando sockets, pero pasando a través de Tor, es decir, conectando la aplicación a tor, y luego utilizar sockets. :silbar:

El problema es que no encuentro nada de documentación sobre como utilizar tor desde C/C++, lo único que he encontrado es libtor, y al ser de 2012 no está muy actualizado, y me faltan archivos al compilar   :rolleyes:

https://github.com/libtor

Alguien sabe como puedo hacerlo?   (Alguna librería que pueda utilizar)  :huh: :huh:

Saludos
#15
ASM / [?] ARM IDE
12 Abril 2014, 11:08 AM
Hola  ;D

Estoy empezando con ARM y en la uni nos han dicho que podemos usar DevkitARM junto con el Programmers Notepad como IDE, pero es para Windows, y estoy en Linux..   :-\

Alguien sabe que IDE puedo usar en Linux junto con DevkitARM?  :huh:

Saludos
#16
Java / [?] Conexión HTTP Post
1 Marzo 2014, 13:01 PM
Buenas, estoy intentando pasar un codigo VB6 a Java..

El código en VB6 es este

Código (vbnet) [Seleccionar]
Dim objHttp As Object, strURL As String, strText As String

strURL = "Mi web/" & "conectado.php"

Set objHttp = CreateObject("MSXML2.ServerXMLHTTP")

objHttp.Open "POST", strURL, False

objHttp.setRequestHeader "User-Agent", "Mozilla/5.0"

objHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
   
objHttp.Send ("Te he enviado un mensaje")

strText = objHttp.ResponseText


Y lo que tengo hecho en Java hasta el momento es esto

Código (java) [Seleccionar]
public static void sendPost() throws Exception
{
String url = "Mi web/" & "conectado.php";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();

con.setRequestMethod("POST");
con.setRequestProperty("User-Agent", "Mozilla/5.0");
       con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

}



(Tengo mas código de unas pruebas que he hecho pero no me funciona)

El problema es que no se como enviar datos y recibirlos del servidor desde Java..

A ver si me pueden echar una mano  :huh: :huh:

Saludos
#17
Hola a todos,

Estoy intentando saber si eres administrador desde vbs, he publicado este post en Visual Basic, con unos trozos de código, pero quizas con vbs es más fácil, a ver si me pueden dar ideas...  :huh: :huh:

Visual Basic: http://foro.elhacker.net/programacion_visual_basic/saber_si_eres_administrador_vb6-t409096.0.html

Saludos
#18
Buenas!  ;D

He estado buscando como saber si eres administrador o no con vb6, he encontrado estas dos funciones, y en Windows XP, funcionan perfectas, pero en Windows 8 siempre me devuelve false  :-[

(En Windows 7 y Windows Vista no lo he probado)


Código (vbnet) [Seleccionar]
Option Explicit 
 
' constantes 
'''''''''''''''''''''''''''''' 
 
'Constantes para usar con OpenSCManager 
Private Const GENERIC_READ = &H80000000 
Private Const GENERIC_WRITE = &H40000000 
Private Const GENERIC_EXECUTE = &H20000000 
 
' declaraciones Api 
'''''''''''''''''''''''''''''' 
 
'Función Api OpenSCManager 
Private Declare Function OpenSCManager Lib "advapi32.dll" Alias "OpenSCManagerA" ( _ 
    ByVal lpMachineName As String, _ 
    ByVal lpDatabaseName As String, _ 
    ByVal dwDesiredAccess As Long) As Long 
 
'Función Api CloseServiceHandle 
Private Declare Function CloseServiceHandle Lib "advapi32.dll" ( _ 
    ByVal hSCObject As Long) As Long 
 
Private Sub Form_Load() 
Dim Admin As Long 
 
    Admin = OpenSCManager(vbNullString, _ 
                               vbNullString, _ 
                               GENERIC_READ Or GENERIC_WRITE Or GENERIC_EXECUTE) 
 
    'Si la función retorna 0 no es Administrador 
    If Admin = 0 Then 
        MsgBox "No es un Administrador", vbInformation 
    Else 
        CloseServiceHandle Admin 
        MsgBox "Es un administrador", vbInformation 
    End If 
 
End Sub


Código (vbnet) [Seleccionar]
Option Explicit 
 
 
'Función Api IsNTAdmin 
Private Declare Function IsNTAdmin Lib "advpack.dll" ( _ 
    ByVal dwReserved As Long, _ 
    ByRef lpdwReserved As Long) As Long 
 
Private Sub Form_Load() 
    MsgBox "Administrador de este equipo: ? " & _ 
            CBool(IsNTAdmin(ByVal 0&, ByVal 0&)), vbInformation 
End Sub


Se puede mirar de otra manera? Es decir, alguna clave en el registro o con alguna otra funcion?  :-\ :-\

Espero que puedan ayudarme  :(

Saludos
#19
Hola, tengo un problema con fgets, estoy intentando separar un numero de 4 digitos, e introducir cada uno de ellos en una posicion del array  :silbar:

Para eso lo guardo en un array de caracteres y asi ya me guarda en cada posicion un numero, pero tal y como esta el codigo ahora solo guarda tres (lo he mirado con el debugger), cuando en teoria deberia guardar 4 (MAX)

Debería hacer esto:

Numero: 4578

Pos_1      Pos_2      Pos_3      Pos_4
  4             5             7            8

Pero hace esto:

Numero: 4578

Pos_1      Pos_2      Pos_3      Pos_4
 4             5             7            -48

Es decir, la ultima posicion del array la toma como 0, y al restar 48 (es lo mismo usar la funcion atoi), se queda en -48  :o

Código (cpp) [Seleccionar]
#include <stdio.h>

#define MAX 4
#define TONUM 48

int main()
{
char Cadena[MAX];
int Numero[MAX];

       printf("Introduce un numero de 4 digitos: ");
       fgets(Cadena, MAX, stdin);
       getchar();

       // Ahora convertimos la cadena a numerico

       for(int i=0;i<MAX;i++)
       {
           Numero[i] = Cadena[i] - TONUM;
           printf("%d", Numero[i]);
       }

       return 0;
}


No se donde puedes estar el error, porque seguro que es muy tonto  :rolleyes:  :rolleyes:

Saludos

(El código es un recorte del grande, pero esa es la parte que falla, asi que quizas no va bien porque me he dejado algo  ;D )
#20
Scripting / [?] Bash Script SSH
14 Diciembre 2013, 12:00 PM
Buenas, pues tengo un pequeño problemilla, estoy intentando ejecutar un comando en otro pc sin ser root vía SSH, con "sudo $Comando", pero no se como modificar el script  :rolleyes:

Código (bash) [Seleccionar]
#!/bin/bash
HOST="Aqui la IP"
USER="Aqui el Usuario"
PASS="Aqui la Contraseña del Usuario"
CMD=$@
VAR=$(expect -c "
spawn ssh -o StrictHostKeyChecking=no $USER@$HOST sudo $CMD
match_max 100000
expect \"*?assword:*\"
send -- \"$PASS\r\"
send -- \"\r\"
send -- \"$PASS\r\"
send -- \"\r\"
expect eof
")
echo "==============="
echo "$VAR"


La salida que da es:

Citar?@Ubuntu:/home/?/Desktop$ ./System.sh "reboot"
===============
spawn ssh -o StrictHostKeyChecking=no Usuario@IP sudo reboot
Usuario@IP password:
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: 3 incorrect password attempts

A ver si me pueden ayudar...  :huh: :huh:

PD: Para que funcione tenemos que tener expect instalado  :silbar:


Citarapt-get install expect

Saludos
#21
GNU/Linux / [?] Ejecución de Procesos
6 Diciembre 2013, 15:17 PM
Buenas, quería preguntar un par de cosillas sobre los procesos  :silbar:

Cuando tu ejecutas un proceso desde la consola, esta se queda ocupada, apretando Ctrl^Z, detienes el proceso, y despues lo puedes ejecutar en segundo plano con el comando "bg", o directamente lo puedes ejecutar en segundo plano con el comando "proceso &", y luego lo puedes volver a primer plano con "fg"...

Hasta ahí bien  ::), y las preguntas son:

Que diferencia hay entre "proceso &" y "nohup proceso &"?

Y como se ejecuta un proceso? Es decir, que pasos sigue un proceso desde que se inicia hasta que finaliza?

Saludos  :rolleyes:
#22
Buenas, pues como el título dice, solo quiero saber como iniciar un programa con el sistema   :huh:

He estado buscando y he leído algo sobre:


Citar/etc/init.d/

Pero no se como hacerlo exactamente, a ver si me podeis ayudar.. :rolleyes: :rolleyes:

Saludos

Edito


He leido esto pero no explica nada  :-\

http://foro.elhacker.net/gnulinux/ejecutar_programa_al_inicio-t403050.0.html
#23
Buenas, estoy intentando configurar un KeyLogger en Linux, el KeyLogs

Lo primero que hago es instalarlo de esta manera:





Ahora tengo que especificar el mapa del teclado que quiero.

Comando: "sudo logkeys -s -m /etc/es_ES.map -o /var/log/logkeys.log"

http://wiki.logkeys.googlecode.com/git/keymaps/es_ES.map

Pero, una vez lo tengo todo configurado, me sale un error al iniciarlo...
  :huh: :huh:

Citar/etc/es_ES.map: 2: /etc/es_ES.map: Syntax error: newline unexpected

¿Como puedo solucionar ese error?  :-(

Saludos

#24
Programación C/C++ / [?] Archivos Binarios
20 Octubre 2013, 11:38 AM
Buenas, tengo un problema con estos dos códigos  :rolleyes:

Son unas prácticas de la universidad, los enunciados son estos

2.3.- Escriu un programa que llegeixi els valors del radi de diferents esferes que hi ha en el  fitxer binari "10radi_esfera.dat" (les dades són enteres) i calculi el volum de les esferes corresponents. Els resultats s'han de guardar en un fitxer binari anomenat "10vol_esfera.dat" amb una precisió  de  tres  decimals.  A priori  desconeixem el  nombre  de  valors  que  hi  ha emmagatzemats al fitxer d'entrada.

2.4.-  Escriu un programa que llegeixi  el  volum de les esferes que hi  ha en el  fitxer binari "10vol_esfera.dat" i mostri el seu contingut per pantalla.



2.3

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <math.h>

#define PI 3.141592654

int main()
{

FILE *EsfRad, *EsfVol;
int Radio;
float Volumen;

EsfRad = fopen("10radi_esfera.dat","rb");

if(!EsfRad)
{
printf("Error: No se puede abrir el archivo");
}
else
{
EsfVol = fopen("10vol_esfera.dat","wb");

if(!EsfVol)
{
printf("Error: No se puede abrir el archivo");
}
else
{
while(!feof(EsfRad))
{
fread(&Radio, sizeof(Radio), 1, EsfRad);
Volumen = (float)((4*PI*(pow(Radio,3)))/3);
fwrite(&Volumen, sizeof(Volumen), 1, EsfVol);
}
}

fclose(EsfRad);
fclose(EsfVol);
}

return 0;

}


2.4

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <math.h>

#define PI 3.141592654

int main()
{

FILE *EsfRad;
float Volumen;

EsfRad = fopen("10vol_esfera.dat","rb");

if(!EsfRad)
{
printf("Error: No se puede abrir el archivo");
}
else
{
while(!feof(EsfRad))
{
                        fread(&Volumen, sizeof(Volumen), 1, EsfRad);
printf("Volumen = %.3f\n",Volumen);
}

fclose(EsfRad);
}

return 0;

}


El problema que le veo no es de código (eso creo), sino que con los archivos que nos dan para hacer las pruebas, dos o tres volúmenes salen iguales..  :¬¬

No se si se puede, pero adjunto los archivos *.dat por si alguien lo puede/quiere revisar :rolleyes:

Saludos

Link (10radi_esfera.dat): http://www.mediafire.com/?jdangsbyw9ric1u
#25
Seguridad / [?] BugTraq Debian USB Error
11 Octubre 2013, 00:02 AM
Hola, he estado probando bugtraq ubuntu, y funciona perfecto al instalarlo en un usb, pero al instalar la versión Debian x86 me da error, al reiniciar y arrancar con el usb me sale un error de boot y ahi se queda  :-\

Espero que puedan ayudarme

Saludos
#26
Desarrollo Web / [?] ¿El mejor proveedor de Dominios?
15 Septiembre 2013, 11:29 AM
Hola,

Quiero comprar un dominio pero no se donde, me podrían recomendar algún proveedor de dominios que sea fiable?

He estado leyendo y algunos proveedores te quitan el dominio si tienes muchas visitas... ¿Eso es cierto?

¿DonDomino es fiable?

A ver si pueden ayudarme  ;-)

Gracias y Saludos
#27
Buenas, queria saber como puedo saber con que esta empaquetado  :-\

Le he pasado el RDG Packer Detector y me sale esto:




Se 100% seguro que esta empaquetado, saben de algún programa para analizarlo?

He probado también PEiD y me sale "Nothing Found"  :-\
Otra cosa, si sale que no esta empaquetado, el "IsDebuggerPresent" con que lo han puesto?  :huh:

Saludos.
#28
Scripting / [?] ¿Multithread?
23 Agosto 2013, 13:10 PM
Buenas, pues es una pregunta un poco concreta, hay alguno de estos lenguaje que sea multithread?

  • Perl
  • Python
  • Ruby

    Tengo un proyecto casi acabado en AutoIt3 y no es multithread, por lo que no funciona como quiero que funcione, y no puedo continuar, quería saber si alguno de esos 3 lenguajes es multithread y sea compatible con AutoIt, tengo casi 2.000 lineas en autoit y traducirlo a otro lenguaje...  :-\

    Mi idea era poder hacer lo siguiente, incluir los archivos *.au3, e ir llamando a las funciones creando threads desde otro lenguaje que soporte au3  :-\ :-\

    Se que con C/C++ lo de los threads es sencillo, pero la interfaz gráfica la tengo hecha con AutoIt y no se si se puede utilizar , y crear mas de un exe e ir llamándolos es un coñazo  :¬¬ :¬¬
    [/size]
#29
Scripting / [AutoIt] Solución a un bucle?
20 Agosto 2013, 21:12 PM
Hola, bueno pues tengo un problema, tengo este código:

Código (vbnet) [Seleccionar]

Func MoverIcono()

   While $VarBucle = True

$X_Escritorio = 0
$Y_Escritorio = 0


       $Area_Escr = _ImageSearch('Area.bmp', 0, $X_Escritorio, $Y_Escritorio, 0)

       if $Area_Escr = 1 Then
MouseMove($X_Escritorio, $Y_Escritorio, 5)
MouseClick("left")

       if $BuscarIcono1 = True or $BuscarIcono2 = True
         
            Do

$X = 0
$Y = 0
               
               if $BuscarIcono1 = True Then

            $Icono1 = _ImageSearch('img/Icono1.bmp', 0, $X, $Y, 0)

            While $Icono1 = 1
      MouseMove($X, $Y, 5)
      MouseClick("left")
      Sleep(2000)
            WEnd
      EndIf

               if $BuscarIcono2 = True Then

            $Icono2 = _ImageSearch('img/Icono2.bmp', 0, $X, $Y, 0)

            While $Icono2 = 1
      MouseMove($X, $Y, 5)
      MouseClick("left")
      Sleep(2000)
            WEnd
      EndIf

             Until $Icono1 = 0 or $Icono2 = 0

       Else

Sleep(10000)

       Endif

       Else

       ; (Comentario) "Error": No se ha encontrado el area del mapa  

       Endif

   WEnd

EndFunc



El código en si funciona bien, el error que da para mi es que no hace exactamente lo que yo quiero, y no se como arreglarlo...

La función lo que hace es buscar el área que yo le indico, (las coordenadas del área del escritorio están cambiadas), y va clickando en esa zona cada 10 segundos, y justo cuando da el click busca los iconos, pero en esos 10 segundos del Sleep(10000) no hace nada :-\

Lo que quiero es que haga click en el área que le indico, y en esos 10 segundos, antes del siguiente click este buscando los iconos, es decir, que si activo la opción del icono1, este indefinidamente buscando ese icono y moviendo y clickando, y a los 10 segundos, haga click en otras coordenadas del escritorio y siga buscando hasta pasados los próximos 10 segundos, etc

Espero que puedan ayudarme, creo que no hace falta saber de este lenguaje para contestar, cualquier bucle es igual sea en el lenguaje que sea  :¬¬

Saludos
#30
Hola, quiero saber como instalar las librerias Qt para usarlas con Code::Blocks y MinGW, he estado investigando y he visto que se puede, pero no encuentro nada decente...

Cuando consiga instalarlas en Code::Blocks haré un tutorial como el anterior  :silbar:

Librería SFML: http://foro.elhacker.net/programacion_cc/aporte_compilar_sfml_estaticamente-t396527.0.html

Espero que puedan ayudarme  :-\

Saludos
#31
Hola, quería saber si hay algún Un_Joiner que te separe los .exe juntados con un Joiner o un Binder  :¬¬ :¬¬

Tengo un ejecutable, y si lo abro con un editor Hex me sale mas de una cabecera MZ, para separarlos he cogido y he cortado desde el primer MZ, hasta el inicio de la siguiente, y estaban empaquetados con el UPX, que también he conseguido desempaquetar (solo algunos), pero solo me interesa uno en concreto, y no se cual es... si me pueden decir algún programa para hacerlo de manera mas fácil...  :silbar: :silbar:

Gracias y Saludos
#32
Hola a todos, he hecho este tutorial con la intención de ayudar a los que no saben como instalar SFML, debido a que a mi me dio muchos errores la instalación.

Este tutorial consta de 50 imagenes perfectamente explicadas, para facilitar la instalación.

Bien, comencemos:

Lo primero será descargar el código fuente de SFML y CMake para compilar las Librerías

Codigo Fuente: http://www.sfml-dev.org/download/sfml/2.1/SFML-2.1-sources.zip

CMake: http://www.cmake.org/files/v2.8/cmake-2.8.11.2-win32-x86.exe







Una vez descargado, procedemos a la instalación de CMake como se muestra en las siguientes imágenes.









Una vez instalado, extraemos el contenido del zip "SFML-2.1-sources.zip", en C:// de la siguiente manera:





Se creará una carpeta llamada SFML-2.1, entramos en ella y creamos otra carpeta llamada "Build".



Abrimos CMake, ponemos las rutas de los códigos y del Build y le damos a "Configure".



Elegimos el compilador que usamos.



Seleccionamos la opción que he marcado y hacemos click en Next.



Copiamos la carpeta del compilador (MinGW) a C://.





Seleccionamos la ruta de gcc y g++, hacemos click en Finish, y después de esto, se pondrá a configurar, esperamos a que acabe.





Una vez configurado, desmarcamos todo y marcamos la ultima opción como en la imagen, y le volvemos a dar a Configure.



Hacemos click en generate y...



Listo, ya podemos cerrar CMake.



Apretamos Tecla Windows + R, para abrir Ejecutar, o Inicio -> Ejecutar, y escribimos cmd.



Navegamos por los directorios para llegar a la carpeta donde estaba la carpeta Build.



Una vez ahí, vamos a la carpeta de MinGW\bin, y copiamos todo el contenido en WINDOWS\System32, y no hacemos click en esa carpeta para luego poder borrar los archivos que me hemos copiado sin cambiar nada.





Finalmente, escribimos "mingw32-make" y se pondrá generar los archivos que van en la carpeta "lib".









Una vez generados, escribimos exit en la consola y ya podemos borrar el contenido de System32 que acabábamos de copiar.





Dentro de la carpeta Build, la unica que nos interesa es la carpeta lib.



La copiamos al escritorio junto con la carpeta include que esta en la carpeta SMFL-2.1 (saliendo de Build).



Renombramos la carpeta lib por SFML y la copiamos en la carpeta lib, de MinGW, en la ruta de instalación de Code::Blocks, y copiamos el contenido de la carpeta include (la del escritorio), a la carpeta de include de MinGW, en la ruta de instalación de Code::Blocks





Ya podemos cerrarlo todo y abrir Code::Blocks

Creamos un nuevo proyecto de Consola y seguimos los siguientes pasos.




Desmarcamos Debug y Finish.



Nos vamos a Build Options y hacemos exactamente lo siguiente.



Añadir SFML_STATIC, en Compiler Settings -> #defines



Vamos a Linker Settings y añadimos el contenido de la carpeta "lib" que hemos renombrado por "SFML", y que hemos puesto en la ruta de Code::Blocks



Lo añadimos todo.



Y quedará así.



Ahora lo renombramos hasta que quede ordenador así, tenemos que borrar de ahí el archivo "libsfml-main.a"



Una vez hecho, nos vamos a Search Directories, en Compiler añadimos la ruta de los include, que hemos copiado en la ruta de Code::Blocks



En Linker, copiamos la ruta de los lib, que hemos copiado en la ruta de Code::Blocks, y le damos OK.



Nos vamos a las propiedades del proyecto y seleccionamos GUI Application para que desaparezca la consola.



Una vez hecho eso, copiamos el siguiente código, y lo pegamos en nuestro main.cpp.

Código (cpp) [Seleccionar]
#include <SFML/Graphics.hpp>

int main()
{
   sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
   sf::CircleShape shape(100.f);
   shape.setFillColor(sf::Color::Green);

   while (window.isOpen())
   {
       sf::Event event;
       while (window.pollEvent(event))
       {
           if (event.type == sf::Event::Closed)
               window.close();
       }

       window.clear();
       window.draw(shape);
       window.display();
   }

   return 0;
}





Si todo es correcto, al apretar F9, saldrá una ventana así.



Cerramos la ventana y nos vamos a File->Save projecta as template.



Le ponemos el titulo que queramos, y le damos OK.



La plantilla se ha guardado con éxito.



Listo, ya tenemos SFML instalado en Code::Blocks, ahora cada vez que queramos usarlo, solo seleccionen la plantilla que hemos creado y a programar.

Espero que se entienda  :silbar: :silbar:

Saludos

Agradecimiento a amchacon, que fue él quien me lo explicó a mi.  ;-)
#33
Hola, a ver, tengo esta super chapuza de código pero no se por donde meterle mano para arreglarlo y que haga lo que yo quiero, y aunque parezca mentira, el código compila sin errores  :¬¬ :¬¬

Archivo main.cpp

Código (cpp) [Seleccionar]
#define _WIN32_WINNT 0x0500 //INPUT
#define _WIN32_IE 0x0600

#define ICON_ID 100
#define SYSTRAY_MSG 101


#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <iostream>


#include "SysTray.h"
#include "SysTray_cpp.h"
#include "Definiciones.h"

using namespace std;


int main()
{
    HWND hWnd;

    SysTray SysT(ICON_ID, hWnd, SYSTRAY_MSG);

    SysT.SetInSysTray ( "I'm in the SysTray!", LoadIcon ( GetModuleHandle ( NULL ), MAKEINTRESOURCE ( ID_ICON ) ) );

    SysT.ShowBalloon("Hola","Pruebaaaa", 3);

    Activar_Icono(0,0,0,0);


    /**

    0 = Sin Icono
    1 = Informacion
    2 = Alerta
    3 = Error

    **/
   
    return 0;


}


Archivo SysTray.cpp

Código (cpp) [Seleccionar]
#define _WIN32_IE 0x0500

#include <windows.h>

#include "SysTray.h"

// Constructer, sets values passed by the parameters
SysTray::SysTray ( int ID, HWND hWnd, int Message )
{
_id = ID; // Set the id for the icon
_hWnd = hWnd; // The handle to the window
_message = Message; // The message sent to the window procedure when something happends
}

// Function to set the application in the SysTray
BOOL SysTray::SetInSysTray ( char* ToolTip, HICON hIcon )
{
NOTIFYICONDATA nid;

nid.uID = _id; // Id for the icon
nid.cbSize = sizeof ( NOTIFYICONDATA ); // Size of structure
nid.hWnd = _hWnd; // Handle to the window
nid.uFlags = NIF_MESSAGE|NIF_TIP|NIF_ICON; // Options
nid.hIcon = hIcon; // The icon
nid.uCallbackMessage = _message; // The message

lstrcpyn ( nid.szTip, ToolTip, sizeof ( nid.szTip ) ); // The tooltip

return Shell_NotifyIcon ( NIM_ADD, &nid ); // Add in the SysTray
}

// Function to remove the application in the SysTray
BOOL SysTray::RemoveFromSysTray ()
{
NOTIFYICONDATA nid;

nid.uID = _id; // Id for the icon
nid.cbSize = sizeof ( NOTIFYICONDATA ); // Size of structure
nid.hWnd = _hWnd; // Handle to the window

return Shell_NotifyIcon ( NIM_DELETE, &nid ); // Delete the icon
}

// Show a tooltip balloon
BOOL SysTray::ShowBalloon ( char* Title, char* Message, int Icon )
{
NOTIFYICONDATA nid;

nid.cbSize = sizeof ( NOTIFYICONDATA ); // Size of structure
nid.hWnd = _hWnd; // Handle to parent window
nid.uID = _id; // Id of the icon
nid.uFlags = NIF_INFO; // Options: show balloon
nid.dwInfoFlags = Icon;                                             // Icon for the balloon
nid.uTimeout = 1000;     // Timeout when the balloon dissapear

lstrcpyn ( nid.szInfo, Message, sizeof ( nid.szInfo ) ); // Message
lstrcpyn ( nid.szInfoTitle, Title, sizeof ( nid.szInfoTitle ) ); // Title

return Shell_NotifyIcon ( NIM_MODIFY, &nid ); // Show balloon
}


Archivo SysTray.h

Código (cpp) [Seleccionar]
#ifndef _SYSTRAY_H_
#define _SYSTRAY_H_

#include <windows.h>

// Extra messages for the balloon

#ifndef NIN_BALLOONSHOW // Send when the balloon is shown
#define NIN_BALLOONSHOW WM_USER + 2
#endif

#ifndef NIN_BALLOONHIDE // When the balloon is hide ( when you press the X button )
#define NIN_BALLOONHIDE WM_USER + 3
#endif

#ifndef NIN_BALLOONTIMEOUT // Whe the balloon dissapear
#define NIN_BALLOONTIMEOUT WM_USER + 4
#endif

#ifndef NIN_BALLOONUSERCLICK // When the user clicks on the balloon
#define NIN_BALLOONUSERCLICK WM_USER + 5
#endif

class SysTray
{
public:
SysTray ( int ID, HWND hWnd, int Message );
BOOL SetInSysTray ( char* ToolTip, HICON hIcon );
BOOL RemoveFromSysTray ();
BOOL ShowBalloon ( char* Title, char* Message, int Icon );
private:
int _message;
int _id;
HWND _hWnd;
};

#endif


Archivo SysTray_cpp.h

Código (cpp) [Seleccionar]
// SysTrayDemo.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include "Definiciones.h"

#define MAX_LOADSTRING 100
#define WM_USER_SHELLICON WM_USER + 1

// Global Variables:
HINSTANCE hInst; // current instance
NOTIFYICONDATA nidApp;
HMENU hPopMenu;
TCHAR szTitle[MAX_LOADSTRING]; // The title bar text
TCHAR szWindowClass[MAX_LOADSTRING]; // the main window class name
TCHAR szApplicationToolTip[MAX_LOADSTRING];    // the main window class name
BOOL bDisable = FALSE; // keep application state

// Forward declarations of functions included in this code module:
ATOM MyRegisterClass(HINSTANCE hInstance);
BOOL InitInstance(HINSTANCE, int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int APIENTRY Activar_Icono(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);

// TODO: Place code here.
MSG msg;
HACCEL hAccelTable;

// Initialize global strings
//LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
LoadString(hInstance, IDC_SYSTRAYDEMO, szWindowClass, MAX_LOADSTRING);

MyRegisterClass(hInstance);

// Perform application initialization:
if (!InitInstance (hInstance, nCmdShow))
{
return FALSE;
}

hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_SYSTRAYDEMO));

// Main message loop:
while (GetMessage(&msg, NULL, 0, 0))
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}

return (int) msg.wParam;
}



//
//  FUNCTION: MyRegisterClass()
//
//  PURPOSE: Registers the window class.
//
//  COMMENTS:
//
//    This function and its usage are only necessary if you want this code
//    to be compatible with Win32 systems prior to the 'RegisterClassEx'
//    function that was added to Windows 95. It is important to call this function
//    so that the application will get 'well formed' small icons associated
//    with it.
//
ATOM MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEX wcex;

wcex.cbSize = sizeof(WNDCLASSEX);

wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_SYSTRAYDEMO));
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = MAKEINTRESOURCE(IDC_SYSTRAYDEMO);
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));

return RegisterClassEx(&wcex);
}

//
//   FUNCTION: InitInstance(HINSTANCE, int)
//
//   PURPOSE: Saves instance handle and creates main window
//
//   COMMENTS:
//
//        In this function, we save the instance handle in a global variable and
//        create and display the main program window.
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
  HWND hWnd;
  HICON hMainIcon;

  hInst = hInstance; // Store instance handle in our global variable

  hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
     CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

  if (!hWnd)
  {
     return FALSE;
  }

  hMainIcon = LoadIcon(hInstance,(LPCTSTR)MAKEINTRESOURCE(IDI_SYSTRAYDEMO));

  nidApp.cbSize = sizeof(NOTIFYICONDATA); // sizeof the struct in bytes
  nidApp.hWnd = (HWND) hWnd;              //handle of the window which will process this app. messages
  nidApp.uID = IDI_SYSTRAYDEMO;           //ID of the icon that willl appear in the system tray
  nidApp.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP; //ORing of all the flags
  nidApp.hIcon = hMainIcon; // handle of the Icon to be displayed, obtained from LoadIcon
  nidApp.uCallbackMessage = WM_USER_SHELLICON;
  LoadString(hInstance, IDS_APPTOOLTIP,nidApp.szTip,MAX_LOADSTRING);
  Shell_NotifyIcon(NIM_ADD, &nidApp);

  return TRUE;
}

void Init()
{
// user defined message that will be sent as the notification message to the Window Procedure
}
//
//  FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  PURPOSE:  Processes messages for the main window.
//
//  WM_COMMAND - process the application menu
//  WM_PAINT - Paint the main window
//  WM_DESTROY - post a quit message and return
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
   POINT lpClickPoint;

switch (message)
{

case WM_USER_SHELLICON:
// systray msg callback
switch(LOWORD(lParam))
{
case WM_RBUTTONDOWN:
UINT uFlag = MF_BYPOSITION|MF_STRING;
GetCursorPos(&lpClickPoint);
hPopMenu = CreatePopupMenu();
InsertMenu(hPopMenu,0xFFFFFFFF,MF_BYPOSITION|MF_STRING,IDM_ABOUT,_T("About"));
if ( bDisable == TRUE )
{
uFlag |= MF_GRAYED;
}
InsertMenu(hPopMenu,0xFFFFFFFF,uFlag,IDM_TEST2,_T("Test 2")); // Test 2
InsertMenu(hPopMenu,0xFFFFFFFF,uFlag,IDM_TEST1,_T("Test 1")); // Test 1
InsertMenu(hPopMenu,0xFFFFFFFF,MF_SEPARATOR,IDM_SEP,_T("SEP"));
if ( bDisable == TRUE )
{
InsertMenu(hPopMenu,0xFFFFFFFF,MF_BYPOSITION|MF_STRING,IDM_ENABLE,_T("Enable"));
}
else
{
InsertMenu(hPopMenu,0xFFFFFFFF,MF_BYPOSITION|MF_STRING,IDM_DISABLE,_T("Disable"));
}
InsertMenu(hPopMenu,0xFFFFFFFF,MF_SEPARATOR,IDM_SEP,_T("SEP"));
InsertMenu(hPopMenu,0xFFFFFFFF,MF_BYPOSITION|MF_STRING,IDM_EXIT,_T("Exit"));

SetForegroundWindow(hWnd);
TrackPopupMenu(hPopMenu,TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_BOTTOMALIGN,lpClickPoint.x, lpClickPoint.y,0,hWnd,NULL);
return TRUE;

}
break;
case WM_COMMAND:
wmId    = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// Parse the menu selections:
switch (wmId)
{
case IDM_ABOUT:
//DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
break;
case IDM_TEST1:
// MessageBox(NULL,_T("This is a test for menu Test 1"),_T("Test 1"),MB_OK);
break;
case IDM_TEST2:
// MessageBox(NULL,_T("This is a test for menu Test 2"),_T("Test 2"),MB_OK);
break;
case IDM_DISABLE:
bDisable = TRUE;
break;
case IDM_ENABLE:
bDisable = FALSE;
break;
case IDM_EXIT:
Shell_NotifyIcon(NIM_DELETE,&nidApp);
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
/*
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: Add any drawing code here...
EndPaint(hWnd, &ps);
break;*/
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}



Archivo Definiciones.h

Código (cpp) [Seleccionar]
/** Esta cabecera es para definiciones **/


#define ID_MENU 3001
#define ID_SYSTRAY_INFO 3002
#define ID_SYSTRAY_DELETE 3003
#define ID_SYSTRAY_EXIT 3004

#define ID_ICON 4001

#define ID_BMP_CLOSE 5001
#define ID_BMP_ABOUT 5002

/** ---------------------------- **/

#define IDC_MYICON                      2
#define IDD_SYSTRAYDEMO_DIALOG          102
#define IDS_APP_TITLE                   103
#define IDM_ABOUT                       104
#define IDS_APPTOOLTIP                  104
#define IDM_EXIT                        105
#define IDI_SYSTRAYDEMO                 107
#define IDI_SMALL                       108
#define IDC_SYSTRAYDEMO                 109
#define IDR_MAINFRAME                   128
#define ID_S_                           32771
#define ID_S_EXIT                       32772
#define ID_SYSTRAYMENU_                 32773
#define ID_SYSTRAYMENU_ENABLE           32774
#define ID_SYSTRAYMENU_DISABLE          32775
#define ID_SYSTRAYMENU_TEST1            32776
#define ID_SYSTRAYMENU_TEST2            32777
#define IDM_DISABLE                     32778
#define IDM_ENABLE                      32779
#define IDM_TEST2                       32780
#define IDM_TEST1                       32781
#define ID_SYSTRAYMENU_SEP              32782
#define IDM_SEP                         32783
#define IDC_STATIC                      -1

// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NO_MFC                     1
#define _APS_NEXT_RESOURCE_VALUE        129
#define _APS_NEXT_COMMAND_VALUE         32784
#define _APS_NEXT_CONTROL_VALUE         1000
#define _APS_NEXT_SYMED_VALUE           110
#endif
#endif


Archivo stdafx.h

Código (cpp) [Seleccionar]
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//

#pragma once

// Modify the following defines if you have to target a platform prior to the ones specified below.
// Refer to MSDN for the latest info on corresponding values for different platforms.
#ifndef WINVER // Allow use of features specific to Windows XP or later.
#define WINVER 0x0501 // Change this to the appropriate value to target other versions of Windows.
#endif

#ifndef _WIN32_WINNT // Allow use of features specific to Windows XP or later.                  
#define _WIN32_WINNT 0x0501 // Change this to the appropriate value to target other versions of Windows.
#endif

#ifndef _WIN32_WINDOWS // Allow use of features specific to Windows 98 or later.
#define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later.
#endif

#ifndef _WIN32_IE // Allow use of features specific to IE 6.0 or later.
#define _WIN32_IE 0x0600 // Change this to the appropriate value to target other versions of IE.
#endif

#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
// Windows Header Files:
#include <windows.h>
#include <shellapi.h>
// C RunTime Header Files
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>


// TODO: reference additional headers your program requires here


Archivo Resource.rc

#include <windows.h>

#include "Definiciones.h"

ID_MENU MENU
BEGIN
POPUP "&SysTray"
BEGIN
MENUITEM "&About", ID_SYSTRAY_INFO
MENUITEM "&Delete icon", ID_SYSTRAY_DELETE
MENUITEM SEPARATOR
MENUITEM "&Exit", ID_SYSTRAY_EXIT

END
END

ID_ICON ICON "MouseMove.ico"

ID_BMP_CLOSE BITMAP DISCARDABLE "close.bmp"
ID_BMP_ABOUT BITMAP DISCARDABLE "about.bmp"

// Creates an Windows XP Style:
1 24 MOVEABLE PURE "Data1.bin"


#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#define APSTUDIO_HIDDEN_SYMBOLS
#include "windows.h"
#undef APSTUDIO_HIDDEN_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
// Hebrew resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_HEB)
#ifdef _WIN32
LANGUAGE LANG_HEBREW, SUBLANG_DEFAULT
#pragma code_page(1255)
#endif //_WIN32

/////////////////////////////////////////////////////////////////////////////
//
// Icon
//

// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_SYSTRAYDEMO         ICON                    "MouseMove.ico"
IDI_SMALL               ICON                    "MouseMove.ico"

/////////////////////////////////////////////////////////////////////////////
//
// Menu
//

IDC_SYSTRAYDEMO MENU
BEGIN
   POPUP "SysTrayMenu"
   BEGIN
       MENUITEM "&About ...",                  IDM_ABOUT
       MENUITEM SEPARATOR
       MENUITEM "Test 1",                      IDM_TEST1
       MENUITEM "Test 2",                      IDM_TEST2
       MENUITEM SEPARATOR
       MENUITEM "Enable",                      IDM_ENABLE
       MENUITEM "Disable",                     IDM_DISABLE
       MENUITEM SEPARATOR
       MENUITEM "E&xit",                       IDM_EXIT
       MENUITEM "SEP",                         IDM_SEP
   END
END


/////////////////////////////////////////////////////////////////////////////
//
// Accelerator
//

IDC_SYSTRAYDEMO ACCELERATORS
BEGIN
   "?",            IDM_ABOUT,              ASCII,  ALT
   "/",            IDM_ABOUT,              ASCII,  ALT
END


/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//



#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//

1 TEXTINCLUDE
BEGIN
   "Definiciones.h\0"
END

2 TEXTINCLUDE
BEGIN
   "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
   "#include ""windows.h""\r\n"
   "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
   "\0"
END

3 TEXTINCLUDE
BEGIN
   "\r\n"
   "\0"
END

#endif    // APSTUDIO_INVOKED


/////////////////////////////////////////////////////////////////////////////
//
// String Table
//

STRINGTABLE
BEGIN
   IDS_APP_TITLE           "SysTrayDemo"
   IDS_APPTOOLTIP          "SysTray Demo"
   IDC_SYSTRAYDEMO         "SYSTRAYDEMO"
END

#endif    // Hebrew resources
/////////////////////////////////////////////////////////////////////////////



#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//


/////////////////////////////////////////////////////////////////////////////
#endif    // not APSTUDIO_INVOKED



Ahora os explico, lo único que quiero es que al iniciar el programa (GUI Application), se cree un icono en el System Tray, y se quede ahí mientras el programa va corriendo, y que puedas usar las funciones del Menu al hacer click derecho en el Icono, todo esto sin que el programa tenga interfaz gráfica, es decir, que el programa solo exista en el Tray, y que si quieres usar alguna función, la llames desde el menú del icono... Pero la liada de código es tan grande que no se por donde meter mano... a ver si alguien puede arreglar el código, comentar lo que hace cada cosa y quitar archivos y todos los procedimientos que no sean necesarios, ya que hay funciones que hacen lo mismo, se crean dos iconos en el Tray, etc... así el código lo pueden usar ustedes también si quieren...

Gracias y Saludos
#34
Buenas, me gustaría saber como puedo detectar una cadena de texto dentro de un archivo flash, es decir, yo estoy visualizando un flash, y en el salen cadenas de mensajes, y yo quiero encontrar en concreto la cadena "Hola", una vez encontrada que te indique la posición de pantalla donde se encuentra...

He encontrado esta información pero no se muy bien como usarla...   :-\ :-\

http://stackoverflow.com/questions/15801476/get-c-wchar-t-into-flash-via-lua

Saludos y espero que puedan ayudarme o guiarme  :silbar:
#35
Buenas, les presento Windows Password HacK, que es capaz de sacar la contraseña de Windows en menos de 10 Segundos, os dejo un video.

[youtube=640,360]http://www.youtube.com/watch?v=BC2THIq-dU8#at=324[/youtube]

Link de Descarga: https://mega.co.nz/#!I10hAArB!dlZn9QoC5J2DCy57E1Q8tgZRFqxzlh_hjxtyDmeSAMI

Virus Total: https://www.virustotal.com/es/file/6f8dc657103bd7a20ecb54e3d460064fff8c2a1d015518eb9d09eea5bed5c9c1/analysis/1375010948/

Fuentes: La información la he sacado de UdTools.net y el video esta hecho por Nilax.

Saludos  ;-) ;-)
#36
Buenas, como el titulo dice, solo quiero saber como convertir de HWND a String, me explico, yo tengo este source sacado de aquí: https://foro.elhacker.net/programacion_cc/source_cambiar_el_titulo_de_todas_las_ventanas_por_el_titulo_que_queramos_xd-t202613.0.html

Ahora lo que quiero, es que al cambiar el titulo de la ventana activa, que se añada lo que yo quiero al final, es decir, si la ventana activa pone Hola, y yo quiero añadir Adiós, quede Hola - Adiós, es decir, Añadir - Adios, el codigo es este:

Código (cpp) [Seleccionar]


#include <stdio.h>
#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, INT nCmdShow)
{
     HWND activa;
     HWND nonactive = NULL;

     activa=GetForegroundWindow();
     
     while(1)
     {
        if(activa != nonactive)
          {
               SetWindowText(activa," - Adios\0");
               nonactive=activa;
          }
        activa=GetForegroundWindow();
        Sleep(1000);
     }
     return 0;
}


He probado a crear un string e intentar igualarlos para hacer esto:

Código (cpp) [Seleccionar]

string Cadena_String;

Cadena_String = activa;

SetWindowText(activa, Cadena_String + " - Adios\0");


pero me manda a...  ;D

Alguien sabría como podría hacerlo?

Saludos y gracias  ;-)
#37
Buenas, tengo un problema con un código un poco tonto, el código es este:

Código (php) [Seleccionar]
<?php 

require_once('config.php');

if(isset(
$_POST['ComprobarOnOff'])) 
{

$EstadoConOff "Offline";
$EstadoConOn "Online";

$countvote cleanstring(count($_POST['vote']));

if($countvote == 0)
{
echo "
 
   <script type='text/javascript'>
 
       alert('No clients selected.');
 
   </script>
 
"
;
}
}
else
{
//clients`.`status
   
mysql_query("UPDATE clients SET status = '$EstadoConOff' WHERE status = '$EstadoConOn'");
   
}
 

?>



  • vote = checkbox

  • ComprobarOnOff = button

    Lo que necesito es que cuando algún checkbox este marcado, compruebe si esta en Offline, Online o Unknow en la base de datos, y que todos los que estén Online los pase a Offline, y si hay algún Unknow marcado no haga nada con ese, la conexión a la base de datos se seguro que funciona porque la uso en otras funciones y funcionan, pero no se porque no actualiza ese campo...  :-\ :-\

    Si me pudieran revisar el código y decirme si es correcto...  :(

    Saludos[/size]
#38
Hola, estoy buscando a alguien que domine mucho el tema de ingeniería inversa, yo estoy empezando y lo que quiero hacer me queda un poco grande, así que si alguien puede ayudarme se lo agradecería...  :-\ :-\

Saludos
#39
Programación C/C++ / [C++] Uso de <vector>
22 Junio 2013, 19:16 PM
Buenas, tengo este código...

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <io.h>

int main()
{
   struct _finddata_t arch;
   long result;
   int n;

   if ( (result = _findfirst("*.txt", &arch)) == -1 )
   {
       printf("\n ~ No hay Archivos ~\n\n");
   }
   else
   {

       printf("\n ~ Seleccion de Archivos ~\n\n");

       n = 1;

       do
       {
           printf(" %d.- %s\n", n, arch.name);
           n+=1;

       } while ( _findnext(result, &arch) == 0 );

       _findclose(result);


   }
   
   printf("\n Que archivo quieres abrir?");
   
   getchar();


}


Quiero modificarlo de manera que en vez de escribir el nombre del archivo para abrirlo, solo ponga el numero que lleva delante, es decir, que ponga 1, y se abra el primer archivo..  :silbar:

Creo que se hace con <vector> pero no se como usarlo, espero que puedan ayudarme  ;-)

Saludos
#40
Seguridad / [Reto] Descifrar swf
22 Junio 2013, 18:20 PM
Buenas, les quiero proponer un reto..

El reto consiste en descifrar este archivo flash para poder abrirlo con "Sothink SWF Decompiler"  ;-)

Pueden descargar Sothink SWF Decompiler desde su web: http://www2.sothink.com/download/swfdec.zip

Y el archivo main.swf desde: http://www.mediafire.com/?aw1bkbcx4v7x5vk


CitarMD5 hash: f9719887eaee235f2c798caa2ea0465e

Hashed file name: main.swf
Hashed file size: 2.72MB

El archivo dice que esta corrupto porque esta cifrado, el reto es que consigan abrirlo con ese programa, previamente tiene que ser descifrado  :silbar: :silbar:





Saludos y Suerte ;-) ;-)
#41
Bueno, este es el primer aporte que hago, son algunos códigos simples en vbs

Habilitar Admin. Tareas

Código (vb) [Seleccionar]
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr", 0, "REG_DWORD"


Deshabilitar Admin. Tareas

Código (vb) [Seleccionar]
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr", 1, "REG_DWORD"


Habilitar Registro

Código (vb) [Seleccionar]
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
On Error Resume Next
WshShell.RegDelete "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools"
WshShell.RegDelete "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools"


Deshabilitar Registro

Código (vb) [Seleccionar]
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools", 1, "REG_DWORD"
WshShell.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools", 1, "REG_DWORD"


Abrir Bandeja del CD

Código (vb) [Seleccionar]
Set oWMP = CreateObject("WMPlayer.OCX.7")
Set colCDROMs = oWMP.cdromCollection
colCDROMs.Item(i).Eject


Cerrar Bandeja del CD

Código (vb) [Seleccionar]
Set oWMP = CreateObject("WMPlayer.OCX.7")
Set colCDROMs = oWMP.cdromCollection
colCDROMs.Item(i).Eject
colCDROMs.Item(i).Eject


Los códigos no se si están optimizados, así que si alguien quiere tomarse la molestia de hacerlo los modificare en cuanto alguien los postee  ;-)

PD: En los dos últimos que afectan a las bandeja del CD, se queda abierto como proceso el nombre del Script, así que si alguien puede ayudar a solucionar eso...

No son muchos códigos pero quizás a alguien les puede servir  :silbar:

Saludos
#42
Scripting / [VBS] Script Basico
21 Junio 2013, 14:43 PM
Hola, quería hacer un script en vbs, que cree una clave en el registro para ejecutar una aplicación que se guarda en "C:\Documents and Settings\---\Datos de programa",  tengo esto escrito...

Código (vb) [Seleccionar]
Dim oReg As Object
Set oReg = CreateObject("Wscript.Shell")

'Definimos las variables necesarias
Dim strRuta As String
strRuta = "Aqui la ruta"

'Escribimos el nuevo valor de la clave
oReg.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run", strRuta, "REG_SZ"

oReg.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", strRuta, "REG_SZ"

'Destruimos la variable de objeto
Set oReg = Nothing


Claro, si pongo una ruta fija solo vale para mi ordenador, ademas, yo tengo Windows XP y para un Windows Vista o Windows 7 no funciona... Podrían decirme como puedo optimizar este script para cualquier S.O??

Saludos
#43
Hola chicos, quería saber como puedo modificar los dos primeros caracteres de un archivo, es decir, tengo un archivo que se llama Hola.txt y en el que pone:

Hola.txt
CitarHolaquetal

Y quiero copiar ese archivo modificando las dos primeras letras, para que quede por ejemplo así:

Adios.txt
CitarRilaquetal

Es decir, solo quiero que cambie las dos primeras letras del archivo original...

Espero que puedan ayudarme  :-\

Saludos


#44
Buenas, quería saber como puedo crear una interfaz gráfica, uso CodeBlocks y me gustaría programarlo como multiplataforma, no me interesa el Visual C++, hasta ahora solo he programado en consola, llevo poco tiempo estudiando programación y no se cómo hacerlo, espero que puedan recomendarme  :rolleyes: :rolleyes:

Saludos
#45
Hola, alguien podría explicarme como descifra esta función?

Código (vbnet) [Seleccionar]
Function descifrar(DataValue As Variant) As Variant
         
        Dim x As Long
        Dim Temp As String
        Dim HexByte As String
         
        For x = 1 To Len(DataValue) Step 2
             
            HexByte = Mid(DataValue, x, 2)
            Temp = Temp & Chr(ConvToInt(HexByte))
             
        Next x
        ' retorno
        descifrar = Temp
         
End Function


Esta cadena esta cifrada con ese algoritmo...

Citar6F70656E

Saludos y espero que puedan ayudarme  :-\ :-\