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 - @XSStringManolo

#1671
Prueba cifrándolo. Mételo en un rar o zip. Pero hay 50.000 páginas de "subir archivos".
#1672
Podrá hacer lo que le salga de los cojones o qué?
#1673
Programación C/C++ / Re: programacion en c++
4 Septiembre 2019, 02:12 AM
La manera más sencilla que se me ocurre es usando un string de C++
Código (cpp) [Seleccionar]

array[tamaño] = {a, b, c, d};
string numeroEnString ="";
int numero;

for (i = 0; i != tamaño; ++i)
{
numeroEnString += array[ i ];
}
numero = static_cast<int>(numeroEnString);


Creo que se podía hacer cast de string a int, pero no te lo aseguro al 100%. Si no se puede simplemente lees el array/string al revés multiplicas cada número según su posición, por ejemplo incrementando la base*10 por cada iteración y sumas todos los números obtenidos.

Tipo:
Código (cpp) [Seleccionar]
int base = 1;

for (i = tamañoArray /*o i = string.size()*/; i != 0; --i)
{
numeroFinal += array[ i ]*base;
base = base *10;
}


En el ejemplo de 5661 cada iteración del bucle anterior haría lo siguiente:
1) num = 1 * 1; base = 1*10;
Num vale 1. Base vale 10.

2) num = 1 + 6*10; base = 10*10;
Num vale 61. Base vale 100;

3) num = 61 + 6*100; 100*10;
Num vale 661. base vale 1000.

4) num = 661 + 5*1000; 1000*10;
Num vale 5661. Base 10000.

Se acaban las iteraciones.

Ahora, para redondear yo lo haría de la siguiente manera. Soy poco ortodoxo y eficiente programando, asique igual es mejor que busques otros ejemplos jeje.

Si la segunda cifra empezando por la izquierda vale más o es igual a 5.

Tienes el tamaño. Por lo tanto sabes la cantidad de cifras que tienes.
En base a esto lo puedes hacer con operaciones simples.

Código (cpp) [Seleccionar]
for (i = 0; i < tamaño; ++i)
{
base = base*10;
}


1) base = 1*10

2) base = 10*10

3) base = 100*10

4) base = 1000*10


Como se te pasa por 10 le restas 1 iteración al bucle como quieras. Por ejemplo empezando con i = 1;

Código (cpp) [Seleccionar]
for (i = 1; i < tamaño; ++i)
{
base = base*10;
}


Después truncas el numero dividiéndolo por esa cantidad.

Código (cpp) [Seleccionar]
numeroTruncado = numero/base;

Es decir
Código (cpp) [Seleccionar]

numeroTruncado =5661/1000;

numeroTruncado = 5;


Multiplicas de vuelta por la base.

Código (cpp) [Seleccionar]
numeroSinTruncar = numeroTruncado*base;

Y te queda 5000.

Código (cpp) [Seleccionar]
Numero2 = NumeroOriginal - numeroTruncado = 661

Por último compruebo si debo aproximar o no.

Código (cpp) [Seleccionar]
if (numero2 > base/2)
{
numero = (numero - numero2) + base;
}

else
{
numero = numero - numero2;
}


Es decir:
Código (cpp) [Seleccionar]
Si (661 > 500)
{
numero = (5661 - 661) + 1000;
} /*Esto da 6000*/

En caso contrario
{
numero = 5661 - 661;
} /*Esto da 5000 */





Mod: Obligatorio el uso de etiquetas GeSHi.
#1674
Programación C/C++ / Re: programacion en c++
4 Septiembre 2019, 00:47 AM
Buscando en Google 100 pesetas = 60 céntimos.
Una peseta son 0,6 céntimos. Es decir si multiplico cualquiera que sea el valor de pesetas por 0,6 voy a obtener ese valor en euros.
Por ejemplo 55 pesetas son 33 céntimos de euro.

Teniendo esto, ya puedes convertir cualquier cantidad de Pesetas a euros.

Ahora la parte del cambio. Se busca el cambio óptimo, es decir, darle la menor cantidad de billetes+monedas hasta llegar a la cantidad de euros. Tan sencillo como declarar todos los valores posibles de billetes y monedas e ir restándoselos a la cantidad de euros.

Ejemplo.
El usuario del programa quiere pasar sus 470 pesetas a euros en una máquina y que le de el cambio:
Pasamos pesetas a euros.
centimosDeEuro = pesetas*0'6;
Son 282 céntimos. Es decir 2 euros y 82 céntimos.

En un contenedor guardas todos los valores posibles de billetes y monedas.
500 200 100 50 20 10 5 2 1 0.50 0.20 0.10 0.05 0.02 0.01

Puedes representarlo todo en céntimos si te es más cómodo para no operar con decimales y haces el cambio a euros en el cout.

Ahora para devolver el cambio compruebas cual es la cantidad más grande que puedes dar de esa lista y se lo restas a la cantidad total, esto lo haces en bucle hasta acabar con todo el dinero.

2.82€ - 2€ = 0.82€
0.82€ - 0.50€ = 0.32€
0.32€ - 0.20€ = 0.12€
0.12€ - 0.10€ = 0.02€
0.02€ - 0.02€ = 0.00€

Es decir, le das de cambio una moneda de 2€, una moneda de 50 céntimos, una de 20 centimos, una de 10 centimos y una de 2 céntimos.

Puedes hacer algo estilo:

Código (cpp) [Seleccionar]
/****VARIABLES****/
int arrayBilletesMonedasEnCentimos={50000, 20000, 10000.........}

int arrayContadorBilletes {billeteDe500, billeteDe200......}
...

/****PROTOTIPO FUNCIONES****/





/****FUNCION MAIN****/
int main()
{
int pesetas = 0;
int centimosDeEuro = 0;

pesetas = ObtenerPesetasDelUsuario();

centimosDeEuro = CambioPesetasCentimosDeEuros(pesetas);

float euros = centimosDeEuro/100;

cout << endl << pesetas << " pesetas son " << euros << "euros." << endl;

ObtenerCambio(centimosDeEuro);

.....

}






/***DEFINICION FUNCIONES***/
unsigned int ObtenerPesetasDelUsuario()
{
cout << "pon pesetas" << endl;
cin >> pesetas;
return pesetas;
}


unsigned int CambioPesetasCentimosDeEuros (pesetas)
{
centimosEuro = pesetas * 0.60;
return centimosEuro;
}


void ObtenerCambio (centimosEuro)
{
  for (int i = 0; centimosEuro != 0; ++i)
  {
     if (arrayBMEC[i] >= centimosEuro)
     {
   
     centimosEuro -= arrayBMEC[i];
     arrayCB[i] += 1;
     }
  }
}


Completalo y déjalo bien presentado.


El otro ejercicio: " Una funcion que ayude a unir los numeros a,b,c,d en un solo numero para poder redondearlo ".

No sé a que se refiere "unirlos" en un solo número. Sumarlos? Poner uno al lado del otro?
Y menos aún entiendo lo de "que ayude"... Tienes que ayudar la función? O tiene que hacerlo?

Si un profesor me pide eso tal cual le hago algo así:

string numeros ="";
numeros += a;
numeros += b;
numeros += c;
numeros += d;

cout << endl << "El numero \"unido\" es: << static_cast<int>(numeros);

Y para aproximar miro el segundo y le sumo o no 1 al primero si es o pasa de 5 el segundo. Ya lo hago antes de meterlos en el string.

if (b >= 5) {a++; b=0; c=0; d=0;}
int numero = a;
numero = numero*1000;

Estes ejercicios son para que aprendas. Pero muchos profesores mandan hacer cosas sin explicar nada. Asique mírate libros de C++ por tu cuenta y pregunta por el foro lo que no entiendas o no consigas hacer. Si esperas que un profesor consultando un libro de cuando había pesetas se va a preocupar de enseñarte nada cuando ni se molesta en actualizar un libro de ejercicios o hacerlo el mismo... Pues vas fino  ;)
#1675
Menos es 1 xD. Que tengamos un puto cliclo medio habiendo sabe dios cuantas ramas informáticas y especializaciones informáticas...
A parte que se supone que son sistemas "microinformáticos". Según resultados de Google son tareas de "helpdesk" orientadas a asistencia con software. Como se supone que las materias que se imparten son útiles si no se toca programación general. Es como hacer un ciclo de mecánica y que te enseñen únicamente a pintar coches sin abrir un capó. Una *****.
Parece que quien propuso el ciclo y las materias era un/a dependiente de Zara o un oficinista.

Si dejasen a la empresas y profesionales del sector diseñar los ciclos...

Mínimo yo metería 4 o 5. Podrían ser del orden de: Desarrollo general y análisis de software. Ciberseguridad. Reparación y mantenimiento de hardware. Instalación y diseño de redes. Tratamiento y análisis informático de la información. Desarrollo e implementación de tecnologías web. Inteligencia Artificial.
#1676
No estás haciendo lo que se te pide. Y estás declarando todo como ints. Dice número entero positivo.
Si usas unsigned ya que sabes que es positivo y que va a tener 4 cifras puedes usar short.
unsigned short int numero = 1000;

La condicion del bucle debería ser comprobar si el número está entre 1000 y 9999 ambos incluidos. Ya que son todos los números enteros positivos de 4 cifras.

Esta forma de pedirte el ejercicio interpreto que está planteado  específicamente para que lo resuelvas de forma matemática. Si no, lo más sencillo es resolver este problema con un array de ints y usando el operador de array[] o aritmética de punteros para acceder a cada elemento del array y sumarlos. Otra opción es usar un string que no deja de ser un array de caracteres y aplicarías el mismo principio de usar el operador array[], aritmética de punteros o como añadido alguno de los múltiples métodos que te habilita la Standart Template Library, como el método find, o recorrer el array usando iteradores o alguno de los múltiples for como el clásico o el basado en rango o alguno de los algoritmos disponibles para ello.
También puedes resolverslo obteniendo los bytes que ocupa en memoria el tipo de dato unsigned short int o usar los operadores de bits y resolverlo operando en binario.
Interpreto que lo tienes que resolver matemáticamente debido a que te dice "número entero positivo" no caracter. O "números" enteros positivos. Aunque el resultado final sea el mismo, será para que desarrolles tu pensamiento lógico.

Matemáticamente puedes aprovecharte de que se hace un truncado de números decimales. Es decir, la parte decimal no se aproxima, se elimina.

Si el numero fuese por ejemplo 6789 obtienes las cifras dividiendo entre cada valor.

numero1 = numero/1000; Obtienes 6.
numero2 = numero/100; Obtienes 67.
numero3 = numero/10; Obtienes 678.
numero4 = numero/1; Obtienes 6789.

Así solo sacas uno de los números que vas a sumar. El 6.

Ahora voy a sacar el 7.
numero2 = numero2 - numero1*10;
Así ya sale el 7.

Ahora el 8.
numero3 = numero3 - ((numero1*10 + numero2)*10); Esto equivale a 678-670;

El último.
numero4 = numero4 - (((numero1*10 + numero2)*10)*10); Esto equivale a 6789-6780;

Te queda:
numero1 = 6
numero2 = 7
numero3 = 8
numero4 = 9

Sumas todo:
numero = numero1 + numero2 + numero3 + numero4; Y obtienes 30.

Si el número es mayor a 9 tienes 2 cifras, asique debes obtener ambas cifras. Usas el mismo método.
numero1 = 30/10; Obtienes 3.
numero2 = numero - numero1*10; Obtienes 0.

Por último obtienes el resultado final del programa:
numero = número1 + numero2; Obtienes 3.

Esto si lo quieres hacer con una función hazlo con una funcion que returne unsigned short int y tome como parámetro el número.
unsigned short int Calculo (numero);

Seguramente haya burradas de maneras de resolverlo matemáticamente y más eficientes. Esta es la que se me ocurre a mi sin darle muchas vueltas ni buscar ejemplos. Impleméntala en el programa o utiliza otra. Asegúrate de que esté todo correcto y se cumpla en todos los casos.

Estas operaciones están en bruto, puedes sacar y deberías sacar el patrón usado e implementarlo en un for.
#1677
Software / Re: error Instalación Google Chrome
3 Septiembre 2019, 16:45 PM
Tienes otras opciones como firefox, yandex, samsung browser, brave, opera, safari...

Te recomiendo Yandex.
#1678
Tienes un montón de librerías que te permiten generar ejecutables o ejecutar el interprete en otros interpretes, por lo que puedes hacer hasta webs en Lua. Entre otros tienes Lua2exe qie te recordará a Python to exe. No deja de ser un lenguaje open source escrito en ANSI C. Puedes compilar el bytecode a otro lenguaje o el propio interprete con compiladores de C o C++. Si vas a instalar un rat te es lo mismo instalarlo solo que con Lúa. Se usa mucho de chicle entre varios lenguajes de programación.
#1679
Se modifica igual que cualquier otro programa xD. Métele una función al código y la llamas al escribir un comando.

Si vas a hacerlo de 0 te recomiendo Lua. Los sockets son supersencillos si nunca trabajaste con ellos y siempre van a ser una herramienta útil. Corren en windows y linux por lo que para malware multiplat están guay.
http://w3.impa.br/~diego/software/luasocket/
#1680
Hacking / Re: Ataque XSS?
3 Septiembre 2019, 00:45 AM
Cita de: Sapote en  2 Septiembre 2019, 23:38 PM
Es que son 2 peticiones diferentes, en la primer imagen donde se ve todo blanco me devuelve un 200. Y en la segunda peticion puedes ver que esta mal escrito logout y dice "logouy" y ahi me devuelve el error 404 pero con la informacion del phpcake
Ahh vale. Entonces todo normal. La página en blanco podría ser la página de "error". No tengo ni la menor idea porque no sé que código estás testeando. Prueba más payloads a ver como actúa.


Cita de: Sapote
A manita ;D
  No, no lo tengo.
Las estás crafteando a base de plain-text sin mirar nada? Igual por eso te responde en blanco? Probaste con la url normal si también devuelve la página en blanco? Igual es porque no tienes la cabecera de las cookies seteada o algo de sesión. Si el backend se supone que te redirige mirando el ID de la sesión en el archivo de la sesión y estás crafteando la cabecera sin ninguna sesion ni cookies, no tiene un usuario al cual hacer logout. Pueden ser varias cosas.

Cita de: SapoteEn caso que quiera explotar ese callback que otra opcion pudiera ser valida?
Pufff hay un montón de cosas que puedes testear. Inyeciones de comandos, htmli, xml, xxe, xss, sqli, Xpath, ldap, path transversal, csrf, directorios y archivos predecibles, data leaks, subida de archivos...
A cerca de PHPcake ni idea. Héchale un ojo por google a ver que encuentras. También mira los típicos robots.txt, ruta/../../../../../../../../../../../etc/passwd
random/../../../../file.txt El sitemap.xml etc.

Puedes testear el html en local y pasarle scanneres para buscar errores client-side si está parseando o validando en la parte del cliente, puede que cometa los mismos errores en el server. No te quedes en la web, mira también la red y el software detrás.