Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - soyloqbuskas

#181
¡Buenas DickGumshoe!

Tu problema es sencillode resolver.
La variable fila no la tienes inicializada al principio, si no que la inicializas dentro del bucle, cuando en realidad deberias hacerlo fuera.


fila=7;
do{

//codigo del juego...
fila--;

}while(s==1);


Si fila=7 lo metes dentro del bucle, fila solo toma los valores 7 y 6.....
Ademas, tu variable fila es un int, eso significa que si el bucle se repite 8 veces, fila sera igual a "-1"......asi que deberas poner un:
if(fila==0)//la fila esta llena, entonces no insertar

¡Espero haberte ayudado, un saludo!

PD: Deberias tabular y comentar el codigo, asi te sera mas facil a ti y a los demas ver donde estan los fallos.
#182
Programación C/C++ / Re: Troyano en c
18 Enero 2012, 15:58 PM
¡Buenas Satu!

Tu idea no es ninguna tonteria, de hecho, yo tambien habia pensado hacerlo asi pero....me gustaria hacerlo sin tener ninguna interaccion con el exterior del programa...

¡Pero muchas gracias por tu respuesta!
#183
Buenas defik!
Para hacer ese procedimiento debes recorrer la matriz que se hace con 2 bucles for anidados:

for(i=0;i<N;i++){
    for(j=0;j<M;j++){
   
         //codigo de comprobacion de los valores

    }
}


Y para comprobar los valores debes usar condicionales, como ejemplo cojamos esta matriz 3x3

       0   1   2  (i)
   
   0  2   4   5
 
   1  3   9   6

   2  1   3   2
  (j)

En el caso del 9, para comprobar si es mayor que los demas debes comparar las posicion (1,1) con las posiciones: (0,0) , (0,1) , (0,2) , (1,0) , (1,2) , (2,0) , (2,1) , (2,2)

O lo que es lo mismo dada una posicion (i,j) lo tienes que comparar con las posiciones: (i-1,j-1) , (i,j-1) , (i+1,j-11) , (i-1,j) , (i+1,j) , (i-1,j+1) , (i,j+1) , (i+1,j+1)

Si al hacer todas estas comparaciones te sale que la posicion (i,j) es mayor, entonces es una montaña.

Asi que dentro de los 2 bucles debes meter 8 if() que haga cada una de estas comparaciones y los 8 resultados te deben salir positivos.

Y Para que te funcione con los laterales lo unico que debes hacer es que cuando compares las posiciones  (i,j) con por ejemplo (i-1,j), debes comprobar que i-1 no es menor que 0.

Y con esto tienes hecho el procemiento. Es un poco lioso porque tiene muchas condiciones pero bueno...

Espero haberte servido de ayuda, un saludo.
#184
Programación C/C++ / Re: Troyano en c
17 Enero 2012, 16:59 PM
Esa es la idea que tengo pensada, pero mi problema no esta en la ejecucion de ordenes si no en la visualizacion de la salida de esa orden en el cliente, es decir:

El cliente envia un "dir", y el servidor hace system("dir"), pero el resultado lo muestra en el servidor y yo lo que quiero es que el resultado del dir lo muestre en el cliente. Para ello, el servidor despues de ejecutar el dir tiene que guardar el resultado en una variable de tipo cadena, para que luego pueda enviar esa cadena al cliente.

Lo que queria preguntar antes es: ¿Como puedo guardar el resultado de system("dir") en una cadena?

¡Gracias, un saludo!
#185
Programación C/C++ / Troyano en c
17 Enero 2012, 15:57 PM
¡Buenas a todos!
Estoy haciendo un troyano sencillo en c, y nteog un problemilla.

Por ahora soy capaz de hacer que el servidor ejecute las ordenes (system(orden)) que le mando desde el cliente...el problema esta en que ahora quiero que me retorne el rel resultado al cliente para visualizarlo (ejemplo: dir)

Si uso "system()" como no retorna ningun valor pues no me sirve de mucho...y he estado pensado en usar createprocess().

Mi pregunta es....¿una vez hecho el createprocess("cmd",....,...) como puedo pasarle ordenes al cmd para luego guardar la salida de cmd en una variable?

¡Muchas gracias, un saludo!
#186
Ooook! ya le he hechado un vistazo al codigo y es !CORRECTO¡, lo unico que los numeros con una base superior a 10 (11-16) tienen numero representados por letras y esos como palindromos no los detecta.

En el ejemplo que te puse antes...
AB1BA es capicua por las letras pero al introducir el numero en base 10 (700858) y luego al hacer el cambio a base 16 el numero que sale es:

 10  11  1  11  10 : no es capicua
  A   B   1   B   A : si es capicua

Entonces este tipo de numero nos los coge. Pero vamos si esto es una practica, el profesor no creo que te la haya tirado por esto ya que solucionar esto es un poco enrevesado. Yo creo que el verdadero motivo por el que te la ha tirado es por que el enunciado dice:
CitarBásicamente el problema consiste en ingresar numero n. (0<n<50000)

y tu codigo pone:
if(n == 0) break;

Cuando en realidad deberia poner:
if(n==0 || n>=50000) break;

Ademas de que el codigo no esta comentado y no usas variables con nombres significativos....

Y bueno este es el codigo que yo he hecho para tu programa. Aun asi tiene el mismo fallo que el tuyo de los numeros representados en una base mayor que 10...

#include <iostream>

using namespace std;


int cambioBase(int n, int base) {
   // Funcion para el cambio de base
  int n_base=0, coef=1;
  while (n!=0) {
     n_base+=coef*(n%base);
     coef*=10;
     n/=base;
  }
  return n_base;
}

bool esCapicua (int numero){
    //Funcion para comprobar si un numero es capicua
    bool resultado=false;
    int capb=numero;
    int capd=0;
    int capc=0;

    while(capb!=0){
        capc=capb%10;
        capd=capd*10+capc;
        capb=capb/10;
    }
    if(capd==numero) resultado = true;
   
    return resultado;
}

int main(){
   
   //Declaracion de variables
   int numero, aux1;
   int baseIni=2;
   int baseFin=16;
   bool capicua=false;
   bool check =false;
   
   //Codigo principal
   cout<<"Escribe un numero en base 10: ";
   cin>>numero;
   
   if(numero==0 || numero>=50000){
       // Si el numero introducido exede el limite finalizo el programa
       cout<<"El numero introducido supera el limite\n";
       system("pause");
       return 0;
   }
   
   for (baseIni; baseIni <= baseFin; baseIni++){
       //Comprobamos si el numero es capicua para todas las bases
       aux1 = cambioBase(numero, baseIni);   //Cambio de base
       capicua = esCapicua(aux1);            //es capicua?
       if(capicua){
            //Si es capicua imprimios el resultado y ponemos check a true
            cout<<"\nEl numero: "<<numero<<" es capicua para la base: "<<baseIni<<"\n";
            capicua = false;
            check = true;      
       }
   }
   //Si ningun numero es capicua check seguira con su valor inicial (false)
   if(!check) cout<<"\nEl numero: "<<numero<<" no es capicua para ninguna base entre 2-16\n";

   system("pause");
   return 0;
}


Espero haberte servido de ayuda, un saludo!
#187
Hacking / Re: Espionaje de pc
7 Enero 2012, 04:53 AM
Como dice gilgamesh_84, siguiendo sus pasos tu PC quedara desinfectado.

De todas formas, yo cuando creo que tengo un virus o algolo que hago es abrir el administrador de tareas (ALT+CTRL+SUPR) y ver que procesos tengo abiertos y los que no conozco los busco en google y si al buscar leo que ese proceso es de windows o de un programa mio pues lo dejo y si leo que es un virus o troyano o demas, finalizo el proceso (por ejemplo virus.exe) , luego hago una busqueda de virus.exe y borro todos los archivos con ese nombre y por ultimo doy inicio->ejecutar y escribo msconfig y en la pestaña "inicio" sale una lista con todos los pragamas que se ejecutan al arrancar el ordenador y deshabilito el virus.exe.

Si encuentras el virus y no puedes borrarlo, prueba a entrar en modo a prueba de fallos. Para ello reinicia el ordenador  y dale a F8 varias veces antes de que cargue windows y te saldra una lista de los distintos tipos de arranque. Eliges el modo aprueba de erros o modo seguro, y ya podras buscar y borrar el virus.exe y quitarlo del msconfig.
#188
¡Buenas x3r0x!

En cuanto a la pregunta:
CitarEsconder un troyano en un file? por ejemplo .jpg

En un .jpg creo que se puede pero luego no funciona. El motivo es que un .exe y un .jpg son tratados de forma diferente por el systema operativo. Lo que si se puede hacer es ocultar el troyano en un .exe como por ejemplo en un crack de un video juego...
Los progamas que hacen esto se llaman joiners y un programa concreto es el "X-exejoiner".

Por otro lado...
CitarY como se hace para manejar un troyano sin ser infectado?

Un troyano consta de 2 partes, un cliente y un servidor. El servidor es el que tienes que colar a la victima y el cliente es el que tu usas para controlar el servidor (el pc de la victima), asi que mientras no ejecutes el servidor en tu ordenador no pasa nada.

Y por ultimo...
Citarpero se pueden manejar desde linux para mandar a windows?

Como ya dije, el troyano consta de un cliente y un servidor, si tu usas linux, y tu victima usa windows, necesitas que el servidor funcione bajo windows y que el cliente funcione bajo linux y de esta forma si se podria. El tema esta en que creo que no hay troyanos programados de esa manera, lo que si hay es que tanto el cliente como el servidor funcionen en windows o en linux, pero mixto creo que no hay nada. Si quieres algo asi, creo que tendras que programarlo ti mismo.

En cuanto al manual, aqui te dejo un enlace sobre el troyano subseven.
http://www.hackhispano.com/foro/archive/index.php/t-1905.html

PD: Te recomiendo que antes de postear busques bien por el foro (que tiene boton de busqueda) porque estoy seguro que estas preguntas ye sa han contestado antes a otras personas, te lo digo porque a mi me dijeron lo mismo al principo jeje y sobre todo, nunca pidas manuales ni tutoriales ya que es probable que la gente no te responda o te diga que los busques tu, al fin y al cabo solo tienes que poner en google tutorial de troyanos y te saldran miles!

Espero haberte servido de ayuda, ¡un saludo!


#189
Citar
No se si recuerdes el devorador de recursos "Windows Vista" el cual hizo que muchos usuarios le dieran un upgrade al hardware solo para disfrutar del famoso "Aero" cuando ya ubuntu nos lo brindaba con el mismo hardware viejo.

Estoy deacuerdo en esto, pero precisamente el motivo por el Microsoft saco windows vista era para sacar una interfaz grafica que compitiera con las interfaces grafias que ya habia para linux, pero el desarrollo fue un desastre. La imitacion no fue buena...xD Pero aun asi, dudo que Microsoft lo hiciera con mala intencion, pero desde luego windows vista fue un fallo garrafal que tuvieron que corregir rapidamente sacando windows 7 por los millones de quejas que recibieron.
#190
CitarPorque los ordenadores traen Windows Instalado y no GNU/Linux?¿

Cualquier empresa tiene la opcion de vener al cliente final o vender a umpresas intermediarias para que estas revendan su producto al cliente final (estos son los mayoristas)

La mayor parte de los ingresos de Microsoft no viene por la venta de Windows en las tiendas, si no por vender a empresas como HP o ADL, etc su sistema operativo. Y es que a las empresas como HP y tal, no pueden venderte el ordenador sin mas porque seria venderte un amasijo de hierro que no sirver para nada. El SO pone al ordenador a disposicion del usuario. Por eso estas empresas necesitan venderte el ordenador con un SO instalado y como la mayoria de la gente ya esta acostumbrada a windows (a su interfaz grafica) pues pasa como dice skapunky, que si quieren vender lo tienen que hacer con windows.

Sin embargo, el 90% de los supercomputadores funcionan bajo linux. Esto es porque los fabricantes de SO deben vender el SO al cliente final, a la empresa que creo ese supercomputador. Y por eso windows pierde, porque Linux es mas estable, mas potente y mas rapido.

De todas formas, prometheus48 , si quieres saber las distintas estrategias seguidas por los fabricantes de SO, te recomiendo que veas la pelicula "Piratas de Silicon Valey". Esta pelicula relata los origenes de Apple y Microsoft y como Apple creaba sus propios ordenados con el Mac OS X instalado, y Microsoft compro el Q-DOS el cual lo renombro como MS-DOS (MicroSoft DOS) para luego venderle a IBM una licencia que permitira a IBM vender su computador con MS-DOS y Microsoft cobraba por cada venta de IBM.

En cuanto a lo dicho por H1tchclock....
CitarSiempre que una computadora más veloz es fabricada, microsoft inventa alguna aplicacion para tornarla más lenta.

No creo que Microsoft tenga intencion de hacer que las maquinas sean mas lentas. Si un computador es mas lento con windows que con linux es porque Microsoft es mas lento sacando actualizaciones para su SO, puesto que la mayor parte de las actualizaciones son sacadas primero para linux y luego Microsoft las adapta, por esto van siempre un paso por detras. Linux es pionero en ese sentido. Ademas, Microsoft saca ServicePacks, que son un pack de actualizaciones de servicios y demas, mientras que linux en cuanto tiene un actualizacion te lo notifica, no se espera para hacer un pack de 30 actualizaciones, lo cual retrasa la entrega al usuario.

Espero haberos servido de ayuda, ¡Un saludo!