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

#136
Foro Libre / Falta de motivación.
10 Julio 2019, 06:46 AM
Hola, me gustaría describirme y escribir este texto para desahogarme.
Desde que era pequeňo y mi adolescencia he crecido con falta de autoestima. Siempre he tenido mala imagen de mi mismo. Tengo miedo a cometer maldades porque soy una persona malvada y peligrosa. Las cosas nunca resultan como yo quiero y me siento inferior a los demás. Tengo mucho miedo y soy una persona tímida asique entiende que estoy haciendo un gran esfuerzo al escribir como me siento. Creo que nadie se siente como yo. Desconfio de todos, me siento deprimido, triste y como que todo me da igual. Necesito llamar la atención constantemente para que alguien me escuche y sentirme apollado.
Nunca he podido comprender como funciona el mundo y a veces llego a autolesionarme.

Seguro que nadie más ha sentido todo esto...
Me quedan como recuerdo las sabias palabras que me dijo mi tío Cesar cuando yo tenía 13 aňos. Ry grkgb nagrevbe rf ha ubarlcbg wrwr
La vida no vale la pena sin aceptarse a uno mismo.
#137
Por control mental me refiero a control mental, sugestión, hipnosis, retrive de información subliminal, etc.

Por técnicas me refiero a técnicas concretas, no ha momentos puntuales frutos de la casualidad ni a pura aletoriedad.

A resultados positivos me refiero a resultados asombrosos.

Abstenerse mentirosos compulsivos y vendehumos. Tema serio.

Yo llevo tiempo utilizando técnicas desarrolladas por mi mismo, con las mejoras y ajustes de las técnicas y su sofisticación estoy obteniendo resultados muy positivos y asombrosos. Mi interés en el tema crece exponencialemente y busco algún tipo de documentación sobre el tema con la teoría para poder extrapolarla utilizando mis propios conocimientos y experiencia así como técnicas probadas y de facil comprobación.

Gracias a estas técnicas puedo obtener en segundos el pensamiento de una persona. Por ejemplo su gran preocupación vital. Su preocupaciön más reciente o una contraseňa exploiteando que la mente se alivia contando sus secretos y necesita tenerlos presentes precisamente para no contarlos, la mente cuenta con varios sistemas que alertan de peligro al momento de soltar esta información. Pero con una técnica extremadamente sencilla puedes obtener palabras asociadas a este pensamiento en forma de elementos, por lo que el sistema de protección es engaňado y no se da cuenta de que acaba de dar esa información (ni nunca lo sabrá) que tanto pudor le da, o que tanto miedo y repercusiones pueda traerle.
Lo que más curiosidad me causa es que ese almacenamiento aloja basura junto a palabras clave.
Mediante esta técnica he obtenido serie como cancerjwvdifuwvdbdiquwytbslauwb
Asesinatobebeisjwaperrobwvqjsjsnqjduq
Muertehwvwbduwbwndkshijojwbwb

Se me han puesto varias veces los pelos de punta al montar las series. El sujeto no sospecha ni lo más mínimo debido a que hay que forzar su mente subliminalmente y distraerla totalmente abstrayéndola en si misma.

Alguien que realice técnucas de este tipo para intercambiar información y aprender más?
#138
Review personal de los libros más útiles que tengo en la carpeta de leídos y alguno que he ojeado y leeré proximamente.

La idea no es buscar en Google libros y ponerlos aquí, si no recomendar libros de mínimo 9 sobre 10 según mi opinión.


Si quereis recomendar algún libro que siga este criterio edito el post y lo incluyo sin problemas. Practicamente todos están en inglés si no todos. Por el título de cada libro podreis ver el idioma en el cual está el libro. Espero que os sea útil el listado. Cada mes descargo unos cuantos y los leo. Si quereis que haga alguna review de cierta temática puede que leyese algo de ese tema (o no). A parte de ser libros excelentes académicamente son libros entretenidos e interesantes. Si os gusta algún tema no dudeis en leer uno de los libros.

Ultima Actualización del listado: Sab, 28 septiembre 2019



Desarrollo en Android:

-Building Android Apps with HTML, CSS and javascript.
CitarEs un libro para desarrollo de aplicaciones en android. La mitas habla de desarrollo web con javascript y Jquery para principiantes y usuarios con poca o nula experiencia y de desarrollo de aplicaciones nativas para Android con Phonegap o Android Estudio.
Recomiendo añadir a la lectura una guía avanzada de la instalación de Android Estudio que explique que versiones descargar (ya que no funciona con las más recientes) y como organanizar los directorios. Es bastante pesado.
Es un libro muy directo de unas 150 páginas, por lo que debes saber algo de programación básica para sacarle provecho, aunque no es necesario para realizar todo el proceso de crear una aplicación, virtualizar una aplicación y subirla a la store.

-Sams teach yourself Android Application Development in 24 hours.
Citar
Este libro se centra en las funcionalidades que te otorga el sistema Android y como sacarles provecho. Todo bajo el lenguaje de programacion JAVA y varias de sus librerías por lo que manejarse un mínimo con el lenguaje de programación es necesario. Cualquier desarrollador que quiera programar de forma freciente debería darle una oportunidad al lenguaje lider en Android. Recomiendo leer algún libro introductorio a Java y ojear alguno un poco más avanzado para poder aprovechar este libro. 512 páginas orientadas a controlar muchas de las funcionalidades básicas del dispositivo con Android.

-Pro Android Web Apps develop for android using html5 css3 & javascript.
CitarMuy práctico y conciso cumpliendo su objetivo.  382 páginas.



Desarrollo con C++:

-Apress Learn C++ for Game Development.
CitarExplica todo lo necesario para empezar a programar en C++. Lo mejor del libro es que va directo al grano. Todo se explica teóricamente. Es la clase de libro que no te deja con la duda de por qué esto es así? Tampoco se enrolla y las explicaciones son concretas y sencillas para no confundir al lector. No lo recomiendo como primera lectura para aprender el lenguaje, pero sí como segunda/tercera lectura. Va directo al grano asique el lector debe ser proactivo planteándose ejercicios, buscando información en la web y practicando con los ejemplos. Mi libro favorito de C++. 296 páginas.

-Curso de C++ offline de cconclase.com
CitarLo recomiendo como manual de referencia para empezar, pero no como un material para aprender a programar.
Te explica todas las keywords básicas del lenguaje con ejemplos pero no te enseña a programar. Muy útil para tenerlo de "libro de mano" mientras programas siguiendo otro libro.
195 páginas de pura información de cosas básicas.

-C++ Primer fifth edition.
CitarMuy buen libro que explica muchas cosas empezando por lo mas básico de todo. Muy detallado, muchos ejemplos, mucha teoría, práctica... Lo tiene todo para empezar. El problema que le veo es que tiene demasiado y podría ser contraprducente para un lector que solo busca hacer su primer programa para ver si C++ le gusta y le convence. Este libro lo recomiendo al 100% para todo aquel que ya lleva un poco programando, le gusta el lenguaje, ya hace sus mini-programas super sencillos y quiere aprender más.
Sirve perfectamente para empezar a programar desde 0, todo bien explicado y va al grano priorozando lo más útil para hacer un programa. 1400 páginas.



Criptografía:
-Applied Cryptography, second edition: Protocols, Algorithms and source code in C.
CitarSi no tienes ni idea de lo que es la Criptografía, los tipos de cifrados que hay y todo lo relacionado; este es el libro perfecto para empezar. Si sabes lo que es pero no sabes como funcionan, implementaciones, etc. Este es el libro perfecto. Lo mismo si eres un programador buscando implementar algún cifrado o crear el tuyo propio.
El libro te enseña las nociones básicas, protocoles y comunicaciones, técnicas, algoritmos, cifrados, keys, hashes, esquemas para idenrificar cifrados, políticas y mucho código de ejemplos. 100% recomendado. 1028 páginas.

-Cryptography and Network Security
CitarEste libro hace una breve introducción a redes y pasa directamente a cifrados. Tiene una conotación orientada en todo momento a la ciberseguridad. No es un libro para aprender a hacer tus cifrados, conocerlos en profundidad, etc. Es más bien un: Estes cifrados son útiles. Sus característocas son estas...
Una vez nos proporciona estas herramientas el libro deja la criptografía a un segundo plano y se centra directamente en ciberseguridad.
Muy buen libro para obtener conocimiento general y amplio sobre la ciberseguridad y la criptografía tratándolos como un solo elemento único e inseparable. 983 páginas.

-Criptography Enginering
Desing principles and practical applications.

CitarUse las palabras que use y las explicaciones que sean no voy a poder describir mejor el libro que el propio título. Diseño de cifrados y algoritmos y su puesta en marcha. Esta bastante orientado a crear el mindset de un futuro criptógrafo. 385 páginas.



Pentesting y Hacking:

-Anonity, Hacking and Cloud Computing Forensic Challenges
CitarDa igual lo bueno que seas hackeando. Si no conoces todos los elementos de este libro (y muchos otros) estás haciendo algo mal. Trata todo lo básico que prácticamente se ignora en todos los libros de "hacking". Ejemplos de terminos tratados:
MAC, DHCP, IP, Proxy, SSH, Cookies, User Agent, Url, Historial, Extensiones, Email, irc, contenido web, metadata, etica y leyes, maltego, nmap, ncat, nessus, openvas, kali, metasploit, armitage, aircrack-ng, handmade, wireshark, networkminer, redes, ataques, forensics...
Tan solo 64 páginas. Lectura obligada.

-Hacking, Computer Hacking, Security testing, penetration testing and basic security.
CitarHe dudado si listar este libro o no. Lo considero bastante poco completo y muy básico. He decidido listarlo por todos aquellos que quieran simplemente aprender como se hackea sin nada más. En este libro se explican algunos de los ataques más populares. Metodología para realozar ataques, y demás cosas en esa línea.
Solo lo recomiendo para aquellos con 0 experiencia que quieran hecharle un ojo al "hacking" aprender un poco más y ver de que va el tema sin profundizar en él. También es útil para todo aquel que sepa lo mínimo de internet y quiera entender un poco mejor el hacking para poder sentirse más seguro, detectar ataques a su pc y cosas básicas y frecuentes. O aquek que tenga su web y quiera conocer un poco más de que va el tema del hacking para saber si corren peligro.
134 páginas.

-Google Hacking for pentesters.
CitarGoogle es una herramienta potente de hacking. En este libro aprendes a buscar vulnerabilidades, ciertos tipos de páginas, a hacer búsquedas muy avanzadas y a precisamente protegerte de todo esto para que no seas víctima de esta herramienta que lo sabe todo :O
236 páginas.

-Gray Hat Hacking. The ethical hacker's handbook.
CitarMuy buen libro. La primera parte del libro te explica como se suelen realizar los pentest con equipos, las funciones de cada equipo, consejos para no tener problemas legales a la hora de hacer pentesting para una empresa, etc. En el resto el libro se convierte en un manual de exploits, vulnerabilidades, shellcode, y como buacar.vulnerabilidades. Muy concreto y bien explicado todo. Lo recomiendo para aquellos que les cueste entrar en el complejo tema de los exploits, arquitecturas, etc como una toma de contacto simple, práctica y entretenida. La primera parte del libro puede ser algo aburrida, sobre todo porque son conocimientos que se pueden deducir o presuponer sin necesidad de reincidir en ellos.
Sobretodo lo recomiendo para aquellos que les interese la ciberseguridad y quieran dar sus primeros pasos con las vulnerabilidades y los exploits. 721 páginas.

-Hacking: The art of exploitation.
CitarMuy buena continuación para el libro anterior. No recomiendo empezar directamente por este libro sin ningún conocimiento previo. También recomendaría saber algo de programación y manejo de memoria ya que el libro se basa en explotar vulnerabilidades como buffer overflows y sin conocimientos en programación ni en memoria es una locura. Si te intera mucho el tema pero no tienes conocimiento alguno te recomendaría leer todo el libro de C++ de Apress Learn C++ for game developers que explica muy bien temas de memoria. Y de paso aprendes algo de C++ que te va a ser útil para poder explotar vulnerabilidades. 214 páginas.

-Hacking: The art of explotation second edition.
CitarEn esta edición se centra más en la programación, instrucciones, ensamblador y menos en exploits concretos, si no en guiarte para hacer tus exploits y shells. Después te da un gran gran paseo por componentes de redes y por cifrados. Es muy difícil encontrar apilados tantos conocimientos diversos sobre el mismo subject en el mismo material. 100% recomendado.
Este libro no substituye el anterior. Son libros complementarios.  492 páginas.

-Mastering Kali linux for advanced pentesters.
CitarEs un sistema que no me gusta nada. Pero siempre veo preguntas muy básicas por el foro. En este libro vienen las respuestas para el 98% de las preguntas. El libro se centra en el uso práctico de las herramientas más comunes, por lo que puede serte útil incluso si no usas el sistema.
No explica la instalación de Kali Linux. Para eso ir dirextamente a la web oficial la cual tiene mucha info y un foro con preguntas recientes. 356 páginas.

-Metasploit Penetration Testing Cookbook. second edition.
CitarNo es un manual del software. En un manual de hacking con la herramienta. Buscar vulnerabilidades, exploits, etc.
321 páginas.

-Penetration Testing a hand's on introduction to hacking.
CitarEste libro te enseña de la manera que lo haría un amigo si este fuese un matado y profesional de la ciberseguridad. En plan: Te descargas esto, le das aquí y hackeas esto.
No lo recomiendo como primer libro precisamente por su eficacia. No quieres andar a jugar con cosas que sabes lo que hacen pero no como.
Es un libro que trata sobre métodos de pentesting y hacking básicos y eficaces sin rollos de por medio y termina con una buena introducción a exploits. El libro me parece una genialidad en cuanto a minimalismo se refiere. Con 531 páginas ya te puedes imaginar que toca varios palos.

-Rootkits subverting the windows kernel.
CitarEste libro va al detalle y se lo recomiendo a cualquier desarrollador de malware. Es de esos libros que aunque lleves 10 años desarrollando rootkits vas a aprender cosas nuevas.
Si no tienes ni idea de programación no te molestes ni en descargarlo. El libro es puro código. La gran pega es del 2005 pero con paciencia y google todo se extrapola. 363 páginas.

-The Shellcoder's handbook.
CitarMucho código y mucha vulnerabilidad. Mucha teoría y mucha práctica. Si te interesa el hacking de verdad es lectura forzada. No es el típico que te trae explicados 2 overflows a windows y 2 a unix y venga pa casa. Incluye múltiples vulnerabilidades a Solaris, Mac, Windows, Linux, debuggers, compiladores, multiples lenguajes, vulnerabilidades en lenguajes, redes, binarios, arquitecturas, desarrollo, bases de datos... Y todo muy muy bien explicado. 745 páginas para saberse de memoria 746.

-The art of software security assessment - identifying and preventing software vulnerabilities.
CitarEste aún  he empezado a hecharle un ojo hace 1 par de días. Tiene muy buena pinta y me veo en la obligación de recomendarlo.
Trae de todo, procesos del sistema, muchos lenguajes... Mejor hecharle un ojo. 1245 páginas.

-Practical Malware Analysis.
CitarEste tampoco lo he leído, pero tiene buena pinta. Debuggers, Anti-Reverse-Enginering... Tiene pinta de ser útil para desarrolladores de malware.
802 páginas. Cuando lo lea actualizaré la descripción.

-Get rich or die trying "Making money on the Web the black hat way.
CitarNo sabría como describir "esto". No es un libro al uso. Ni un manual. Ni teoría. Ni práctica. Es una recopilación de realidades? Noticias?
Digamos que si te faltan ideas, te van a sobrar.

-Hands On Bug Hunting for Penetration Testers.
CitarMuy buen libro para empezar. Es 100% web. Son las Vulnerabilidades típicas xss, sqli, csfr, data leaks, herramientas y creación de informes de reportes, etc. 240 páginas.

-The Antivirus Hacker's Handbook
CitarSe divide en 4 partes. Fundamentos de los antivirus; vease plug-ins, motor, firmas y actualizaciones. Evasion; escaners, heuristica, identificacion de la plataforma a atacar, DoS. Analisis y exploitacion, analisis estatico y dinamico, explotacion local y remota. Finaliza con tendencias en las protecciones de los antivirus y recomendaciones. 384 páginas.

-The Hacker Playbook 3 Practical Guide To Penetration testing
CitarMe gusta este libro porque es seguro que aprendas algo útil que no sabías. Enfocado a tecnicas para Red Team. Preparando la campaña. Preparando Servidores externos. Metasploit framework, Cobal Strike, PowershellEmpire, dnscat2, p0wnedShell, Pupy Shell, PoshC2, Merlin, Nishang, Nmap, Motores de busqueda, mappeo de red, parseo de certificados SSL, escaneo de subdominios, Github, Cloud, Emails, OpenSource, programas de Bug Bounty, Preparar una maquina para pentesting, los 4 tipos de XSS, XSS avanzado en node.js, inyecciones noSQL, remote code execution con javascript, SSRF, XXE, XXE-OOB, moverse por la red, MultiRelay.py, Busqueda de credenciales, CrackMapExec, Escalado de privilegios, Obtener credenciales de memoria, archivos del sistema y navegadores, Bloodhound/Sharphound, Ingenieria social, DoppelGanger, clonado de paginas, Phishing, Office, Ocultacion de payloads, ataques físicos de todo tipo, evasion de antivirus y deteccion en red, diseño de malware, ofuscacion, dropers, shells, dlls, bypass de white list de software, cracking, automatizacion, Post exploit analisis y creacion de reportes. 264 paginas

-The Web Application Hacker's Handbook finding and exploiting security flaws 2 second edition
CitarEste libro te aporta unos fundamentos imprescindibles en 21 capitulos en los que se trata lo más básico de las vulnerabilidades web. 10/10 para este libro, te explica un montón de cosas siendo conciso y organizado. Una breve introducción sobre que hace inseguras las aplicaciones web, mecanismos de defensa, tecnologias web, mappeo de la applicacion web, bypass, forms, cookies, http, parametros url, campos hidden, validacion y parseo, autentificacion, manejo de sesiones, control de acceso, contenedores de información, ataques a componentes back-end,  ataques a la lógica de la aplicación, inyecciones de js, html, css, cookies... Automatizacion, ataques a aplicaciones nativas, ataques la arquitectura, ataques a la aplicacion servidor, busqueda de vulnerabilidades en el codigo fuente, un monton de herramientas y unas 60 páginas dedicadas a toda la metodologia paso por paso. 914 páginas.



Desarrollo Web:

-Html&CSS desing and build websites.
CitarLo más básico y una buena introducción a HTML5. Tiene ejemplos con diseños realemente bonitos y coloridos con css3. El propio libro es una obra de arte. Minimalista, estético, útil, bien organizado, agradable y atractivo a la vista...
Vale la pena tenerlo tan solo como inspiración.
514 páginas

-El gran libro de html5 css3 y javascript.
CitarMuy bueno para aprender html de 0 con css y a integrar javascript. No es útil para aprender javascript como un lenguaje funcional. Aquí se trata como un complemento para html como la mayoría de libros, pero es un buen libro de diseño web y para aprender html. 377 paginas.

-javascript Tutorial www.Sohrabpoor.com
CitarBastante completo para aprender a usar javascript para trabajar con html y diseño web. 635 páginas.

-Eloquent javascript Third Edition A modern Introduction to Programming
CitarLibro muy completo sobre el lenguaje. El libro está orientado a enseñar los fundamentos del lenguaje. Si ya tienes una toma de contacto con otros lenguajes derivados de C este libro te enseña las peculiaridades propias de javascript. Valores, tipos de datos, operadores, expresiones, sentencias, bindings, funciones, bucles y control de flow, estructuras, objetos, arrays, abstracción, POO, bugs y errores, programacion asincrona, manejo e integracion con html, DOM, handlers, eventos, drawing con SVG, canvas, HTTP y formularios, node.js, NPM, modulos, comados, aplicaciones cliente/servidor... Incluye ejercicios y proyectos. 448 páginas.

-Programming 3D Applications with HTML5 and WebGL
CitarLibro muy completo para iniciarse en programación 3D web utilizando la etoqueta canvas y la librería WebGL. Tambien reserva unos temas para Three.js, CSS3, Desarrollo para mobiles y aplicaciones hibridas con Cocoon.js. El libro se divide en 2 partes. Fundamentos e introducción a todas las tecnologías citadas. Y tecnicas de desarrollo 3D como Modelado, Mappeo de texturas, Arte, formatos de archivos 3D, escenas, motores... 403 páginas.

-MySQL Cookbook.
CitarEl mejor libro para empezar con MySQL.
866 paginas.

-Web Animation Using javascript. Develop and desing.
CitarDesde animar un texto o hacer scroll de una página hasta algo de desarrollo 3D. 402 paginas.

-Learning PHP, MySQL, javascript & CSS 2nd edition.
CitarMuy completo, harás una red social con todas las funcionalidades de cualquier red social en el transcurso del libro aplicando todos los conocimientos aprendidos en el libro. 100% recomendado. 582 páginas.

-Learn PHP7 Object-Oriented Modular Programming using HTML5, CSS3, javascript, XML, JSON and MySQL
CitarUn libro muy práctico. Tiene 8 capitulos. Intro a PHP7. Interfaces, Plataformas, Contenedores y programación Tier3. Programación Modular. Seguridad en Interfaces de usuario. Manejo de excepciones. Manejo de data. Autentificación. Interfaces multifuncionales. Libro muy bueno como introducción a estos conceptos. Lo que más me gusta del libro es que te "invita" a hacer las cosas. Es un libro que prioriza aprender sin irse por las ramas. 308 páginas.

-javascript Programmer's reference.
CitarEl mejor libro para aprender a programar en javascript. 1035 páginas.



Lua:

-Programming in Lua second edition.
CitarMuy completo. Con todo lo imprescindible. También trata sobre como usar la api de C para Lua y como llamar a Lua desde C.
Junto al instalador de Lúa tiene la opción de descargar tutoriales y documentación. Con todos estos recursos es muy fácil iniciarse en el lenguaje.



Data Minning, Bots, analisis y manejo de data, etc:

-WEBBOTS, SPIDERS and SCREEN SCRAPERS A guide to developing Internet Agents with PHP/CURL 2nd edition
CitarNo hay muchos libros buenos sobre esta temática. El libro es muy agradable de leer y la forma en que se redactó asemeja bastante a un libro tradicional. El autor comenta bastante el panorama de los bots, su experiencia personal y muchos consejos útiles. Si te gusta la tecnología en general aunque no te interese este topic puede que te guste el libro. De los múltiples que me encontré sin duda este es el mejor. Trata principalmente sobre:Descarga de paginas web, parseo, envio de formularios de forma autónoma, manejo de grandes cantidades de data, bots monitorizadores de precios y tiendas, imagenes, verificacion de links, clasificacion y rankings, ftp, lectura y envio de emails, spiders, snipers, criptografia, autentificacion, manejo avanzado de cookies, scrapeo de páginas complejas con macros de navegador, deployment y escalado, desarrollo de bots y spiders silenciosos, proxies, diseño de páginas webbot-friendly, matar spiders, mantener bots fuera de problemas... 396 páginas.

-Data Mining Algorithms in C++ Data Patterns and Algortihms for Modern Applications
CitarEl libro se centra principalmente en el tratamiento de la información en busqueda de patrones que guarden relación con el contexto en el que se analice.  Un montón de código, información teórica y práctica, códigos, matemáticas, algoritmos... Es un libro complejobque requiera de conocimientos matemáticos. El libro es bastante teórico asique si no estás muy interesado en la temática no lo recomiendo. El código en general es bastante sencillo de entender incluso para programadores de otros lenguajes. Esta todo muy bien explicado. 296 páginas.

-Advanced Web Metrics with Google Analytics Third Edition
CitarLeí un buen trozo y de momento promete. Trae un montón de código para un montón de tareas muy diversas. Introducción sobre la relevancia que tiene entender el tráfico de tu Web para tu negocio. Precisión y metodología, logfiles, cookies, comparación entre proveedores, interpretación de la información, consideraciones sobre privacidad y leyes. Características de Google Analytics, beneficios y limitaciones. Interfaz de Google Analytics. Reportes. Configuracion. Implementación avanzada. Buenas prácticas. Customizacion. Utilización de la información obtenida para mejorar el sitio. Identificando y optimizando páginas, impacto del sitio y mejora de motor de búsqueda, integración de Google Analytics en software de terceros. Recomendación de más material sobre la misma temática. 618 páginas.



Siguientes:
Actualmente estoy leyendo varios libros sobre javascript (intermedio-avanzado). Y sobre las librerías three.js, webGl y D3.js. Para incluir en un par de proyectos. Recomendaré los mejores que encuentre sobre esta temática cuando los finalice.
#139
El campeón dice que su móvil de 3 años de antiguedad no necesita actualizarse porque es seguro y no tiene fallos debido a que las nuevas herramientas de hacking no se pueden instalar en su smartphone porque está desactualizado y hay incompatibilidad. Las antiguas herramientas que funcionaríam  y serían compatibles  con su software desactualizado ya no se usan, asique tiene el móvil más seguro de España.
La actualización según él es un invento de Mac para cobrar y forzar el gasto de datos en líneas móviles para llevarse comisiones de teleoperadoras. El hacking es un invento del sistema capitalista para manejar a políticos corruptos y así poder hacer parkings privados como el del Carrefour. Y los bug son porque las empresas que venden aplicaciones las estropean a propósito para repetir el ciclo de actualizar a propósito para gastar datos y pagarle a Mac que es quien pone los bugs en las aplicaciones.

Red escaneada: "VODAFONE_4122"

Sistema: "Android 4.4.2"

Nombre del host: "192.168.1.37"

IP: 192.168.1.37

Direccion MAC: 00:0f:00:00:00:00

Fabricante Adaptador de Red: Samsung Electronics

Sistema del dispositivo:
AndroidOS Android 4.4.2

Modelo del dispositivo:
LENOVO modelo exacto del cacharro.

UserAgents:
Dalvik/2.1.0 (Linux; U; Android 5.0.1; GT-I9505 Build/LRX22C)

Mozilla/5.0 (Linux; Android 5.0.1; SAMSUNG GT-I9505 Build/LRX22C)

AppleWebKit/537.36 (KHTML, like Gecko)

SamsungBrowser/2.1 Chrome/34.0.1847.76 Mobile Safari/537.36


Vulnerabilities(374):CVE-2016-5195,CVE-2015-6636, CVE-2015-6637, CVE-2015-6638, CVE-2015-6639, CVE-2015-6647, CVE-2015-6640, CVE-2016-0801, CVE-2016-0802, CVE-2016-0803, CVE-2016-0804,CVE-2016-0805, CVE-2016-0806, CVE-2016-0807, CVE-2016-0815, CVE-2016-0816, CVE-2016-1621, CVE-2016-0818, CVE-2016-0819, CVE-2016-0820, CVE-2016-0728,CVE-2016-1503, CVE-2014-6060, CVE-2016-0834, CVE-2016-0835, CVE-2016-0836, CVE-2016-0837, CVE-2016-0838, CVE-2016-0839, CVE-2016-0840, CVE-2016-0841,CVE-2016-0842, CVE-2015-1805, CVE-2016-0843, CVE-2016-0844, CVE-2014-9322, CVE-2016-2505, CVE-2016-2506, CVE-2016-2507, CVE-2016-2508, CVE-2016-3741,CVE-2016-3742, CVE-2016-3743, CVE-2016-2108, CVE-2016-3767, CVE-2016-3770, CVE-2016-3771, CVE-2016-3772, CVE-2016-3773, CVE-2016-3774, CVE-2016-3769,CVE-2016-2067, CVE-2016-2503, CVE-2016-3768, CVE-2015-8816, CVE-2016-3775, CVE-2017-0564, CVE-2017-0427, CVE-2014-9914, CVE-2016-10200, CVE-2016-2468,CVE-2016-2062, CVE-2016-2466, CVE-2016-2467, CVE-2016-2465, CVE-2016-2474, CVE-2016-2464, CVE-2016-2463, CVE-2016-2430, CVE-2016-2436, CVE-2016-2437,CVE-2016-2435, CVE-2016-2434, CVE-2016-2431, CVE-2016-2432, CVE-2015-0570, CVE-2015-0569, CVE-2016-2429, CVE-2016-2428, CVE-2015-1538, CVE-2015-1539,CVE-2015-3824, CVE-2015-3827, CVE-2015-3828, CVE-2015-3829, CVE-2015-3836, CVE-2015-3832, CVE-2015-3864, CVE-2015-3636, CVE-2015-3873, CVE-2015-3872,CVE-2015-3871, CVE-2015-3868, CVE-2015-3867, CVE-2015-3869, CVE-2015-3823, CVE-2015-6598, CVE-2015-6599, CVE-2015-6600, CVE-2015-3870, CVE-2015-6601,CVE-2015-3876, CVE-2015-6604, CVE-2015-6603, CVE-2015-3874, CVE-2015-3875, CVE-2015-6602, CVE-2015-3877, CVE-2014-9082, CVE-2015-6608, CVE-2015-6609,CVE-2015-6616, CVE-2015-6617, CVE-2015-6619, CVE-2015-6633, CVE-2015-6634, CVE-2017-0381, CVE-2016-8433, CVE-2016-8424, CVE-2016-8425, CVE-2016-8427,CVE-2016-8428, CVE-2016-8430, CVE-2016-8431, CVE-2016-8435, CVE-2016-8482, CVE-2016-8423, CVE-2015-3288, CVE-2016-8398, CVE-2016-8437, CVE-2016-8438,CVE-2016-8439, CVE-2016-8440, CVE-2016-8441, CVE-2016-8442, CVE-2016-8443, CVE-2016-8459, CVE-2016-8426, CVE-2016-8429, CVE-2016-8432, CVE-2016-8434,CVE-2016-8422, CVE-2016-8436, CVE-2015-5706, CVE-2016-6775, CVE-2016-6917, CVE-2016-4794, CVE-2016-5080, CVE-2016-8411, CVE-2016-8479, CVE-2017-0510,CVE-2017-0507, CVE-2017-0508, CVE-2016-3928, CVE-2016-5340, CVE-2016-0758, CVE-2016-7117, CVE-2016-3926, CVE-2016-3927, CVE-2016-3929, CVE-2016-6776,CVE-2016-6777, CVE-2016-6915, CVE-2016-6916, CVE-2015-8966, CVE-2016-9120, CVE-2017-0430, CVE-2017-0509, CVE-2017-0563, CVE-2017-0500, CVE-2017-0501,CVE-2017-0502, CVE-2017-0503, CVE-2017-0504, CVE-2017-0505, CVE-2017-0506, CVE-2017-0562, CVE-2017-0306, CVE-2017-0333, CVE-2017-0335, CVE-2017-0337,CVE-2017-0338, CVE-2017-0428, CVE-2017-0429, CVE-2016-8488, CVE-2017-0431, CVE-2014-9931, CVE-2014-9932, CVE-2014-9933, CVE-2014-9934, CVE-2014-9935,CVE-2014-9936, CVE-2014-9937, CVE-2015-8995, CVE-2015-8996, CVE-2015-8997, CVE-2015-8998, CVE-2015-8999, CVE-2015-9000, CVE-2015-9001, CVE-2015-9002,CVE-2015-9003, CVE-2016-8489, CVE-2017-0587, CVE-2015-7555, CVE-2016-10274, CVE-2016-10275, CVE-2016-9794, CVE-2016-10277, CVE-2017-0331, CVE-2017-0604,CVE-2017-0605, CVE-2016-10240, CVE-2017-0588, CVE-2016-10241, CVE-2014-9924, CVE-2017-0589, CVE-2014-9925, CVE-2017-0590, CVE-2017-0591, CVE-2017-0592,CVE-2014-9928, CVE-2014-9929, CVE-2014-9930, CVE-2015-9005, CVE-2015-9006, CVE-2015-9007, CVE-2016-10297, CVE-2016-10276, CVE-2014-9926, CVE-2014-9927,CVE-2014-9923, CVE-2014-9961, CVE-2014-9953, CVE-2014-9967, CVE-2015-9026, CVE-2015-9027, CVE-2015-9008, CVE-2015-9009, CVE-2015-9010, CVE-2015-9011,CVE-2015-9024, CVE-2015-9012, CVE-2015-9013, CVE-2017-0637, CVE-2017-7371, CVE-2014-9960, CVE-2016-9806, CVE-2017-0475, CVE-2017-0561, CVE-2017-0406,CVE-2017-0407, CVE-2017-0466, CVE-2017-0467, CVE-2017-0468, CVE-2017-0469, CVE-2017-0470, CVE-2017-0471, CVE-2017-0472, CVE-2017-0473, CVE-2017-0474,CVE-2017-0538, CVE-2017-0539, CVE-2017-0540, CVE-2017-0541, CVE-2017-0542, CVE-2017-0543, CVE-2016-2182, CVE-2016-8418, CVE-2016-10230, CVE-2017-0405,CVE-2016-10229, CVE-2016-10237, CVE-2016-10238, CVE-2016-10239, CVE-2016-8484, CVE-2016-8485, CVE-2016-8486, CVE-2016-8487, CVE-2017-0714, CVE-2017-0715,CVE-2017-0716, CVE-2017-0718, CVE-2017-0719, CVE-2017-0720, CVE-2017-0721, CVE-2017-0722, CVE-2017-0723, CVE-2017-0745, CVE-2017-0781, CVE-2017-0782,CVE-2017-0809, CVE-2017-0810, CVE-2017-0811, CVE-2017-11053, CVE-2017-9714, CVE-2017-0872, CVE-2017-0876, CVE-2017-0877, CVE-2017-0878, CVE-2017-13151,CVE-2017-13160, CVE-2017-11043, CVE-2016-3706, CVE-2016-4429, CVE-2017-6211, CVE-2017-13177, CVE-2017-13178, CVE-2017-13179, CVE-2017-13208, CVE-2017-0756,CVE-2017-0757, CVE-2017-0758, CVE-2017-0759, CVE-2017-0760, CVE-2017-0761, CVE-2017-0762, CVE-2017-0763, CVE-2017-0764, CVE-2017-0765, CVE-2017-7065,CVE-2017-8890, CVE-2017-11041, CVE-2017-11120, CVE-2017-11121, CVE-2017-0832, CVE-2017-0833, CVE-2017-0834, CVE-2017-0835, CVE-2017-0836, CVE-2017-0841,CVE-2017-11013, CVE-2017-11015, CVE-2017-11014, CVE-2015-9014, CVE-2015-9015, CVE-2015-9029, CVE-2016-10338, CVE-2016-10336, CVE-2016-10333, CVE-2016-10341,CVE-2016-10335, CVE-2016-10340, CVE-2016-10334, CVE-2016-10339, CVE-2016-10298, CVE-2016-10299, CVE-2017-0673, CVE-2017-0674, CVE-2017-0675, CVE-2017-0676,CVE-2017-0677, CVE-2017-0678, CVE-2017-0679, CVE-2017-0680, CVE-2017-0681, CVE-2017-9417, CVE-2017-13248, CVE-2017-13249, CVE-2017-13250, CVE-2017-13251,CVE-2017-13255, CVE-2017-13256, CVE-2017-13272, CVE-2017-13266, CVE-2017-18067, CVE-2017-15815, CVE-2017-17773, CVE-2017-13228, CVE-2017-13230, CVE-2017-15817,CVE-2017-17760, CVE-2017-14911, CVE-2017-15860
#140
No busco páginas como Facebook que están llenas de researchers y pagan 500$ si no estas páginas más amateurs que te dan merchandising tipo camisetas por encontrar bugs y no tienen tanto tráfico. Así puedo practicar mientras hecho una mano y recibo algún premio simbólico.
#141
Los planes de Pedro Sánchez para exhumar al dictador Francisco Franco suman desde este viernes un nuevo, e importantísimo, revés. La decisión del Tribunal Superior de Justicia de Madrid (TSJM) de desestimar la recusación del juez que, el pasado febrero, acordó suspender la licencia urbanística necesaria para exhumar los restos de Franco tiene un impacto más relevante de lo que parece en todo el proceso.

De forma resumida, y según avisan fuentes jurídicas: aunque el Supremo acabe autorizándolo, Sánchez no podrá exhumar a Franco si no cuenta con la preceptiva licencia urbanística para llevar a cabo las obras en la Basílica, y que, entre otras, consisten en retirar la losa de la tumba del dictador.

Paradójicamente, el procedimiento queda en el futuro en manos del Partido Popular. ¿Por qué? La licencia que ahora está suspendida fue firmada por el anterior equipo municipal de San Lorenzo de El Escorial, dirigido por una plataforma próxima a Podemos –Vecinos por San Lorenzo– con el apoyo del PSOE.

El juez, Yusty Bastarreche, rechazó dicha licencia urbanística destacando que las obras que el Gobierno de Pedro Sánchez pretendía llevar a cabo en el interior de la Basílica del Valle no podían ser admisibles por razones de seguridad. Según el magistrado, dichas obras para la exhumación de Franco obligarían a "remover unas losas de mármol, que a su vez tapan una losa de granito de, al parecer, 2.000 kilogramos de peso".

"Ello es de por sí algo complicado, difícil de manejar y por tanto peligroso por el riesgo evidente de caída, rotura o cualquier otro accidente que pueda ocurrir, y que a su vez pueda causar daños a las personas" que realicen las obras, argumentaba. En el auto, el juez destacaba además que debajo de la sepultura hay una cripta y, por tanto, "partes huecas", y que el movimiento de la losa podría "desestabilizar el conjunto". En conclusión, las obras no podrían ser realizadas al suponer un riesgo para la vida de las personas.

Con la actual licencia paralizada -aún de forma cautelar- Sánchez tendría que intentar conseguir otra si quiere exhumar a Franco. Y eso está en manos del nuevo Ayuntamiento, dirigido por el Partido Popular. Un revés para el dirigente socialista.
https://okdiario.com/espana/pedro-sanchez-esta-manos-del-pp-exhumar-franco-aunque-supremo-lo-autorice-4281693

Jajajaja, cuando prometía en el próximo mes lo sacaremos! Y ya va más de 1 año y tiene pinta de que no lo sacan de allí ni que resucite.
#142
La alcaldesa de Barcelona, Ada Colau, ha creado una 'Guía de comunicación inclusiva' en la que recoge una serie de expresiones que, a su parecer, reflejan mejor "la diversidad" de la sociedad. Entre otras recomendaciones sugiere que se sustituyan expresiones coloquiales como "¡Que te den por el culo!" por "¡Vete a freír espárragos!"

Pero la alcaldesa no pretende solo guionizar el lenguaje, sino que también quiere influir en la comunicación no verbal. Para la dirigente "los hombres tienden a ocupar mucho más espacio físico en el transporte público y usan más turnos de palabra", supuestas costumbres que Colau quiere evitar.

https://okdiario.com/espana/colau-edita-guia-comunicacion-que-no-hable-terrorismo-islamico-o-yihadista-4251567

Si has votado a Colau y no lo veías venir, será porque algún hombre te tapaba la vista en el bus.
Como está de la cabeza...
#143
Busco una app gratuita para transformar javascript html y css en apps para android. Quiero la app para el móvil para cuando no tengo el portátil a mano. Se que hay muchas, las que he probado son de pago, alguna gratuita?
#144
Fuí a abrir la tienda y me dejaran un portátil. Encendí el cacharro, y todo bien. Así acaba de cargar el sistema, pi apagón. Un pitido corto y se apaga.
Me pongo a mirar en el manual y era un problema de ram. El pc tenía un solo módulo ddr2, asiqie pienso, easiest job of all time... Le meto la ram, le doy a encender, me voy a por un refresco y escucho, pi. Meto los 2 módulos en la torre de la tienda, y todo perfecto.
Tras eso pensé, será algun problema de procesador o placa con las frecuencias o ciclos? Miré todo lo que me ocurrió. Nada de nada. Miré manuales, miré en todos los sitios y nada de nada. Busqué por googke y también me salia que era problema de la ram.
Todo parecía estar correcto. Miré el manual de la placa 20 veces.

Volví a buscar en google pero esta vez pieza por pieza a ver si alguien tenía algún problema similar con eses componentes y me encuentro lo siguiente:
CitarMedia Accelerator 4500MHD (en ocasiones llamado también GMA X4500 HD u otras combinaciones) es un adaptador gráfico integrado compatible con DirectX 10 en los chipset GM45, GE45 y GS45 de la plataforma Centrino 2 (Montevina). El chip no tiene memoria de video dedicada, pero toma memoria dinámicamente de la principal (hasta 384 MB).
Jajajaja, madre mía. El único componente del que no sospechaba... Un buen trolleo me pegó el pitido de la ram.
#145
Busco el más chungo que conoceis. Destos de darse cabezazos contra la pared. O de ejercicios difíciles.
#146
La Generalitat sólo ve falta leve en la profesora que pegó a una niña por pintar la bandera de España.

La consejería liderada por el ultra de ERC Josep Bargalló, asegura que "no se perciben motivos ideológicos de la docente"
El colegio de Tarrasa donde una niña fue agredida por una profesora se inunda de banderas de España

La Consejería de Educación de la Generalitat de Cataluña, dirigida por el ultra de ERC Josep Bargalló, defiende la actitud de la profesora denunciada por parte de una familia en Tarrasa (Barcelona), por agredir presuntamente a una niña en el centro educativo 'Font de l'Alba' después que esta pintase una bandera de España en su libreta.

Según la Generalitat "no se perciben motivos ideológicos de la docente" por su actitud frente a la bandera española ya que "también consideró que otros dibujos no se ajustaban a los criterios". Además, el gobierno catalán asegura que no hay "pruebas fehacientes de que se produjese agresión física".

El Departamento de Educación ha llegado a estas conclusiones basándose básicamente en el informe de la docente y un informe de la inspección de la Generalitat. También han analizado el parte médico y la denuncia que la familia de la menor presentó ante los Mossos, pero de estos dos documentos no han sacado conclusiones.

"Una mala praxis"

Si bien descartan que la profesora agrediese a la menor, lo que en última instancia responsabilizaría al gobierno catalán de los hechos como responsable civil subsidiario, si que estudiarán la actitud de la docente por romper el dibujo de la niña ante el resto de alumnos y dejarla sola en el pasillo del centro educativo.

La Generalitat considera que estas dos acciones, podrían constituir una falta leve por parte de la profesora, conocida en la localidad barcelonesa de Tarrasa por su militancia ultra independentista. Lo consideran "una mala praxis" y hasta que no se resuelva el expediente que le han abierto, la docente tendrá que estar acompañada de otra profesora mientras haga clase a sus alumnos. Teniendo en cuenta que el curso escolar finaliza hoy, la actitud de la docente raramente tendrá consecuencias para la mujer, más allá de las legales que pueda dictaminar la justicia en base a la denuncia familiar.

Fuente: https://okdiario.com/espana/generalitat-solo-ve-falta-leve-profesora-que-pego-nina-pintar-bandera-espana-4280982
#147
Foro Libre / Consejos aspecto gui?
19 Junio 2019, 11:37 AM


No me gustan nada varias cosas:
-Las dimensiones del borde superioir de la ventana.
-Los textos esos de clave de cifrado con el gris feo y las flechas cutres.
-El color de la ventana. (Quiero usar una foto de fondo así edito el aspecto y los colores con mucha precisión.
-Faltan bordes?

Está muy cutre. Qué le cambiaríais?
#148
Tengo un par de accesos directos dentro de un pendrive a sus respectivos binarios portables que también se encuentran en el pendrive.
Como pongo la ruta para poder acceder a los .exe independientemente de la letra de la unidad?

El problema es que tengo D:\\Carpeta1\Carpeta2\scite.exe
Claro, si meto otra unidad antes que esta, ya no es D, pasa a ser E
Y si lo meto en otro equipo a lo mejor es F o G.
Que ruta pongo?
Tambien necesito que la ruta sea compatible con la cmd, ya que es para abrir el intérprete de Lua.
#149
Me encontré un pendrive. Lo iva a meter en el pc, pero cada cierto tiempo hace un ruido como si fuese exactamente el click de un ratón.
Pensé que era por el cambio de temperatura que algo hacia un pequeño estallido. O que algo estaba suelto dentro. Pero los estallidos no siguen patrones.
Hace el click y al medio segundo hace otro click y no lo vuelve hacer hasta dentro de cierto tiempo. 
Wtf???

Idea de que es eso? Lo he sacudido fuerte varias veces y tanto por ruido como por tacto estoy 100% seguro que no hay nada que se mueva de forma no mecánica.

Teneis la más minima idea que puede ser? Cuando llegue a casa lo meteré en un pc del año de la polka para mirar el modelo exacto, lo que tiene, etc.
#150
Estoy haciendo una herramienta para administración remota, y me gustaría poder probar que todo funciona tras compilar sin necesitad de router, virtualización, uso de 2 equipos, etc.

Me preguntaba si había alguna forma de probarlo desde un solo equipo de forma rápida. Ya sea añadiendo algo al codigo, o algo modificando la configuración.
Ando haciendo muchos ajustes, y cada ajuste podría cargarse todo. Si tengo que pasarle a un amigo el servidor cada vez que realice un pequeño cambio, dejará de ser mi amigo. Jajaja.
A parte que es molesto tener que andar a mandar el bin cada vez que compile por no poder comprobar directamente que todo funciona.
Uso winsock2 C++ Codeblocks si esa info ayuda en algo.
#151
No hay ninguna regla en el .htaccess para usar el foro con http con alguna url que no redirija al https?
Estoy usando una versión modificada de Lynx https://github.com/kurtchen/Lynx/tree/master/src que no tiene soporte para https y no puedo entrar.
#152
Hola, estoy haciendo un programa que va a tener un montón de opciones y cifrados distintos.

Primer problema: Tengo un control EDIT de una linea por el cual quiero obtener el input del usuario en una variable int. Para posteriormente hacer la llamada al cifrado. De momento tengo los numeros en un string.
Me gustaría obtener los números directamente en un int desde el EDIT o hacer un cast del string en el cual ya los tengo a un int.
El into lo quiero para saber el número de vueltas que el usuario quiere aplicarle al cifrado Cesar.

Segundo problema: No sé como mostrar el resultado del cifrado de uno de los EDIT que tengo para ello.
Quiero mostrar el contenido del string en el EDIT.

A parte de eso voy a cambiar el tamaño de todo cuando se le de a maximizar. Creo que es bastante sencillo metiendo dentro del swtich (msg) un case con maximizar y dentro todas las ventanas con nuevos ajustes (Copio y pego las actuales y les multiplico w, x, y, z por el mismo numero y debería quedar todo más o menos igual pero más grande. Tendría que cambiar el tamaño de ka fuente de todas la letras.

También quiero detectar el tamaño/resolución del escritorio para redimensionar y que quede lo mejor posible independientemente de la resolucion. Actualmente se ve pequeña la ventana porque hice la gui en 800x600. Podría guardar el tamaño del escritorio en pixeles y hacer operaciones con esas variables para ubicar las ventanas y determinar su tamaño.

Quiero añadir scrollbars a los EDIT grandes. Me imagino que tengo que crear los scrollbars como un elemento independiente y pasarle los handler de los EDIT que quiero que manejen? Nada más no?

La gui la cambiaré, sobre todo colores. Y al maximizar también mostrare opciones avanzadas que no se ven con la ventana normal.

También quiero añadir un menu desplegable con opción para diversos cifrados y que al poner el cursor encima salga una descripción de cada cifrado. No sé muy bien cual es el control adecuado ni como implementarlo.

Tener la opción de aplicar diversos cifrados a la vez, creando un perfil para el usuario con sus ajustes, su convinación de cifrados, etc. En principio lo haría con archivos .txt a menos que exista otra forma de gestionar estos perfiles en la Api. Crear, abrir, borrar, guardar
Por ejemplo un perfil podría ser: Rot13 + Base64 + Rot13.
Asi un usuario que solo utilice el programa para hacer esta convinación de cifrados, no tiene que ir uno por uno aplicándolos. Sería muy molesto si tienes una convinación de 20 cifrados tener que aplicarlos todos uno por uno. Y lo mismo a la hora de descifrarlos.
La idea es añadir estos perfiles nombrados por el usuario en la lista de cifrados disponibles.
Por ejemplo yo elijo Rot13 + Base64 + Rot13 y le llamo Cifrado Manolo.
Pues en la lista desplegable tendría para elegir:
Cifrado Manolo
Cesar
Interseccion
Rot13
Base64
...
No sé exactamente como hacer esto ni como suelen hacerlo los programas.

De momento lo que me preocupa son el primer problema y el segundo. El resto más o menos podré ir haciéndolo a base de prueba y error y buscando en google. Lo comento por si sabeis alguna manera de implementarlo de una forma correcta o si mi approach es equívoco.

El proyecto va a ser grande. Tengo una lista de 200 cifrados distintos que iré implementando mediante funciones a lo largo del tiempo.
Cualquier consejo o cifrado poco común que querais ver lo agradeceré mucho.
El programa va a ser código abierto para que quien quiera lo despedace, use las funciones, haga un programa comercial o lo que sea.

Esa es más o menos mi idea. Cualquier recomendación o crítica será bienvenida.

Código (cpp) [Seleccionar]
/*
Proyecto compilado en:
C++11.
Code::Blocs 17.12
Other Linker Settings:
-lmingw32
*/

/*
Por anhadir:

-Mostrar resultado del cifrado en hwndEdit2.

-Obtener numero de vueltas del cifrado Cesar en int. O hacer cast de string a int.

*/


/*
Por anhadir
Lista de comandos:
-r Da la vuelta al texto.
-f Guarda automaticamente la salida en un fichero y lo abre. El nombre es elegido en
pantalla de bienvenida (Aun no implementada).
*/


/*
Lista de cifrados a incluir:

Cesar.
string CifradoCesar(string Texto, int Vueltas);

Interseccion.
string CifradoInterseccion(string Texto, int Vueltas, string Caracter);

etc.
*/


#include <string>
#include <iostream>
#include <windows.h>


using namespace std;

#define ID_EDIT 1
#define ID_BUTTON 2
#define ID_STATIC 3

std::string Texto_A_Cifrar = "";
string Vueltas_A_Cifrar = "";

string CifradoCesar(string Texto, int Vueltas);
string CifradoInterseccion(string Texto, int Vueltas, string Caracter); //Aun sin llamada

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);




int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{

MSG msg;
WNDCLASSW wc = {0};
wc.lpszClassName = L"Edit control";
wc.hInstance = hInstance;
wc.hbrBackground = GetSysColorBrush(COLOR_3DDKSHADOW);
wc.lpfnWndProc = WndProc;
wc.hCursor = LoadCursor(0, IDC_ARROW);

RegisterClassW(&wc);
CreateWindowW(wc.lpszClassName, L"CIFRADO CESAR",
  WS_OVERLAPPEDWINDOW | WS_VISIBLE,
  250, 170, 430, 390, 0, 0 , hInstance, 0);

while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

return (int) msg.wParam;

}


LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
static HWND hwndEdit;
static HWND hwndEdit2;
static HWND hwndEdit3;
static HWND hwndEdit4;
static HWND hwndButton;
static HWND hwndStatic;
static HWND hwndStatic2;
static HWND hwndStatic3;



switch (msg)
{
case WM_CREATE:
{
    hwndStatic3 = CreateWindowW(L"Static", L"VUELTAS CIFRADO ---->", WS_CHILD | WS_VISIBLE,
11, 338, 154, 16, hwnd, (HMENU)ID_STATIC, NULL, NULL);

hwndEdit4 = CreateWindowW(L"Edit", L"", WS_CHILD | WS_VISIBLE | ES_NUMBER ,
167, 338, 154, 15, hwnd, (HMENU)ID_STATIC, NULL, NULL);

    hwndStatic2 = CreateWindowW(L"Static", L"CLAVE CIFRADO --------->", WS_CHILD | WS_VISIBLE,
11, 318, 154, 16, hwnd, (HMENU)ID_STATIC, NULL, NULL);

hwndEdit3 = CreateWindowW(L"Edit", L"", WS_CHILD | WS_VISIBLE |
            ES_PASSWORD,
167, 318, 154, 15, hwnd, (HMENU)ID_STATIC, NULL, NULL);

    hwndEdit2 = CreateWindowW(L"Edit", L"Texto Cifrado.", WS_CHILD | WS_VISIBLE | WS_BORDER |
ES_MULTILINE | ES_WANTRETURN | ES_AUTOVSCROLL |ES_READONLY,
10, 154, 404, 160, hwnd, (HMENU)ID_EDIT, NULL, NULL);

hwndEdit = CreateWindowW(L"Edit", L"Escribe aqui tu texto a cifrar.", WS_CHILD | WS_VISIBLE | WS_BORDER |
            ES_MULTILINE | ES_WANTRETURN | ES_AUTOVSCROLL ,
10, 10, 404, 138, hwnd, (HMENU)ID_EDIT, NULL, NULL);

hwndButton = CreateWindowW(L"Button", L"ENTER", WS_VISIBLE | WS_CHILD,
333, 323, 80, 28, hwnd, (HMENU)ID_BUTTON, NULL, NULL);

            hwndStatic = CreateWindowW(L"Static", NULL, WS_VISIBLE | WS_CHILD,
11, 150, 402, 3, hwnd, (HMENU)ID_STATIC, NULL, NULL);
} break;


case WM_COMMAND:
{
if (HIWORD(wParam) == BN_CLICKED)
{
int VueltasEnInt = 0; //Vacia para siguientes llamadas.
int len = GetWindowTextLengthW(hwndEdit) + 1; //Longitud de texto a cifrar + null terminator.
wchar_t text[len]; //Array de chars unicode con la longitud del texto a cifrar.

GetWindowTextW(hwndEdit, text, len); //Obtener el texto en array.
//No funciona.  GetWindowTextW(hwndEdit4, VueltasEnInt);//Obtener int.

Texto_A_Cifrar.clear(); //Vacia el string antes de ser usado.

for (int i = 0; i < len; ++i)
{
Texto_A_Cifrar += static_cast<char>(text[i]); //Llena el string con chars.
}

/*
IGNORAR, Esto es solo un ejemplo para que me acuerda de hacerlo.

Usar find para buscar comandos despues de un guion en el texto introducido.
Guardar el comando en un char. Ejemplo:
char ReverseStr = '0';
char FileStr = '0';
Siendo el texto a cifrar "-r-fTextoDeEjemplo" ReverseStr = 'r';

if (Reverse != '0')
{
Dar la vuelta a Texto_A_Cifrar;
Guardar en Texto_A_Cifrar;
}

if (File != '0')
{
Pedir nombre de archivo de texto;
Guardar datos del cifrado en archivo de texto;
}

etc.
*/

//Eliminar null terminator de string para cifrarlo:
unsigned int TamanhoStr = Texto_A_Cifrar.length();
string Texto_Cifrado = "";
Texto_Cifrado.append(Texto_A_Cifrar, 0, TamanhoStr-1);



/*
Intento de cast de cada char a int.
No funciona porque suma los int.
Por ejemplo si el usuario escribe en el editbox de vueltas:
152
En vez de dar 152 vueltas al texto, se daran 1 + 5 + 2.
8 Vueltas. No se como solucionarlo.

for(auto iter = VueltasEnStr.begin(); iter != VueltasEnStr.end(); ++iter)
{
if (*iter > 48)
{

cout << "Contenido iter:" << *iter << endl;
VueltasEnInt += (static_cast<int>(*iter) -48) );
cout << "Vuelta en int:" << VueltasEnInt << endl;
}

}
*/


//Aplicar cifrado Cesar. Falta obtener vueltas.
//Asi sera la llamada: Texto_Cifrado = CifradoCesar(Texto_Cifrado,VueltasEnInt);
Texto_Cifrado = CifradoCesar(Texto_Cifrado,VueltasEnInt); //LLamada de prueba:
cout << Texto_Cifrado << endl; //Provisional para debug por consola
cout << VueltasEnInt << endl; //Provisional para debug por consola



/*Sin implementar. Muestra el resultado en Ventana con hwndEdit2
No se hacerlo. Se cambiarle el titulo a la ventana, pero no se cambiar
el contenido del EDIT.
Necesito cambiar L"Texto Cifrado." por el contenido de Texto_Cifrado*/

}
} break;

case WM_DESTROY:
{
PostQuitMessage(0);
break;
}
}
return DefWindowProcW(hwnd, msg, wParam, lParam);
}

//Cesar
string CifradoCesar(string Texto, int vueltas)
{
string TextoSalida = "";
for(auto iter = Texto.begin(); iter != Texto.end(); ++iter)
{
TextoSalida += (*iter + vueltas);
}
return TextoSalida;
}


//Interseccion
string CifradoInterseccion(string Texto, int Vueltas, string Caracter)
{

string Texto2;

for (int i = 0; i < Texto.size(); ++i)
{

Texto2 += Texto[i];

for (int i = 0; i < Vueltas; ++i)
{
Texto2.append(Caracter);
}
}

return Texto2;
}
#153
Es para ver el listado de todas las opciones posibles e ir probándolas. En el codeblocks no me salen.
En visual studio me imagino que los nombres de las cabeceras serán parecidos. A ver si alguien me puede mirar o sabe donde los puedo encontrar. Estoy mirando en Codeblocks\MinGW\Include

Encontré un ejemplo por google y lo estoy modificando para hacer mi programa mientras aprendo.
Para hacer la gui a mi gusto más o menos le he dado la forma que me gustaría a cada ventana. Le añadi 2 edit box y las hice multilinea y que el enter salte de linea usando las flags correspondientes. Despues puse 2 botones. Uno para enviar texto y otro para separar los 2 editbox. En el ejemplo venian las macros  de los ID_BUTTON e ID_EDIT definidos en el propio programa.

Ahora mismo lo que quiero hacer es substituir un EDIT por un control que muestre texto plano para mostrar el resultado del cifrado. Estoy usando provisionalmente otro EDIT mientras no encuentro los #define ID_LOQUESEA 111 para poder saber todas las opciones disponibles y elegir la que me convezca y la correcta para ello.
El mismo problema tengo con el boton que puse en el centro para hacer un separador entre los EDIT box para que quedase mejor. Si pudiese mirar los define buscaría algun borde adecuado para ello.

Después solo me faltaría buscar como obtener el input en un string para aplicarle el cifrado. Y como mostrar el string en el control adecuado. Esto aún no lo miré porque estoy intentando hacer lo anterior de substituir el boton y el editbox por un borde y un texto estatico o algo así.

Aquí dejo el código por si quereis compilarlo y ver la ventana para entender mejor lo que intento explicar.

Sé que no estoy usando los handlers correctamente para los botones y los edit box, de momento ni lo cambie. Lo puse de cualquier manera para ir probando y moldeando la ventana sin distraerme con otras cosas. Cuando acabe el programa repasare el código línea por línea dejándolo mejor formateado comentado, etc.

Código (cpp) [Seleccionar]
/*
Code::Blocs 17.12
Other Linker Settings:
-lmingw32 -mwindows
*/

#include <windows.h>

#define ID_EDIT 1
#define ID_BUTTON 2

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{

MSG msg;
WNDCLASSW wc = {0};
wc.lpszClassName = L"Edit control";
wc.hInstance = hInstance;
wc.hbrBackground = GetSysColorBrush(COLOR_3DDKSHADOW);
wc.lpfnWndProc = WndProc;
wc.hCursor = LoadCursor(0, IDC_ARROW);

RegisterClassW(&wc);
CreateWindowW(wc.lpszClassName, L"CIFRADO CESAR ASCII",
  WS_OVERLAPPEDWINDOW | WS_VISIBLE,
  250, 170, 430, 380, 0, 0 , hInstance, 0);

while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

return (int) msg.wParam;

}


LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
static HWND hwndEdit;
HWND hwndButton;
HWND hwndButton2;

switch (msg)
{
case WM_CREATE:
{
    hwndEdit = CreateWindowW(L"Edit", L"Texto Cifrado.", WS_CHILD | WS_VISIBLE | WS_BORDER |
ES_MULTILINE | ES_WANTRETURN,
10, 154, 404, 160, hwnd, (HMENU)ID_EDIT, NULL, NULL);

hwndEdit = CreateWindowW(L"Edit", L"Escribe aqui tu texto a cifrar.", WS_CHILD | WS_VISIBLE | WS_BORDER |
            ES_MULTILINE | ES_WANTRETURN,
10, 10, 404, 138, hwnd, (HMENU)ID_EDIT, NULL, NULL);

hwndButton = CreateWindowW(L"button", L"ENTER", WS_VISIBLE | WS_CHILD,
335, 320, 80, 25, hwnd, (HMENU)ID_BUTTON, NULL, NULL);

            hwndButton2 = CreateWindowW(L"button", NULL, WS_VISIBLE | WS_CHILD,
11, 150, 403, 3, hwnd, (HMENU)ID_BUTTON, NULL, NULL);
} break;


case WM_COMMAND:
{
if (HIWORD(wParam) == BN_CLICKED)
{
int len = GetWindowTextLengthW(hwndEdit) + 1;
wchar_t text[len];

GetWindowTextW(hwndEdit, text, len);
SetWindowTextW(hwnd, text);
}
} break;

case WM_DESTROY:
{
PostQuitMessage(0);
break;
}
}
return DefWindowProcW(hwnd, msg, wParam, lParam);
}
#154
Probe de bastantes formas y no lo consigo ni encuentro ejemplos. La ventana textbox va a ser hija de otra ventana. De momento la puse así para ver si la conseguí hacer funcionar pero no hay manera. El programa compila. Asique si no te compila puede que yo tenga algún fallo al escribir el código, porque lo acabo de copiar a mano con el móvil mirando por lo que tengo hecho en el pc.
Lo que quiero es que la ventana me permita escribirle dentro texto. Despues le pondré un boton para enviar el texto. Lo he intentado así pero no funciona. Despues quiero obtener el input del usuario y guardarlo en un string para trabajar con él. De momento tengo esto:

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

const char NombreDeClase[] = "LaClaseDeMiVentana";

LRESULT CALLBACK Ventana(HWND hVentana, UINT mensajeVentana, WPARAM wParam, LPARAM lParam)
{
   switch (mensajeVentana)
   {
         case WM_LBUTTONDOWN:
         {
          \\Me gustaria poder escribir en la ventana. No sé como.
         } break;

         case WM_CLOSE:
         {
         DestroyWindow(hVentana);
         } break;

        case WM_DESTROY:
        {
         PostQuitMessage(0);
        } break;

        default:
        {
        return DefWindowProc(hVentana, mensajeVentana, wParam, lParam);
        } break;
   }
return 0;
}

int WINAPI WinMain(HINSTANCE h_instancia, HINSTANCE h_sinUso, LPSTR p_cmd, int n_CmdShow)
{
WNDCLASSEX ClaseVentana;
HWND hVentana;
MSG MensajeVentana;

ClaseVentana.cbSize = sizeof(WNDCLASSEX);
ClaseVentana.style = 0;
ClaseVentana.lpfnWndProc = Ventana;
ClaseVentana.cbClsExtra= 0;
ClaseVentana.cbWndExtra = 0;
ClaseVentana.hInstance = h_instancia;
ClaseVentana.hIcon = LoadIcon(NULL, IDI_APPLICATION);
ClaseVentana.hCursor = LoadCursor(NULL, IDC_ARROW);
ClaseVentana.hbrBackground = (HBRUSH) (COLOR_WINDOW+1);
ClaseVentana.lpszMenuName = NULL;
ClaseVentana.lpszClassName = NombreDeClase;
ClaseVentana.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

   if ( !RegisterClassEx(&ClaseVentana) )
   {
   MessageBox(NULL, "Error Al Registrar \"ClaseVentana\"", "ERROR", MB_ICONEXCLAMATION | MB_OK);
   return 0;
   }

char* linea;

hVentana = CreateWindowEx(
WS_EX_CLIENTEDGE,
NombreDeClase,
"Titulo textbox",
WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_LEFT,
CW_USEDEFAULT, CW_USEDEFAULT, 200, 48,
NULL. NULL. h_instancia, NULL);

char szInput[MAX_PATH];

GetDlgItemText(hVentana,123, linea, 100);
GetWindowText(GetDlgItem(hVentana, 101), szInput, MAX_PATH);

  if (hVentana == NULL)
   {
   MessageBox(NULL, "Error Al Crear La Ventana", "ERROR", MB_ICONEXCLAMATION | MB_OK);
   return 0;
   }

ShowWindow(hVentana, n_CmdShow),
UpdateWindow(hVentana);

   while ( GetMessage(&MensajeVentana, NULL, 0, 0) > 0 )
   {
    TranslateMessage(&MensajeVentana);
    DispatchMessage(&MensajeVentana);
    }

return MensajeVentana.wParam;
}
#155
Estoy haciendo un cifrado Cesar. El descifrado muestra las 255 posibles opciones del texto y lo guarda en el string.

En la funcion despues de crear el string en el que guardare el texto uso nombredelstring.reserve(1000000);
Para tener espacio en el string.

Despues de guardar todo en el string uso
nombredelstring.shrink_to_fit();
Para ajustar el tamaño del string a sus necesidades reales.

El problema lo tengo despues de la llamada a la funcion en main cuando intento tomar datos por entrada con cin. Se me salta varios cin y no deja al usuario del programa introducir los valores.

El programa es muy sencillo. Lo pondre resumido.
Código (cpp) [Seleccionar]
string Funcion(string texto)
{
string textosalida;
  for (int vueltas =1; vueltas <256; ++vueltas)
  {
   textosalida += "\nDespues de este mensaje ves la opcion ";
        for (auto iter = texto.begin(); iter != texto.end(); ++iter)
        {
         textosalida += (*iter + vueltas);
        }
   }
return textosalida;
}

int main()
{
string blabla;
cout <<"bla bla";
getline(cin, blabla);

string texto = Funcion(blabla);
cout << texto;

int guardar =4;
//Aqui el problema:
cout << endl << endl << "pulsa 1 para bla bla bla" <<endl;
cin >> guardar;
//Se salta el cin anterior y entra en el siguiente if sin razon logica aparente.

if (guardar ==1)
{
cout << "Guardando en documento, pon el titulo" <<endl;
//getline...
}

cin.get()
return 0;
}

Suponí que era un error del buffer. Asique probe con cin.ignore(); Pero debe ser algun fallo de memoria o algo que no sé como solucionar.

En el ejemplo de meterle abc como texto a la funcion guarda lo siguiente en el string:
Despues de este mensaje ves la opcion abc
Despues de este mensaje ves la opcion bcd
Despues de este mensaje ves la opcion cde
...
Despues de este mensaje ves la opcion abc

Da 256 vueltas para mostrar todas las opciones posibles del texto cifrado para que ek usuario las mire y descubra cual era el texto original.
Por lo que el string puede ser enorme ya que va a multiplicar por 256 cualquier texto que introduzca el usuario.

A qué se debe el fallo?
Debería usar vectores de strings? O se puede hacer con un string?

Si necesitais el código completo, lo paso, pero poco más que eso es.

Como la salida es muy grande queria ponerle opcion para escribir en un documento de texto la salida y abrir el documento desde el programa para poder ver todas las posibilidades.
#156
Me gustaría que me recomendasen algún libro, curso, o web con ejemplos prácticos.

Actualmente estoy siguiendo:
- http://winapi.conclase.net/curso/index.php
- Version 2.0 of theForger's win32 Api tutorial.
- Introduccion a la programacion para windows con visual C++ Universidad de oviedo 2005
- Windows programming en.wikibooks.org
- Programaccion C++ en ambiente windows.

Todo lo que pruebo me funciona, pero al ser toda la documentación de hace muchísimos años no sé si abrá otra documentación más aconsejable. Otras formas más modernas de hacer las cosas etc. Uso codeblocks.
Muchas gracias.
#157
Siempre ando a hacerlo a mano y hecho mi tiempo asique hice una función sencilla que lo haga por mi.
Las abrá 100 veces mejores, sin fallos y más completas por ahí. Yo os dejo la mía para quien la quiera usar, o por si os apetece discutir sobre el código, como lo haceis vosotros, como mejorarlo, etc.

Hay 2 bucles for que tienen los numeros 25 y 80. Son la altura y la anchura por defecto que yo tengo en mi consola.Podeis cambiarlos por int ancho e int alto.
Si vais a aumentarla, abrir el programa con la consola máximizada, etc. Le poneis lo que corresponda, vais probabdo. Al hacer eso también abrá que cambiar el (j==79) por (j==nuevoAncho-1) y el (contador == 24) por (contador == nuevaAltura-1)
Se puede hacer con menos variables, sin llenar tantos strings y creo que hay variables sin usar en la segunda funcion. Si quereis optimizarlo genial.

Abajo de todo del código dibujé las salidas del programa por consola de cada función por si quereis ver exactamente lo que hacen antes de compilar el código.
También dejé un ejemplo creado en el main para verlo al compilar.

Código (cpp) [Seleccionar]

#include <iostream>
#include <string>

using namespace std;

string crearIntro(string escenariochar, string bordes, string bordesArriba, string bordesAbajo );
string anhadirTexto(string cadenaDelUsuario, string texto, int linea);


int main()
{
string mistring;

mistring = crearIntro("1", "|", "=", "_");
//cout << mistring; //Ejemplo de lo que hace.

mistring = crearIntro(" ", "|", "=", "_");
//cout << endl << mistring; //Ejemplo practico de funcion CrearIntro

mistring = anhadirTexto(mistring, "MI PROGRAMA DE CONSOLA!", 12);
//cout << endl << mistring; //Ejemplo practico de anhadirTexto

string textoDeMiprograma = "Pulsa enter para empezar.                                               ";
mistring = anhadirTexto(mistring,textoDeMiprograma , 23);
textoDeMiprograma = "                                                           Sunday,June 09,2019";
mistring = anhadirTexto(mistring,textoDeMiprograma , 2);

cout << endl << mistring; //Ejemplo practico de anhadirTexto

cin.get();
return 0;
}


string crearIntro(string escenariochar, string bordes, string bordesArriba, string bordesAbajo)
{
string escenario;
static int contador = 0;

for ( int i = 0; i < 25; ++i )
{
        for ( int j = 0; j < 80; ++j )
        {
            if(j == 79 || j == 0)
            {
if(contador == 0 || contador == 1 || contador == 24)
                {
if (contador == 0 || contador == 1)
{
escenario.append(bordesArriba);
}

else
{
escenario.append(bordesAbajo);
}
                }

else
{
escenario.append(bordes);
}
}

            else
            {
                if(contador == 0 || contador == 1 || contador == 24)
                {
if (contador == 0 || contador == 1)
{
escenario.append(bordesArriba);
}

else
{
escenario.append(bordesAbajo);
}

}

else
{
escenario.append(escenariochar);
}
}
        }
    ++contador;
}

contador = 0;
return escenario;
}


string anhadirTexto(string cadenaDelUsuario, string texto, int linea)
{
int tamanhocadena = cadenaDelUsuario.size();
int tamanhotexto = texto.size();
int mitadtamanhotexto = tamanhotexto/2;
int saltosDeLinea = linea;
string nuevaCadena = cadenaDelUsuario;
int diferenciaTexto;
int x = 80;
string vacio;

diferenciaTexto = x * linea;
diferenciaTexto -= -(40 - mitadtamanhotexto);

vacio.append(cadenaDelUsuario, 0, diferenciaTexto);
vacio.append(texto);
diferenciaTexto += tamanhotexto;
vacio.append(cadenaDelUsuario, diferenciaTexto, 2000);

return vacio;
}


/*
Ejemplo de llamada a crearIntro:

string mistring;
mistring = crearIntro("1", "|", "=", "_");

Primer parametro -> Llena la consola del caracter que le pongamos.
Segundo parametro -> Utiliza el caracter como borde.
Tercer parametro -> Utiliza el caracter como borde superior.
Cuarto parametro -> Utiliza el caracter como borde inferior.

En la llamada de arriba el resultado sera asi:

==================
==================
|1111111111111111|
|1111111111111111|
|1111111111111111|
|1111111111111111|
|1111111111111111|
|1111111111111111|
|1111111111111111|
|1111111111111111|
|1111111111111111|
__________________


*/

/*
Ejemplo de llamada a anhadirTexto:

string mistring;
mistring = anhadirTexto(mistring, "HOLA!", 6);

Primer parametro -> El string que tenemos de la otra funcion.
Segundo parametro -> El texto que queremos anhadir.
Tercer parametro -> La linea en la cual queremos poner nuestro texto.


En este ejemplo cambiamos el "1" por un espacio " " o un espacio "\ ".

string mistring;
mistring = crearIntro(" ", "x", "A", "*");
mistring = anhadirTexto(mistring, "MI PROGRAMA!", 5);

En la llamada el resultado sera asi:

AAAAAAAAAAAAAAAAAA     Linea 1
AAAAAAAAAAAAAAAAAA     Linea 2
x                x     Linea 3
x                x     Linea 4
x  MI PROGRAMA!  x     Linea 5
x                x     Linea 6
x                x     Linea 7
x                x     Linea 8
x                x     Linea 9
x                x     Linea 10
x                x     Linea 11
******************     Linea 12

*/
#158
Como puedo implementar en la funcion una distincion para saber si en la llamada a la funcion en main he puesto el int 97 o el char 'a' para que la funcion me saque por pantalla el numero 97 o la letra a?

Tal y como lo tengo, le puse un static_cast para sacar la letra a.
Pero quiero que si se busca el numero 97, me salga por pantalla el numero 97 no la letra a.
Como hago esta distincion para saber si en la llamada se está buscando la letra a o el numero 97?

Tal y como está ahora, si busco el numero 97 me dirá que ha encontrado la letra a.
Cuando yo lo que quiero es buscar si el numero 97 está en el array. Y si le quito el cast pues tendré el mismo problema al reves, buscaré la letra a, y me dirá que encontró el numero 97.

Código (cpp) [Seleccionar]
#include <iostream>
#include <array>
#include <algorithm>

using namespace std;
using MiArray = std::array<int, 10>;

MiArray primerArray = {0,1,2,3,4,5,'a',6,7,8};

void BuscarEnElArray(MiArray miArray, auto CosaAbuscar);

int main()
{
  BuscarEnElArray(primerArray, 'a');
  cin.get();

return 0;
}


void BuscarEnElArray(MiArray miArray, auto CosaAbuscar)
{
  MiArray::iterator found = find(miArray.begin(), miArray.end(), CosaAbuscar);
  if ( found != miArray.end() )
  {
       cout << "Encontrado: " << static_cast<char>(*found) <<endl;
  }
}


Me gustaría que fuese con un solo array para no tener que crear un array para cada tipo de dato distinto.
#159
Software / Netcat con archivos hasta 1994
7 Junio 2019, 07:00 AM
Me encontre el codigo fuente en C y el ejectuable recuperando datos de un disco que tenía por ahí. No se sí aún se puede encontrar por la web. Alguien lo quiere?
Archivos:

doexec.c       12kb    2004-12-28
gemeric.h       8kb    1996-07-09
getopt.c        23kb    1996-11-06
getopt.h          5kb    1994-11-03
hobbit.txt      61kb   1998-02-06
license.txt      18kb   2004-02-27
makefile           1kb   1997-11-28
nc.exe             60kb   2004-12-29
netcat.c           69kb   2004-12-29
readme.txt        7kb   2004-12-27

Me acuerdo del día que lo descargué pero no de lo que comí ayer. La nolstalgia.
No sé si lo descargé de un blog o de este mismo foro. A saber xD

Tengo más programas antiguos sin codigo fuente igual a alguien le interesa alguno por lo que sea. Por mirar alguna vulnerabilidad y esas cosas:
Compilador sfx 2.0.0.22
icon-editor.exe 5.12
iconxp.exe 3.31.0.0
everest 5.50.2100.0
Filezillaportable 2.2.0.0
Iconcreator.exe 1.0.0.1
Linx 2.8.3
Magic DVD ripper 7.0.0
Sardu 2.0.6.5
SetFsb 2007
Usbuntu live creator 1.5.1.84

Estes son todos entre el 2012 y 2014:
WinZip con keygenerator 17.5   1.18.0.3287
Filezilla portable 3.7.0.1
Ccleaner 4.0.1   2.0.0.0
Codeblocks 10.05
Devc++ 4.9.9.2
Lua editor 3.0.10.0
Lua version 5.1.4
Metasploit 4.6.0.)
Nmap 6.25    6.0.25.0
Noipduc 4.0.1
Notepadpp 6.3.3
Playclaw 2.1.0
Reshack 3.6.0
Sandboxie 3.74.0.0
SARDU 2.0.6.5
Speed fan 4.47
Teamviewer 8.0.18051.0
ThinVNC 15.0.0.591
Timecomx 1.3.2
Virtualbox 4.2.6.0
WANem 2.2.61.2
Winamp full 5.6.3.3234
Wireshark 1.8.7
Zone Alarm + Firewall 11.0.0.504
Universal Usb Instaler portable version 1.9.3.4

Si quereis alguno avisar y cuando tenga datos o me conecte al wifi lo subo.
#160
Estoy portando un juego de consola que hice hace tiempo a C++.

Estoy cambiando los enum por enum class del C++11 para poder añadir miembros con los mismos nombres y hacer el codigo más legible.

El problema es que acabo de cambiar casi todos los if else por switch, añadir menus etc. Asique ahora tengo que poner unos 300 static_cast a int, unsigned int, unsigned short int, etc.

Tengo que buscar todo el rato donde estan definidos todos los tipos de datos y es un horror de copia y pega. A parte el codigo ocupa más.

Hay alguna otra manera?

Se puede usar type aliases para que los static_cast<unsigned long long>(PersonajeEnMapa::Personaje) no me ocupen tanto en el código? Tengo varios static_cast en if y case y es una locura xD

Qué se suele hacer?
#161
Estoy haciendo una calculadora. Abro la ventana con tamaño pequeño y tengo los botones puestos por cordenadas. Encaja bien y tal.
Al darle a maximizar la ventana los botones acompañan hacia la esquina izquierda, pero queda feo porque la ventana es grande y los botonones pequeños. Entonces se ve 7 octavos de la ventana vacios y un octavo con los botones. Quedando una inmensa zona vacia.

Que haríais? Poner la ventana que no se pueda maximizar y ya.
Detectar que se maximiza la ventana para añadir alguna utilidad como un bloc de notas para apuntar cosas.
Un log con la información de todas las operaciones?
Reajustar los botones al tamaño de la ventana? Se vería feísimo no?
Limitar a cierto tamaño el tamaño máximo de la calculadora?

También me gustaría anclarla a la pantalla que se vea en primer plano siempre sin difuminarse cuando se haga click fuera de la calculadora. También que pille el primer click que se haga, y que no se necesite hacer un click previo para reactivarla/ traerla al frente.
Alguna idea de que tengo que utilizar para hacer esto? No sé como buscarlo. No me manejo nada con la api.

A parte de lo mencionado que más debería tener la calculadora que considereis práctico?
#162
Programación C/C++ / Gui para C++?
5 Junio 2019, 21:20 PM
Busco algo sencillo alto nivel para hacer guis para programas que ya tengo hechos. Con buena documentación etc.
Qt window está muy bien pero descartemos esa opción porque no me sirve por problemas de hardware e incopatibilidad con el sistema operativo windows modificado el cual estoy utilizando para desarrollar los proyectos. Los programas funcionan, pero el ide no. Por comodidad prefiero que no.

Se que SDL tiene varias bibliotecas externas para hacer guis pero las descarto. Poca documentación y todo se puede hacer directamente con Sdl. Tengo problemas con el hardware al crear renders. Y si uso renderización por software me da error de drivers. Los cuales no voy a instalar en el sistema.

Ahora ando con la api de windows que es una marabilla y seguiré con ella.

Solo quería saber si hay una opción MULTIPLATAFORMA que sea de verdad multiplataforma xD
No probe allegro ni smfl. Más alternativas? Qué aconsejais?

Y que api equivalente a windows se suele utilizar en Linux.
Algo de alto nivel? Si incluye sockets propios para web en la librería genial, si no busco alternativas.
A poder ser que esté bien documentada y no tenga que aprender a usar la biblioteca mirando el código fuente de la misma xD

Por ejemplo busqué el codigo fuente de una calculadora con botones en SDL y no debe haber 1 en toda la web xD Encontre botones en SDL y no me funciona ninguno por lo que comenté del problema de hardware y drivers del sistema. En cambio eso no pasa con la api de windows xD

La primera biblioteca que me permita hacer una calculadora con bonotes imitando una calculadora real, me la quedo xD Que me funcione en el sistema actual que es el que uso y voy a usar siempre para desarrollar.

#163
Este link muestra el icono: https://foro.elhacker.net/Themes/converted/images/icons/folder_open.gif

Este link tambien muestra el icono en vez de el codigo. view-source:https://foro.elhacker.net/Themes/converted/images/icons/folder_open.gif A parte muestra nombre del gif en titulo.

Este si muestra el codigo: view-source:view-source:https://foro.elhacker.net/Themes/converted/images/icons/folder_open.gif

Se que de la tercera forma veo el raw, pero de la segunda no debería ver el link en lugar de cargarse ka media?

Ando mirando todo el código y parece creado con algún framework o generado con algún software y se ha editado posterioirmente a mano?

Lo de poner t7263728 y u83638182 detras de los hilos y usuarios es para evitar usuarios y hilos del nombre /.../ etc?

Ando a mirar los sources, carpetas, etc por el foro aburrido xD
#164
Estaba haciendo un keylogger con windows.h y se me dio por intentar hacer un keylogger en SDL2 aunque parece que no debe ser fácil o directamente no se puede por como funcionan los eventos y el focus de la ventana.

Entonces en el programa hice lo siguiente para ocultar la ventana:
p_Ventana = SDL_CreateWindow("keylogger", ... , ... , ... , ... , SDL_WINDOW_HIDDEN);

Y en el linker añadí -mwindows para que no salga la consola y así ocultar el keylogger, y su ejecución.

Tenia un while infinito para comprobar pulsaciones. Entonces para cerrar el programa, al no poder verlo en pantalla, tenía que cerrar el proceso estaba usando el administrador de tareas.
Al compilar y ejecutar el codigo en codeblocks no me daba problemas. Pero al ejecutar directamente el .exe se lió buena. Me salió un process interrupts n/a.

Ahora no puedo ejecutar ningún .exe directamente sin que se cierre instantaneo. Ni los que tengo hechos desde hace tiempo.

Lo más curioso de todo es que el fallo permanece en el sistema tras reiniciarlo. Y es el minixp que se carga en ram tipo live cd. Ni siquiera tiene un archivo que se carge y pueda provocar esto al principio porque todo el trabajo  y programas están aislados en un pendrive.

Pensé, esto tiene que ser algún fallo gordo de la ram. Desenchufé el equipo para descargarla de todo y que se borrasen los residuos que pudiese tener.

Fallo de hardware? O de software? Cómo? Por qué?
Probaré en un rato otro minixp que tengo en una sd para saber si a afectado de alguna forma al software o al hardware.
Bastante raro.

#165
Como puedo hacerlo consumir menos recursos de cpu sin perder pulsaciones de tecla?
No quiero usar delay, wait, sleep ni nada parecido porque se puede saltar pulsaciones de teclas y a parte a pensas baja el uso de cpu.
Alguna solución buena?

El codigo es en plan:

while(true)
{
for (//tamanho maximo del log)
{
if ( teclainput() ) escribelog;
}
}

#166
Hay alguna forma? La idea es que al descargarse un archivo, se ejecute la creación de una unidad virtual con msdos, al terminar el proceso se reinicie el sistema y arraque directamente desde la unidad virtual creada,  y desde ahí cargar el firmware de la bios actualizado.

O podría hacerlo con un rotkit añadiéndole un módulo rollo hxd para modificar las particiones del disco, y el mbr para que se me carge directamente el msdos tras crear la unidad virtual y reiniciar?
El rotkit ya está actualemente en el sistema de pruebas y tiene opción para cargar módulos nuevos.
La maquina de pruebas también tiene wol asique no hay problemas en que el proceso se muestre.

#167
Criptografía / Criptodomingo.
2 Junio 2019, 09:36 AM
Compitan para ver quienes del foro sacan las más difíciles.
No todos los textos están en español para que no se resuelvan mediante frecuencia del abecedario español. Las respuestas son palabras en algún idioma. No usen citar para no

Ok ucrq vg qdugtxc

Nivel 1:
Ipmb

Nivel 2:
rmvsmysfp

Nivel 3:
4?:@?6@$0

Nivel 4:
amwkik

Nivel 5:
arum ftama

Nivel 6:
13 ¥3 15 IX

Nivel 7:
tJhcPtmXnW==

Nivel 8:
75 70 30 79 33 69 31 41 30 34 6c

Nivel 9:
5fwaWcZi2llmT

Nivel 10:
=atmWedmXetmGatmWedmXadmGatmWadmXedm

Nivel 1 pista - Emperador romano.
Nivel 2 pista - Que haría un romano con un teclado?
Nivel 3 pista - Debería buscar pistas en otro lado...
Nivel 4 pista - Esta alta la respuesta, como llego a ella?
Nivel 5 pista - Juan ingenieria. Ana gramatica.
Nivel 6 pista - Lo veo pero no lo entiendo.
nIVEL 7 PISTA - dEBE SER BASE64. nO?
Nivel 8 pista - Soy un cifrador de iberico, de pata negra. 6oink
Nivel 9 pista -  Este está bastante facil para ser el 9.
Nivel 10 pista - Es ovio lo que es. Demasiado obvio. Se me escapa algo.


Pongan el proceso que siguieron, no vale intuir la cadena original :D
f676e696d6f646f6470796273602c6564602e65647572766379644
------------------------------------------------------------------------------------------------------------------------



CRIPTODOMINGO 2:
El más fácil.

Nivel 1:
CitarJBXWYYI=
Nivel 2:
CitarAAAAB ABAAA AABAA ABBAB BABAB AABAA ABBAB ABAAA AAABB ABBBA
Nivel 3:
CitarAADX
Nivel 4:
Citar1a2ace0fc8b0dd58cb1c8d05af38a519
Nivel 5:
Citar[6:6:1:67:54, 6:6:2:67:19, 6:6:6:67:38, 6:6:4:67:50, 6:6:5:67:9, 6:6:3:67:38]
Nivel 6:
CitarIN2S
Nivel 7:
CitarYWSLBPASskAK/MEUntR57A==
Nivel 8:
Citar.-. . ...- - --.- ----- .-.. --. ..- -.- ..-. -
Nivel 9:
CitarDKTKSHINKLWKT
Nivel 10:
CitarcjRndWx1NW4zNTAxYzRwNTNuNjUwNzRwNjF5NjUzNzRqNjE0Nzk1NmZuNzEzNjFtNjUzNzg3NzA1NjEzNzU0NjVyNTRyNzMwNjFiNzU=

Pista 1: 64/2
Pista 2: Ba.con
Pista 3: ADFGVX
Pista 4: Clave:Abc
Pista 5: SSS A
Pista 6: (Un baile) - (Una de sus palabras)
Pista 7: Clave:1
Pista 8: (3*(2*((7*((2*2)*2))/2)/3)Morsas
Pista 9: Adios CESAR PRIMERO Adios.
Pista 10: No lo creo jeje.

Pongan el proceso que siguieron, no vale intuir la cadena original :D
a49j59a69j79n89e99i1b2o3l4n5e6s7a8p9
------------------------------------------------------------------------------------------------------------------------



CRIPTODOMINGO 3:
Google no me va a ayudar esta vez.

Las pistas no son obligatorias. Se puede resolver sin mirarlas. Es más divertido así.

Nivel 1:
alalolohohah

Nivel 2:
oadabiabcnabcdeabcdevabcdefnabcdefgeabcdefgiabcdefghibabcdefghij

Nivel 3:
1 12

Nivel 4:
1 12 123 1234 12345 1-crpdn 2-itog 3-omo 4-i0 5-0

Nivel 5:
xisoevifrruofeeerhtmowtuenon

Nivel 6:
1os3as7no 1d3m7u

Nivel 7:
10

Nivel 8:
ninguna unario ayunas -sjyaajoaijragjnaijna

Nivel 9:
n3 ub4 3 ub4 nub4 an3 b4 n3 u

Nivel 10:
omijsojirolnriancdaaadfa

Nivel 1 pista - Se me da bien leer entre lineas, aunque a veces entiendo las cosas al reves.
Nivel 2 pista - Cuando era pequeño me costo mucho aprender el abcedario.
Nivel 3 pista - Despues aprendí los números y así por fin pude aprender a ordenar palabras y letras.
Nivel 4 pista - A pesar de saber ordenar siempre fui muy desorganizado.
Nivel 5 pista - Mi siguiente clase fue de idiomas. En esa semana aprendimos lo básico. Letras, colores, numeros.
Nivel 6 pista - En esa época también aprendimos matemáticas. No se me daban bien hasta que vino un profesor substituto.
Nivel 7 pista - Siempre fui muy generoso y me gustaba usar una palabra cuando daba algo a otro compañero.
Nivel 8 pista - Cuando salía de clase siempre iba al bar con mi tío. Allí leía el periódico y completaba los crucigramas, el ajedrez, los sudokus...
Lo que más me gustaban era las sopas de letras y buscar las diferencias. Cualquiera de las 2 me valía.
No quiero que esta pista les confunda, la respuesta solo es una.
Nivel 9 pista -  Cuando me compraron mi primer ordenador, empecé a conocer palabras técnicas y gerga informática. Algunos de los primeros términos que me encontré fueron: OS, H4x0R, malware...
Pero ahí no se quedó todo. Me quedaba mucho más por averiguar. Me separé un tiempo de la tecnología. Pero ahora me he vuelto unir a ella.
Nivel 10 pista - Finalmente aprendí a usar algunos de los conocimientos previamente adquiridos para desentrañar misterios, encontrar soluciones y buscar respuestas. Obtener respuestas de repente se volvió facilísimo.
Sentí una gran satisfación y empecé una nueva semana viéndolo todo desde otro punto de vista.
Recordar que todo debería tener sentido. No se queden solo con lo más fácil jejeje. Lo pillas? JAJA
Siempre es mejor quitarse lo más fácil del medio antes de intentar centrarse en lo difícil.


Pongan el proceso que siguieron, no vale intuir la cadena original :D Disculpen si me repito  :silbar:
eo e te   s s vertidos a ena periencia. CQEEDLMDYUBE
russeoái_nux.

------------------------------------------------------------------------------------------------------------------------
eNoFwcuiQkAAANAPssiz0eIuRpJEEkPsjGYahMkzvv6eQ26dtcQyCCoIoQ+p5CE57ohbbLb3UyO7S1dwvDQev2aUHvaK+SVslIw6MUNVz587kkGp8MfkErV9WbkcBpL60lK3FFevuqOo1WOiYxj6OnYigDrRfr13ZhgjEjb1fjHpgxHp0C0bC7SqsKYe82+5yobmgCYgQ60MSHjOSyrzJhtkcWpSQp9yGtiEK/STtJi0Tn9Boyogq+ojvasEFBS1elFNP4yBAkWcmtPJgUn5A4voNEaWX696uQosn846I5uF87pvWiQgznjOFXPwxgEksfKzyhoPfmg4Yzvto6y3pYWGMIbFXCoaZ4+efMqb2PqJEHPsLm4RwHEbk5UaojHctyxXqfgoLPugvzqY4/kMGHjPpD5JyvNYHOaF5bvdFmV4RX//gqmERA==6xGbopzLv82bv5SbmFGbtU3Zm52dqtWYnZmLhZGen9Cb3BHbsd2Zkt2L1dWZop2drt2L
------------------------------------------------------------------------------------------------------------------------

Criptodomingo 4.
Comunicación cifrada.

Kelly y sus 10 amigos han montado su red de servidores. Descubrieron que alguien les estaba espiando porque sus mensajes privados estaban siendo publicados en internet por alguien ajeno al grupo. Tras discutirlo acordaron crear un cifrado para sus mensajes y que así el espia no pudiese averiguarlos.
Como no conseguian ponerse de acuerdo de que cifrado usar, decidieron de cada uno usar el cifrado que quisiesen y utilizarlo para cifrar el mensaje original y el destino. Por error también pusieron el tipo de cifrado que estaban usando en el propio mensaje.
Ana acaba de mandar un mensaje a Juan a traves de la red de servidores. Como Ana no se fiaba de la seguridad de los cifrados de sus amigos, entro en uno de los servidores de salida de la red y modifico su cifrado para que necesite una especie de clave y la oculto en el mensaje. El primer nodo de la red con el que se comunica Ana debe sacar la clave del cifrado antes de empezar a descifrarlo. Esa clave se la va a mandar al nodo de salida utilizando otra red distinta para que solo Juan que en este caso es el nodo de salida pueda descifrar el mensaje.

Ana está usando un programa que creo junto con el grupo de amigos y que se comunica con todos los servidores y les pregunta que cifrado quieren usar. Entonces cifra el mensaje y lo manda al primer servidor para que descifre su parte y lo distribulla al siguiente nodo de la red.
El espia intercepto el mensaje cifrado interceptando la señal que viaja desde el ordenador de Ana hasta el router de su casa pero no sabe como descifrarlo. Pagará 5000$ a quien lo descifre y se lo comunique. El mensaje cifrado se hizo viral y ha acabado aquí.

Juan es el receptor de este mensaje y el nodo de salida de la red. El mensaje se va descifrando de nodo en nodo. Cuando el mensaje llega a Juan prácticamente está descifrado. Pero Ana se aseguró que Juan no pudiese descifrarlo sin más. Asique indicó al primer nodo de la red que le enviase un sms a Juan con la clave oculta en el cifrado también le dio una pista, la clave son 23 caracteres. Así se quiso asegurar que ni sus amigos puedan descifrarlo.

I=6u1=1=1=T=16l1=1=1=A=M=R=O=F=120g=1=1=G23x=Q=O=1=1=1=S=D=A=Y=W=Y=R=O=P=G=Q=O=F=J=R=P=A=M24o
=L=E=N=1=1=1=G=E=S=F=V=S=D=W=W=K=L=W=E=W=F=K=S=B=W=U=A=X=J=S=V=G=U=G=F=T=28rS=K=W=1=1=1
=X=1=1=1=V=S=B=M=S=F=E=S=F=V=S=D=W=1=1=1=W=K=L=W=1=1=1=E=W=F=K=S=B=W=1=1=1=U=A=X=J=S=V
=G=1=1=1=W=D=A=E=A=F=S=F=V=G=1=1=1=D=G=K=1=32u1=1=W=K=H=S=U=A=G=K=1=1=1=U=S=E=T=A=S=F=V=
G=134m=1=1=D=G=K=1=1=1=F=M=E=W=J=G=K=1=1=1=H=G=J=1=1=1=K=M=1=1=1=J=W=H=J=W=K=W=F=L=S=U=
A=G=F=1=1=1=W=F=1=1=1=E=S=Q=M=K=U=M=D=S=K=1=1=1=W=F=1=1=1=W=D=1=1=1=S=T=W=U=W=V=S=J=A=
G=1=1=1=Q=1=1=1=H=G=F=A=W=F=V=G=1=1=1=M=F=1=1=1=W=K=H=S=U=A=G=1=1=1=S=F=L=W=K=1=1=1=
V=W=D=F=M=E=W=J=G=1=1=1=H=S=J=S=1=1=1=A=V=W=F=L=A=X=A=U=S=J=D=G=1=1=1=Q=1=1=1=D=G=K=
1=1=1=U=W=J=G=1=1=1=U=S=E=T=A=S=D=G=K=1=1=1=H=G=J=1=1=1=D=S=1=1=1=G=1=1=1=L=S=E=T=A=W
=F=1=1=1=U=G=F=1=1=1=K=M=1=1=1=W=K=H=S=U=A=G=1=1=1=H=J=W=U=W=V=A=W=F=V=G=1=1=1=S=1=
1=1=A=F=W=K=1=1=1=A=O=B=R=O=Z=S=1=1=1=S=G=H=S=A=S=B=G=O=X=S=1=1=1=Q=W=T=F=O=R=C=1=1=1
=Q=C=B=1=1=1=Q=S=G=O=F=1=1=1=Q=I=O=H=F=C=1=1=1=J=I=S=Z=H=O=G=1=1=1=O=1=1=1=V=S=Q=H=C=F
=1=1=1=X=L=Y=O=L=W=P=1=1=1=P=D=E=P=1=1=1=X=P=Y=D=L=U=P=1=1=1=N=T=Q=C=L=O=Z=1=1=1=N=Z
=Y=1=1=1=N=PD=L=C=1=1=1=E=C=P=D=1=1=1=G=F=P=W=E=L=D=1=1=1=L=1=1=1=R=Q=L=M=C=T=P=W=1=
1=1=U=I=V=L=I=T=M=1=1=1=M=A=B=M=1=1=1=U=M=V=A=I=R=M=1=1=1=K=Q=N=Z=I=L=W=1=1=1=K=W=V
=1=1=1=K=M=A=I=Z=1=1=1=B=Z=M=A=1=1=1=D=C=M=T=B=I=A=1=1=1=I=1=1=1=N=I=J=Q=W=1=1=1=M=a
=n=d=a=l=e=1=1=1=e=s=t=e=1=1=1=m=e=n=s=a=j=e=1=1=1=c=i=f=r=a=d=o=1=1=1=c=o=n=1=1=1=c=e=s=
a=r=1=1=1=o=c=h=o=1=1=1=v=u=e=l=t=a=s=1=1=1=a=1=1=1=E=u=s=t=a=q=u=i=o=1=1=1=M=a=n=d=a=l=
e= =e=s=t=e= =m=e=n=s=a=j=e= =c=i=f=r=a=d=o= =c=a=m=b=i=a=n=d=o= =e=s=p=
a=c=i=o=s= =p=o=r= =t=r=e=s= =n=u=m=e=r=o=s= =u=n=o= =a= =D=a=r=i=o= =Mandale este mensaje cifrad
o intercalando el simbolo = a Carlos Hola soy Ana, Mandale este mensaje a Braulio y dile que obtenga algo que no encaje en el cifrado, lo eli
mine del cifrado y se lo mande a Juan por separado. Juan averiguará que hacer con él.


SALTOS DE LINEA INCLUIDOS PARA LECTURA EN EL FORO
--------------------------------------------------------------------------------------------------------------------


Criptodoomingo 5
Todo en papel


Nivel 1: neuoiaseraiiviaid
Nivel 2: cetodal
Nivel 3: 2a9b15c19d
Nivel 4: eabcabraboabtabaabcaboabnabuaboabhabcaboabiabcabeabiabdab
Nivel 5: erreaetoene
Nivel 6: nqqmyuy
Nivel 7: eieiorfrcp
Nivel 8: dvhhd
Nivel 9: kilxvhzwli
Nivel 10: miwiqqkqca

Pista 1: Pronuncieixon
Pista 2: teclatabla
Pista 3: orden alfa
Pista 4: Parecido al anterior.
Pista 5: Peiesetea 5:
Pista 6: Cesar start 1 for each poss +1
Pista 7: desorden
Pista 8: uno = 00000, dos = 00001, veintiseis = 11001.
uno = a, dos = b, veintiseis = z. Tabla 90grados sentido horario desconversion mismo dicc y calculo posibilidades por x/26. Deducción final.
Pista 9: Del reves.
Pista 10: tabla 626 caracteres.





#168
Foro Libre / Qué visión tienes de la vida?
1 Junio 2019, 01:49 AM
Te has planteado alguna vez, algo que quisieras conseguir? Un pequeño objetivo? Una gran meta? En relación con la vida. Con lo que quieres? Contigo mismo. Con relación al resto? Qué visión tienes dek mundo? Como te gustaría que fuese antes de partir.
No es tu propia vida algo tan efimero y sin apenas relevancia en el mundo, que quizás la propia existencia debería ser enfocada en los demás? A mi no me gustaría irme de este mundo habiendo matado más vidas y destruyendo más entornos que los que pudiese salvar. Alguien opina lo mismo o alguna vez se lo ha planteado? Por qué explotamos todas nuestras capacidades en nosotros mismos y no en los demás? Nos quejamos del mundo en el que vivimos pero formamos parte y nos involucramos en en ese mundo que detestamos. Nos distraemos...

Quizás lo mejor que pueda hacer es dedicarme al 200% en algo que me permita ayudar a cambiar el mundo e intentar acercar el mundo actual a ese que quiero? Para que voy a dedicar tiempo a mi mismo, a mis caprichos personales o a mis inquietudes momentaneas si todo ss tan efimero y lo que haga es por complacer a este mundo egoista, formar parte de él... Se que la mayor felicidad la tendría si un día con 80 años me levanto de la cama y veo el mundo que quiero, o al menos que siguen en el las cosas que quiero que sigan en él.
Me daría mucha pena que un día me levantase y viese todo rodeado de edificos donde antes había una palmera con pajaritos. Y sé que todo sería culpa de un egoismo global y de no dedicar día y noche a esforzarme de verdad. A esforzarme hasta llorar, hasta que me doliese todo, para un día poder descansar tranquilo.
#169
Hardware / Discos duros estropeados.
31 Mayo 2019, 17:14 PM
Me encontré en mi vertedero de confianza dos hdd.

Uno externo usb y otro sata.

Abrí el sata wensterd digital y tiene la aguja atascada.

El externo usb infotronic hace fiesta de chispas al meterle corriente. Creo que es del cargador. Es el tipico de 12 voltios. Puede que el disco esté vivo? Me da miedito injustificado probarlo en el pc xD

Ni p**a de como puedo hacerlos funcionar de forma segura para recuperar lo que se pueda.
#170
Tengo esto hecho, la segunda imagen que cargo tiene 4 cuadrados a los que quiero rebordear y que cuando le haga click ejecuten diversos codigos. Alguien sabe como se hace?
estuve mirando por los ejemplos de Foo pero los del raton no me compilan. Y solo hay un ejemplo con cuadrados. Ando a ver si lo doy hecho pero se me complica. Tengo otro codigo hecho, pero solo se ven los cuadrados, no se como cargarlos encima de las imagenes.

Código (cpp) [Seleccionar]

#include <SDL.h>
#include <iostream>

using namespace std;

const short int ANCHO_VENTANA = 454;
const short int ALTO_VENTANA = 340;
const int TIEMPO_DELAY_IMAGEN_UNO = 3000;
const int TIEMPO_DELAY_IMAGEN_MENU = 5000;

SDL_Window* pVentana = NULL;
SDL_Surface* pSuperficie = NULL;
SDL_Surface* pImagen = NULL;

bool Inicializar();

bool CargarImagen();

bool CargarImagenMENU();

void Cerrar();

void CargarImagenEnMain();

void CargarImagenMENUEnMain();

//-------------------------------------------------------------------------------


int main(int argc, char* args[])
{
if (!Inicializar())
{
cout << "Error al inicializar en main" << endl;
}

else
{
CargarImagenEnMain();
CargarImagenMENUEnMain();
}

Cerrar();
return 0;
}


//-------------------------------------------------------------------------------


bool Inicializar()
{
bool inicializado = true;
if (SDL_Init(SDL_INIT_VIDEO)<0)
{
cout << "Error Inicializando Video: " << SDL_GetError() << endl;
inicializado = false;
}

else
{
pVentana = SDL_CreateWindow("RPG DRAGON",SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, ANCHO_VENTANA, ALTO_VENTANA,/*SDL_WINDOW_FULLSCREEN &&*/ SDL_WINDOW_SHOWN);
if (pVentana == NULL)
{
cout << "Error al crear la ventana" << endl;
}

else
{
pSuperficie = SDL_GetWindowSurface(pVentana);
}
}
return inicializado;
}

//-------------------------------------------------------------------------------

bool CargarImagen()
{
bool inicializado = true;
pImagen = SDL_LoadBMP("DragonRPGINTRO.bmp");
if (pImagen==NULL)
{
cout << "Error al cargar Imagen1" << endl;
inicializado = false;
}
return inicializado;
}

//-------------------------------------------------------------------------------

bool CargarImagenMENU()
{
bool inicializado = true;
pImagen = SDL_LoadBMP("DragonRPGMENU.bmp");
if (pImagen==NULL)
{
cout << "Error al cargar ImagenMENU" << endl;
inicializado = false;
}
return inicializado;
}

//-------------------------------------------------------------------------------

void Cerrar()
{
SDL_FreeSurface(pImagen);
pImagen = NULL;

SDL_DestroyWindow(pVentana);
pVentana = NULL;

SDL_Quit();
}

//-------------------------------------------------------------------------------

void CargarImagenEnMain()
{
if (!CargarImagen())
{
cout << "Error al cargar la imagen en main." << endl;
}

else
{
SDL_BlitSurface(pImagen, NULL, pSuperficie, NULL);
SDL_UpdateWindowSurface(pVentana);
SDL_Delay(TIEMPO_DELAY_IMAGEN_UNO);
}
}

//-------------------------------------------------------------------------------

void CargarImagenMENUEnMain()
{
if (!CargarImagenMENU())
{
cout << "Error al cargar la imagenMENU en main." << endl;
}

else
{
SDL_BlitSurface(pImagen, NULL, pSuperficie, NULL);
SDL_UpdateWindowSurface(pVentana);
SDL_Delay(TIEMPO_DELAY_IMAGEN_MENU);
}
}
#171
Voy a poner el codigo en respuestas al post dividido por problemas con cloudflare  :-\

Código (cpp) [Seleccionar]

/*Intento tomar el imput del usuario por consola C++,
crear un documento.html con javascript,
aplicarle la siguiente funcion javascript al imput del usuario
var cifrado = encodeURIComponent("imputDelUsuario");
escribir el resultado de la funcion javascript en el codigo fuente del documento.html usando
la funcion javascript document.write(cifrado);
obtener todo el codigo fuente del documento.html dentro de la variable string cifrar en c++
y usar find para buscar en el string que contiene el codigo fuente el resultado de la funcion
en javascript. Esto ultimo aun sin implementar. */

/*Problemas que tengo:
1 - document.write(cifrado) no me escribe el resultado de la funcion
encodeURIComponent("imputDelUsuario");
No entiendo por que.

2 - Quiero hacer el codigo portable y no conozco ninguna alternativa multiplataforma
a system ("start Documento.html"); para abrir el navegador por defecto con el documento.

3 - Esto forma parte de un proyecto bastante mas grande de librerias que utilizo entre
otras cosas para obtener geolocalizacion a traves del navegador y guardarlo en C++. Por
lo que alternativas en C++ que subtituyan la funcion encodeURIComponent() no son viables.
Tambien intento hacer la libreria para que me permita tener acceso a elementos de escritorio
desde javascript, como rutas de ficheros, etc.

4 - Esta funcion que no incluyo en este codigo tambien me esta dando problemas:
void abrir_nueva_pestanhaHTML(string url, string mensaje)
{
string nuevapestanha1 = "<a target=\"_blank\" href=\"";
string nuevapestanha2 = "\">";
string nuevapestanha3 = "</a>";
ContenidoH = ContenidoH + nuevapestanha1 + url + nuevapestanha2 + mensaje + nuevapestanha3;
}

Resulta que en la url del navegador se me anhade toda la direccion del archivo documento.html
en plan:
c:\\Carpeta\Carpeta2\documento.html\www.google.com en lugar de: www.google.com

5 - Con esta funcion tambien tengo problemas. Hago la llamada asi:
formateo_textoJS("blue", "18", "Courier, monospace");

La funcion es:
void formateo_textoJS(string colorFondo, string tamanhoFuente, string fuenteFamilia)
{
string fondo1 = "document.body.style.backgorundColor =";
string fondo2 = "\";";
ContenidoJ = ContenidoJ + startScript + fondo1 + colorFondo + fondo2 + finScript;

salto_lineaJS();

string tamanho1 = "document.body.style.fontSize =";
string tamanho2 = "px\";";
ContenidoJ = ContenidoJ + startScript + tamanho1 + tamanhoFuente + tamanho2 + finScript;

salto_lineaJS();

string fuente1 = "document.body.style.fontFamily =";
string fuente2 = "\";";

ContenidoJ = ContenidoJ + startScript + fuente1 + fuenteFamilia + fuente2 + finScript;
}

En el codigo fuente de documento.html todo es correcto, pero no sucede nada.
*/
#172
Hola tengo un string que me tiene almacenada una cadena con varios caracteres.
Quiero tomar los caracteres de 6 en 6 y almacenar cada grupo de 6 caracteres en un vector de strings.
Quedandome vector[0] 6 caracteres, vector[1] 6 caracteres...
Si la cantidad de caracteres del string no es divisor de 6 puede que me quede por ejemplo en
vector[5] 2 caracteres. Entonces en ese caso debo rellenar ese ultimo string dentro del vector para que contenga 6 caracteres. Lo estoy intentando hacer de varias maneras distintas y de ninguna lo logro.
Esto es lo que estoy haciendo ahora y tampoco me fuciona:

Código (cpp) [Seleccionar]

int complemento =6;
string cadenaDeCaracteres;
string dividir6;
int x = cadenaDeCaracteres.length();
int z =0;

while (z<x)
{
   for (int i=0; i<complemento; ++i)
   {
   dividir6 + cadenaDeCaracteres[i];
   }
   complemento+=6;
   vector.push_back(dividir6);
   dividir6="";
++z;
}

int a = vector.size();

while ((vector[a]).size() <6)
{
vector[a].append("0");
}


Ya me estoy liando la cabeza, me da errores de varias formas distintas.
estuve a prueba y error y no consegui sacar una funcion que haga lo que pido.
Es para un cifrado de binario a base64.
Gracias.
#173
https://www.pdfdrive.com/hacking-books.html
Muchos se pueden descargar gratis. Tambien hay otras categorias, muy buena web.
#174
Estaba buscando manuales de desarrollo de malware y me encontre esto:
https://tfetimes.com/wp-content/uploads/2015/04/hack.pdf
No tiene nada que ver pero lo estoy leyendo y me parece muy util con "hacks" para mejorar casos concretos de errores de programación comunes. Son en total 135 "hacks".

Un ejemplo:

Hack 52: Know When to Use _exit
The Problem: You are forking off a process and do some work and then
exit, without doing anything to the I/O buffers in the process. You can't use the
exit function because of the problems described in Hack 51.
The Hack: Use _exit.
The _exit function stops your program. That's all it does, stop the
program. It does not pass go, it does not collect $200. But more importantly it
does not flush any I/O buffers. All that happens when you call _exit is that
your process goes away.

This is very useful when you've forked of a process that has done it's work
and needs to stop. Remember exit flushes things and can cause all sorts of
trouble with shared files. The _exit call avoids this problem.
#175
Programación C/C++ / HTML5 y C++?
19 Mayo 2019, 02:07 AM
Estoy leyendo algunos articulos que hablan de usar HTML5 como salida gráfica para aplicaciones de escritorio en C++.
Otros articulos afirman que se puede utilizar C++ para modificar HTML5 como un archivo normal de texto, leerlo, escribirlo etc para acabar mostrandolo directamente en tu servidor.
Otros articulos enseñan C++ embebido dentro de HTML5 que te perimte añadir por ejemplo javascript para que los desarrolladores web puedan leer el javascript e ignorar el C++.
Otros enseñan aplicaciones en QT usando HTML5 y C++.

Hay muchos articulos que hablan de distintas posibilidades pero no encuentro ningún manual de referencia que hable de todas las posibilidades y/o como aprender a utilizarlas.

Sabeis algo al respecto? Algún libro, o algo detallado.

Seria genial poder hacer mis webs usando html javascript y c++ o usar html5 de gui para mis programas de escritorio.

No encuentro ningun manual o libro, solo articulos que hablan de la posibilidad o las caracteristicas con casos concretos. Sigo buscando a ver si encuentro algo.
#176
Quiero tener un registro de a quien le estoy resolviendo que.
Por ejemplo el usuario3 con ip 111.22.33.444 me pide que le resuelva el dominio google.com
Como puedo crear un perfil para que almacene ip y todos los dominios que ese usuario quiere resolver?

Algo en plan: usuario3.txt
Ip 111.22.33.444

Dominios:
google.com
yahoo.es

Básicamente es para identificar quien está realizando ataques de denegacion de servicio enviandome dominios aleatorios que no existen.
Me interesa saber de donde viene el ataque, pero no defenderme de sus ataques.

Alguien sabe como podría crear estos perfiles? Tampoco quiero cerrarle el acceso directo al servidor donde a parte de resolver dominios, tiene otros servicios a los que si quiero que acceda el atacante.

Lo que quiero es filtrar solo los ataques al servidor dns.

No quiero utilizar firewalls ni dnssec.

NO QUIERO ESTABLECER SEGURIDAD PARA PROTEGERME DE ATAQUES DE FORMA GENERAL.
No quiero protegerme de ataques similares que vengan desde otras ip, solo de una.

Alguien sabe?  :-\
#177
Como la ram hoy en dia es barata la podemos usar para todo tipo de archivos.
Pa que sirve esto?
La ram es mas rápida que el disco duro.
Se le ahorra trabajo al disco duro, esto hace que tenga mas vida util. Vamos, que te dura más tiempo.
Ahorras espacio en el disco duro.
Borras automáticamente archivos temporales que a algunos programas se le olvida borrar cuando los dejan de utilizar al apagar el pc.
Borras cache automaticamente al que no le suelas dar mucho uso cuando apagues el pc.
En muchos casos tenemos pcs con mucha ram que desaprovechamos.
Para discos SSD es una marabilla.


Se edita /etc/fstab
tmpfs    /tmp    tmpfs    defaults,noatime,mode=1777,size=4G    0    0
Puedes eliminar ",size=4G" si no quieres asignarle tamaño maximo a la unidad. Si lo borras permites que se llene la unidad a tope y no tendras espacio en la Ram. Recomiendo ponerle la cantidad de ram que nunca llegues a utilizar. Esto ya a gusto de cada uno.

En ese caso incluyo el cache de firefox en la carpeta /tmp/ que acabo de montar en la ram.
mkdir -p /tmp/ascodecache/firefox
rm -rf ~/.cache/mozilla/firefox
ln -s /tmp/ascodecache/firefox ~/.cache/mozilla/firefoz



Pa que no se vaia a tomar por culo al vaciar la ram se edita /etc/rc.local con:
mkdir -p /tmp/ascodecache/firefox  2> /dev/null
chmod -R 777 /tmp/ascodecache/firefox
Asi se crea la carpeta al encender el sistema.

Puedes montar en la ram la carpeta que quieras. Yo en este caso meti la carpeta cache de firefox.
Recuerda que lo que metas en la unidad que utiliza memoria RAM se va a borrar al apagar el pc.
#178
1-Qué fue lo primero que aprendiste relacionado con la informática? Detallalo.
2-A qué edad?
3-Que recuerdas con carinho aprender a hacer en esa época.
4-Que te motivó a aprender sobre informática?
5-En que estás interesado en este momento?
6-Que te gustaria aprender o hacer a medio plazo?
7-Que te gustaria poder realizar a largo plazo?


Mi caso:

1- Crear paginas web en html en un bloc de notas. Me regalaron un notebook cuando era adolescente. No tenia internet en casa. Era muy curioso y no tenia ni idea de como funcionaba internet. Buscando en el ciber lo promero que me encontre fue que las paginas web estaban hechas en Html. Me descarge un manual en el ciber y lo meti en un reproductor mp3 que tenia para escuchar musica. estuve meses en casa sin internet aprendiendo a hacer webs. Mas tarde descrubriria el DreamWeaver O.o lo que me llevo al css etc.

2. Tenia 12 años.

3. Como funcionaban las webs, hostings, dominios, redes, protocolos... Como funcionaban los archivos .iso a usar el daemons tool little para quemar la imagen de ubuntu, debian y arch linux. Aprender a seleccionar el orden de arranque en la bios y a configurar los sistemas operativos. Mas adelante instale mi primer lamp y lo puse online en el ubuntu server 12.04 la ultima version disponible en aquel momento. Que recuerdos. Aún tengo la imagen por pura nostalgia. xD

4. Llegar a entender como funcionaban las cosas me llevaba a poner todo en practica. Me iba encontrando problemas y resolviendolos. En la busqueda de resolucion de problemas me iba encontrando mas conceptos nuevos que quería entender.

5. Ahora mismo estoy a tope con C++ y todo lo relacionado con el estandar. Como esta todo implememtado internamente etc. Tambien estoy traduciendo al español todo el libro de C++ que cae en mis manos para ir asimilando conceptos y puede que pronto publique el documento. Por pronto entiendo menos de 1 mes, a menos que me encuentre algo muy interesante que tambien quiera traducir al español.

6. Me gustaria aprender a programar interfaces graficas sencillas con SDL2 y como manejar sockets en SDL_net y otras librerias de sockets para poder empezar a programar servidores sencillos para linux. Tambien me gustaria montar un nodo de salida en Tor pero creo que la situación legal en España no lo permite. Debo informarme al respecto.
Tambien me gustaria empezar a hacer malware sencillo con Lua y a manejar Lua_sockets.

7. Un rpg muy sencillo, servidores de todo tipo y un sistema operativo sencillo.

Tras contestar a las preguntas me doy cuenta de que gran parte de lo que quiero conseguir esta muy relacionado con mis primeros pasos. Será vuestro caso también?


#179
Foro Libre / Es posible vivir sin dormir.
15 Mayo 2019, 22:14 PM
Cualquiera pensará que no dormir durante tanto tiempo puede tener sus consecuencias, pero no es así para este hombre en la provincia central de Quang Nam que nunca se ha enfermado después de tanto tiempo de insomnio. Su incapacidad para dormir no sólo lo ha hecho famoso, sino que también representa un fenómeno milagroso merecedor de un estudio científico.

Thai Ngoc mejor conocido como Hai Ngoc cuenta que no ha podido dormir una noche desde que le dio una fiebre en 1973

https://www.planetacurioso.com/2012/09/07/gente-rara-un-hombre-que-no-ha-dormido-desde-1973/

Entre mis habitos esta el de no dormir por la semana y solo mecesito dormir unas 14/16 horas el fin de semana.
Alguien con habitos similares? Normalmente (ahora mismo estoy de baja laboral por un accidente tonto) trabajo por la semana y al llegar a casa me pongo a escribir, traducir documentos, estudiar, foros, juegos etc. Cuando me doy cuenta es hora de trabajar xD
#180
Dudas Generales / Ingeniería Social?
13 Mayo 2019, 03:29 AM
Con la importancia que tiene en la seguridad informática y el hacking, nunca se propuso, planteado o debatido acerca de un subforo en la categoría de seguridad informática de ingenieria social?
De poco sirve tener 200.000 medidas de seguridad en la web y host de un cliente si le llama la "Oficina de seguridad del internauta". De una encuesta demográfica, el servico tecnico para resolver una incidencia o un abogado de la propiedad intelectual que "magicamente" sabe sus datos personales y le insta a acceder a una web en la que están los datos de la infracción cometida para que pueda eliminar de su pagina web un contenido reclamado por la entidad demandante.

Tecnicas como phising, baiting, vishing, exploit de familiaridad, creación de escenarios ficticios, reclutadores falsos, afinidad expandida, sextorsion/catphising, thrashing, promociones y sorteos, ataques via sms, correo postal y cara a cara, lectura de lenguaje corporal y expresiones faciales...

Una de mis tecnicas favoritas es la de comprador a domicilio.
Buenas tardes, me llamo Juan, soy técnico electrónico en paro y actualmente me dedico a comprar dispositivos móviles estropeados para desmontarlos, vender las piezas y repararlos. Disculpe si le molesto que veo que estaba usted (segun horario, lugar y vestimenta completar frase.) cocinando. Tiene algun movil estropeado? Que no le quiero molestar. En cuanto le veas el movil en la mano dices, puff que mal está la cosa, (añadir discurso para dar pena y transmitir una situación social horrible y de que ganas casi nada haciendo esto, que lo haces por animarte y no quedarte en casa tirado) bueno, cuanto le debo? (Al no tener idea del precio y con los antecedentes de tecnico en paro, posiblemente te digan algo del estilo, nada no te preocupes, para sentirse una gran persona, util y que ayuda a un pobre hombre)
Y si no es así lo intentas de nuevo ofreciendo una cantidad irrisoria. En caso de tampoco funcionar, le preguntas directamente el precio que quiere. Tras esto le preguntas si tambien tiene tarjetas sd (mostrandole una en alto).
Usando software (y sin usarlo) podras obtener fotos y videos privados, circulos sociales, contraseñas, datos de formularios, contactos... De forma esporádica podras encontrar algún tipo de información acerca de actividades ilegales etc.
Al tener la dirección del delincuente y pruebas incriminatorias de actividades ilegales, infidelidades etc.
Pues poco más que decir.

Es importante conocer estas técnicas para poder protegernos a nosotros mismos, a nuestros amigos, clientes, conocidos o familiares.  ;D