Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Mensajes - Fox_Neo

#1
Criptografía / Re: Abrir PDF cifrado
14 Enero 2021, 20:20 PM
OK muchas gracias por las respuestas.
Cita de: EdePC en  8 Enero 2021, 18:31 PM
Libros académicos:
https://www.academia.edu/3500609/Redes_neuronales_conceptos_fundamentales_y_aplicaciones_a_control_autom%C3%A1tico

Según he leído por ahí: https://github.com/apprenticeharper/DeDRM_tools/issues/348#issuecomment-325195155
Parece que puede ser un error con el Adobe Digital Editions, ahí dicen que lo han desinstalado y de paso eliminado la clave del registro: HKEY_CURRENT_USER\Software\Adobe\Adept para después volver a instalarlo, luego si que les ha funcionado el plugin de calibre.

También veo que han eliminado carpetas que tengan que ver con Adobe Digital Edition en el %AppData% y en %LocalAppData% antes de volver a instalar ADE, quizá no sea necesario.


He realizado lo que se comenta y no se ha solucionado. Gracias por el enlace de este libro ;)
Cita de: tincopasan en  8 Enero 2021, 18:32 PM
varias cosas:
1) no hay forma de adivinar el cifrado si es que lo tiene
2) sería más facil de revisar con la muestra que intentar sobre algo desconocido.
3)¿el programa con el cuál lo ves, permite imprimir? si es así intenta con una impresora virtual a pdf

No, la protección no permite  ni imprimir, ni copiar texto seleccionado.
Cita de: EdePC en  8 Enero 2021, 20:10 PM
En el peor de los casos cuando ni siquiera permite imprimir, yo suelo capturar en imagen, FastStone Capture es muy bueno para esto, él permite hacer capturas con Scroll (va capturando mientras automáticamente va bajando a la siguiente hoja), al final se puede guardar como PDF ajustando el tamaño de hoja y márgenes para imitar al original.

- Opcionalmente al final se puede también usar algún OCR para hacer Searchable (buscable) el PDF. El Acrobat Pro 2017 y DC tienen buen OCR, otros prefieren Abby Fine Reader que también es bueno y más puntual.

Pero como este tema de Crypto supongo que tendrán que estudiar el cifrado utilizado XD

:laugh: Si también he hecho capturas de pantallas con el programa ShareX  y la verdad que va muy bien. El problema de esto es que  es una imagen y no se puede realizar búsquedas y lo más importante, a nada que amplíes  se distorsiona. También me intrigaba el hecho que estuviera protegido y no me dejara copiar.
Cita de: kub0x en  8 Enero 2021, 21:01 PM
Esto es foro elhacker no CSI ;D  :rolleyes:

No creo que este todo perdido, es software, y ese software descifra el contenido del libro por lo tanto se puede extraer de mil formas como dicen los compañeros.

Probaste el plugin DeDRM para calibre? Puede que consiga aprovecharse de un fallo estructural, por ejemplo, en tiempo de ejecucción con el Adobe Digital Editions abierto con el libro, quizá consiga extraer el contenido.

Si, he probado el plugin de calibre y me aparece el siguiente mensaje:
No se puede convertir Redes Neuronales. Conceptos fundamentales y aplicaciones a contr
Este libro está bloqueado con DRM. Para saber más sobre DRM y por qué no puede leer o convertir este libro con calibre pulse aquí:
https://manual.calibre-ebook.com/drm.html

Por lo que pone calibre es un software de código abierto, mientras que DRM  es cerrado. Si calibre permitiera abrir o ver archivos DRM, podría modificarse para usarlo como una herramienta para la eliminación de DRM, lo cual es ilegal según las leyes actuales. Recomienda comprar libros sin protección, a buenas horas me entero :laugh:. Bueno por lo menos he aprendido  un poco sobre este tema.
Muchas gracias por la ayuda.

#2
Criptografía / Re: Abrir PDF cifrado
8 Enero 2021, 18:02 PM
Nada no me ha dejado convertirlo con el calibre he probado a convertirlo a PDF y a docx y me ha dado el siguiente error:
calibre, version 5.9.0 (win32, embedded-python: True)
Error de conversión: Fallo: Convertido el libro 1 de 1 (Redes neuronales. Conceptos fundamentales y aplicaciones a contr)

Convertido el libro 1 de 1 (Redes neuronales. Conceptos fundamentales y aplicaciones a contr)
Conversion options changed from defaults:
  read_metadata_from_opf: 'C:\\Users\\Manu\\AppData\\Local\\Temp\\calibre_bho56sbg\\q_4tlb59.opf'
  output_profile: 'generic_eink'
  verbose: 2
Resolved conversion options
calibre version: 5.9.0
{'asciiize': False,
'author_sort': None,
'authors': None,
'base_font_size': 0.0,
'book_producer': None,
'change_justification': 'original',
'chapter': "//*[((name()='h1' or name()='h2') and re:test(., "
            "'\\s*((chapter|book|section|part)\\s+)|((prolog|prologue|epilogue)(\\s+|$))', "
            "'i')) or @class = 'chapter']",
'chapter_mark': 'pagebreak',
'comments': None,
'cover': None,
'debug_pipeline': None,
'dehyphenate': True,
'delete_blank_paragraphs': True,
'disable_font_rescaling': False,
'docx_custom_page_size': None,
'docx_no_cover': False,
'docx_no_toc': False,
'docx_page_margin_bottom': 72.0,
'docx_page_margin_left': 72.0,
'docx_page_margin_right': 72.0,
'docx_page_margin_top': 72.0,
'docx_page_size': 'letter',
'duplicate_links_in_toc': False,
'embed_all_fonts': False,
'embed_font_family': None,
'enable_heuristics': False,
'expand_css': False,
'extra_css': None,
'extract_to': None,
'filter_css': '',
'fix_indents': True,
'font_size_mapping': None,
'format_scene_breaks': True,
'html_unwrap_factor': 0.4,
'input_encoding': None,
'input_profile': <calibre.customize.profiles.InputProfile object at 0x055C48F8>,
'insert_blank_line': False,
'insert_blank_line_size': 0.5,
'insert_metadata': False,
'isbn': None,
'italicize_common_cases': True,
'keep_ligatures': False,
'language': None,
'level1_toc': None,
'level2_toc': None,
'level3_toc': None,
'line_height': 0.0,
'linearize_tables': False,
'margin_bottom': 5.0,
'margin_left': 5.0,
'margin_right': 5.0,
'margin_top': 5.0,
'markup_chapter_headings': True,
'max_toc_links': 50,
'minimum_line_height': 120.0,
'new_pdf_engine': False,
'no_chapters_in_toc': False,
'no_images': False,
'no_inline_navbars': False,
'output_profile': <calibre.customize.profiles.GenericEink object at 0x055C4D48>,
'page_breaks_before': "//*[name()='h1' or name()='h2']",
'prefer_metadata_cover': False,
'preserve_cover_aspect_ratio': False,
'pretty_print': False,
'pubdate': None,
'publisher': None,
'rating': None,
'read_metadata_from_opf': 'C:\\Users\\Manu\\AppData\\Local\\Temp\\calibre_bho56sbg\\q_4tlb59.opf',
'remove_fake_margins': True,
'remove_first_image': False,
'remove_paragraph_spacing': False,
'remove_paragraph_spacing_indent_size': 1.5,
'renumber_headings': True,
'replace_scene_breaks': '',
'search_replace': '[]',
'series': None,
'series_index': None,
'smarten_punctuation': False,
'sr1_replace': None,
'sr1_search': None,
'sr2_replace': None,
'sr2_search': None,
'sr3_replace': None,
'sr3_search': None,
'start_reading_at': None,
'subset_embedded_fonts': False,
'tags': None,
'timestamp': None,
'title': None,
'title_sort': None,
'toc_filter': None,
'toc_threshold': 6,
'transform_css_rules': '[]',
'unsmarten_punctuation': False,
'unwrap_factor': 0.45,
'unwrap_lines': True,
'use_auto_toc': False,
'verbose': 2}
InputFormatPlugin: PDF Input running
on C:\Users\Manu\AppData\Local\Temp\calibre_bho56sbg\6y0u3q9a.pdf
Converting file to html...
Traceback (most recent call last):
  File "runpy.py", line 194, in _run_module_as_main
  File "runpy.py", line 87, in _run_code
  File "site.py", line 82, in <module>
  File "site.py", line 77, in main
  File "site.py", line 49, in run_entry_point
  File "calibre\utils\ipc\worker.py", line 216, in main
  File "calibre\gui2\convert\gui_conversion.py", line 41, in gui_convert_override
  File "calibre\gui2\convert\gui_conversion.py", line 28, in gui_convert
  File "calibre\ebooks\conversion\plumber.py", line 1108, in run
  File "calibre\customize\conversion.py", line 245, in __call__
  File "calibre\ebooks\conversion\plugins\pdf_input.py", line 54, in convert
  File "calibre\ebooks\pdf\pdftohtml.py", line 83, in pdftohtml
calibre.ebooks.ConversionError: pdftohtml failed with return code: 1
Syntax Error: Couldn't find the 'EBX_HANDLER' security handler


Creo que es porque está bien protegido. :-\

Muchas gracias por la ayuda
#3
Criptografía / Re: Abrir PDF cifrado
6 Enero 2021, 19:35 PM
OK kub0x muchas gracias. Voy a ver que tal me va tu recomendación.
Salu2.
#4
Criptografía / Abrir PDF cifrado
4 Enero 2021, 09:26 AM
Hola a todos,
Espero que mi consulta esté en el lugar adecuado. Compré un libro electrónico de la editorial Pearson (Redes neuronales. Conceptos fundamentales y aplicaciones al control automático). El problema que tengo es que lo que compré tiene un formato ACSM y para verlo necesito un programa como el Adobe Digital Editions, y la verdad, es una auténtica mierd* de programa para mi gusto. Al abrirlo con este programa he visto que crea un archivo PDF  en una ubicación, he intentado abrirlo con un  lector de PDF normal (Foxit Reader) y me da el siguiente error:

Este documento ha sido cifrado por un controlador de seguridad incompatible

Tampoco tengo opción a copiar palabras del documento o partes de él para realizar mis resúmenes en Word, un auténtico fastidio, que si lo llego a saber me lo hubiera comprado en papel.

Muchas gracias.

Salu2
 
#5
Redes / Re: Duda con ejercicio de redes
15 Junio 2020, 16:34 PM
Ok muchas gracias por la ayuda me estaba volviendo loco :-\
Salu2
#6
Redes / Duda con ejercicio de redes
14 Junio 2020, 12:40 PM
Buenas,
Tengo una duda sobre un ejercicio de redes
"Se quiere utilizar 20 redes de área local con el máx número de host posibles y tiene asignada la red de clase B 150.90.0.0.
¿Cuál sería el primer host asignado en la primera subred?

Las respuestas son las siguientes:

a)150.90.1.1
b)150.90.8.0
c)150.90.8.1
d)Ninguna es correcta

A partir de estas respuestas considero que la opción más apropiada es la D, porque creo sería 150.90.0.1, ya que el 0 no se podría poner por ser el primer dígito así como el último...
No obstante, el solucionario me marca la opción C pero no entiendo por qué, ya que no encuentro lógica a que empiece por 8, no sé si se debe a que tiene una errata o yo no lo pillo...


¡Muchas gracias!

Salu2

#7
Muchas gracias rub´n y perdona la tardanza entre semana ando muy ocupado trabajando y no tengo tiempo de cacharrear.
Cita de: rub'n en  3 Febrero 2019, 20:20 PM

Un modulo bastante vulnerable por lo visto, dada su flexibilidad. habría que implementar comunicación SSL/TLS entre otras cosas...ya muchos fabricantes an actualizados módulos de bombilla parecidos, añadiendo autentificación TLS, info sobre POC explotando uno de estos módulos.
Bueno de esto todavía no tengo ni idea :huh:  más adelante cuando me funcione a nivel básico  el proyecto inicial os preguntaré como mejorar la seguridad ya que mi nivel de redes es casi nulo.

Un saludo y gracias.
#8
Gracias por la respuesta.
Cita de: rub'n en  3 Febrero 2019, 14:10 PM

Te tocaría también abrir los puertos en el router, port forwarding... claro esto es opcional, pero es mas cómodo, para que tu ip publica de servicio a tu aplicación por un determinado puerto en especifico.
Si efectivamente tengo un puerto configurado para que las peticiones que lleguen por ese puerto se envíen  a la ip del ESP8266.
Cita de: rub'n en  3 Febrero 2019, 14:10 PM
Claro, usa un dns dinámico como NO-ip o Dyndns,
Si ya había visto esa posibilidad  pero el problema que veía era para mantener la IP actualizada, porque si es en un PC puedes descargarte la aplicación de NO-IP.
Por lo que he visto es posible realizar la actualización mediante código ya que este dispositivo que se programa con arduino lo hace mediante Dyndns:
https://www.open-electronics.org/arduino-ddns-dynamic-dns/   

Ahora me toca ver como funciona su codigo y adaptarlo, muchas gracias por la orientación ;-)
#9
Gracias por leer mi duda.
Me gustaría saber cómo ciertos dispositivos conectados a una red WIFI doméstica puedes comunicarte con ellos desde un móvil que no esté conectado a la red Wifi doméstica.
Por ejemplo, un robot de limpieza tipo Roomba  que lo puedes controlar desde cualquier sitio. No entiendo cómo se produce la comunicación ya que es de suponer que la IP pública sea dinámica y por tanto no comprendo cómo una aplicación móvil se puede comunicar si la dirección IP cambia :huh:

Mi duda me viene porque estoy programando un módulo ESP8266-01, consigo comunicarme con el fuera de mi red Wifi siempre que conozca mi IP pública (y que tenga cobertura en mi móvil)  pero como cambie  mi IP pública adiós  comunicación.
Muchas gracias.

Un saludo.
#10
Cita de: srWhiteSkull en 14 Febrero 2018, 00:06 AM
Prescinde del while en el loop, no lo necesitas. La funcion loop siempre debe estar corriendo. Simplemente pon una condicion if está disponible el cliente y le envias la pagina, etc




El client.available() te indica cuando hay un mensaje del cliente disponible, debe ser por eso que la pagina se mostrará una vez y luego se quedara en blanco al entrar en el bucle while... la secuencia deberia ser:

Loop
   Existen cliente (!cliente) entonces mostramos la pagina, con la situacion actual del circuito
      cliente.flush()
      Existe mensaje (client.available()>0) entonces leemos e interpretamos el mensaje apagando encendiendo
      Fin Existe mensaje
   Fin existe cliente

[MOD] No hacer doble post, usar el botón "modificar" para añadir comentarios.

Vale muchas gracias tenías razón  ahora funciona correctamente también con un dispositivo externo a la red  todas las veces que le doy a apagar o encender.

Lo que no entiendo es por qué desde un dispositivo conectado a la red interna  funcionaba correctamente :huh:



Cita de: PalitroqueZ en 13 Febrero 2018, 21:38 PM
como tienes configurado el ESP8266 en el arduino respecto al router?

ip fija, dinamica? nombre del equipo, macaddress?

es decir cuando enciendes el servidor ¿cómo se engancha éste a la red?




El ESP8266 lo tengo configurado para que la comunicación sea por el puerto 80, y el puerto 80 del router esta configurado para enviar las peticiones a la IP del ESP8266 que es fija.

Mi IP pública es dinámica aunque lleva un mes sin cambiar así que la considero IP estática


El servidor  es el propio ESP8266 y se conecta  mediante esta instrucción
WiFi.begin(ssid, password);
Después de compilar, cargar el programa y dar corriente al ESP8266 se conecta automáticamente.

El código que por tanto de la siguiente manera:
#include <ESP8266WiFi.h>                    //Incluye la librería ESP8266WiFi
const char* ssid = "Nombre de Wifi";                  //Indicamos el nombre de la red WiFi (SSID) a la que queremos conectarnos.
const char* password = "contraseña";      //Indicamos la contraseña de de red WiFiWiFi
WiFiServer server(80);                     //Definimos el puerto de comunicaciones
int PinLED = 2; // GPIO2                   //Definimos el pin de salida - GPIO2 / D4
int estado = LOW;                          //Definimos la variable que va a recoger el estado del LED
int t1=0;
int t2=0;
void setup() {

  Serial.begin(115200);                     // configuracion del monitor serial del Arduino(para visualizar por la consola de Arduino)
  pinMode(PinLED, OUTPUT);                 //Inicializamos el GPIO2 como salida
  digitalWrite(PinLED, LOW);               //Dejamos inicialmente el GPIO2 apagado

  WiFi.begin(ssid, password);              //Inicializamos  la conexión del ESP8266 con la red WiFi
  Serial.printf("Conectando a la red: %s", WiFi.SSID().c_str());
 
  while (WiFi.status() != WL_CONNECTED) {  // Verifica el estado de la conexión del ESP8266 cada 0,5s hasta que conecta
    delay(500);
    Serial.print(".");                   
  }
  Serial.println("");
  Serial.println("WiFi conectada");        // Indica que el ESP8266 conectado con la red WiFi

  server.begin();                          // Inicia el ESP8266 en modo Station
  Serial.println("Servidor inicializado");

  Serial.printf("Utiliza esta URL para conectar: http://%s/n", WiFi.localIP().toString().c_str());//IP del ESP8266
}

void loop(){
if (WiFi.status() == WL_CONNECTED)                           //Esta parte no es necesaria se ha puesto para ver si
   {                                                          // el servidor se bloquea, si va bien cada 10seg muestra
      t1=millis();                                            // el mensaje
      if((t1-t2)>=10000)
        {
      Serial.printf("Conectado a la red: %s\n", WiFi.SSID().c_str());
       t2=millis();
       }
   }
  WiFiClient client = server.available();  // Comprueba si el cliente ha conectado con el ESP8266
  if (!client) {
    return;
  }

  Serial.println("nuevo cliente");         // Espera hasta que el cliente envía alguna petición
  //while(!client.available()){
  //  delay(1);
  //}

  String peticion = client.readStringUntil('\r');  // Lee la petición enviada al ESP8266 y se almacena en un string.
  Serial.println(peticion);
  client.flush();

  // Comprueba la petición
  if (peticion.indexOf('/LED=ON') != -1) {        //Si se dió al boton de la  pagina WEB encender LED=ON estará en el string de petición
    estado = HIGH;
  }
  if (peticion.indexOf('/LED=OFF') != -1){
    estado = LOW;
  }

  digitalWrite(PinLED, estado);           //Enciende o apaga el LED en función de la petición

  client.println("HTTP/1.1 200 OK");      //Envía la página HTML de respuesta al cliente
  client.println("");                     //No olvidar esta línea de separación
  client.println("<!DOCTYPE HTML>");
  client.println("<meta charset='UTF-8'>");               //para que en el servidor aparezcan tildes
  client.println("<html>");

      //Imprime el estado del led
  client.print("<h1>El LED está ahora: ");                 
  if(estado == HIGH) {
    client.print("ENCENDIDO</h1>"); 
  } else {
    client.print("APAGADO</h1>");
  }

      //Se crean enlaces para modificar el estado del LED     
  client.println("Presiona <a href='/LED=ON'>AQUÍ</a> para encender el LED<br>");
  client.println("Presiona <a href='/LED=OFF'>AQUÍ</a> para apagar el LED<br><br>");

      //Se crean cajas de comprobación (checkbox) para modificar el estado del LED
  client.println("<input type='checkbox' onClick=location.href='/LED=ON'> ENCENDER </input><br>");
  client.println("<input type='checkbox' onClick=location.href='/LED=OFF'> APAGAR </input><br><br>");

      //Se crean botones para modificar el estado del LED
  client.println("<button type='button' onClick=location.href='/LED=ON'> ENCENDER </button>");
  client.println("<button type='button' onClick=location.href='/LED=OFF'> APAGAR </button><br><br>");

      //Se crean botones con estilos para modificar el estado del LED
  client.println("<button type='button' onClick=location.href='/LED=ON' style='margin:auto; background-color:green; color:#A9F5A9; padding:5px; border:2px solid black; width:200;'><h2> ENCENDER</h2> </button>");
  client.println("<button type='button' onClick=location.href='/LED=OFF' style='margin:auto; background-color:red; color:#F6D8CE; padding:5px; border:2px solid black; width:200;'><h2> APAGAR</h2> </button><br><br>");

      //Se crea un único botón para modificar el estado del LED
  if(estado == HIGH) {
    client.print("<button type='button' onClick=location.href='/LED=OFF'> APAGAR </button><br><br>"); 
  } else {
    client.print("<button type='button' onClick=location.href='/LED=ON'> ENCENDER </button><br><br>");
  }
  client.println("</html>");
  delay(1);
  Serial.println("Petición finalizada");          // Se finaliza la petición al cliente. Se inicaliza la espera de una nueva petición.

}

Muchas gracias por la ayuda.

Un saludo.