elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... 24
31  Programación / Programación C/C++ / Re: Error en código para Piedra, Papel, o Tijeras (C++) en: 24 Enero 2023, 22:28 pm
Siempre recordá el uso del nombre de las variables en C++ debe tener notación húngara.

 :o Para nada; de hecho es más bien al contrario. No sólo no es necesario usar la notación húngara sino que prácticamente nadie lo hace. Se usaba dentro de Microsoft, y a veces por consistencia al programar con la API de Windows, pero nada más. Su uso jamás estuvo extendido fuera de ese ámbito, y es casi universalmente rechazada, motivo de burlas y abiertamente desaconsejada y criticada en el propio comité de C++ desde hace años. Incluso dentro de Microsoft ha quedado prácticamente en desuso en la actualidad.
32  Programación / Programación C/C++ / Re: funciones anidadas en C en: 24 Enero 2023, 02:58 am
Si se trata de optimizaciones del compilador, es difícil saber qué está pasando sin ver el código exacto, porque son muy específicas para cada caso.

En general, optimizaciones así de agresivas sólo son permitidas si: 1) estás haciendo algo indebido o que resulte en UB (por ejemplo, usar punteros no inicializados), ó 2) el compilador determina que el comportamiento "observable" del programa no se ve alterado. Por ejemplo, si llamas a una función y luego no haces nada "útil" con el resultado (como imprimirlo, guardarlo en un archivo, mandarlo por un socket, pasarlo a una función externa, etc.), el compilador es libre de omitir por completo la llamada si determina que la función tampoco hace nada que tenga un efecto observable.

Algo de lo anterior debe ser la causa. De lo contrario, y a menos que esté pasando por alto algo, no hay razón para que GCC te altere el código de esa forma.

¿Qué opciones activas en GCC? Si usas -O, -O2, etc., prueba a quitarla y ve el código generado. Otra cosa a probar, con fines de diagnóstico y para corroborar que GCC no sea el problema, es que la función que hace algo con el puntero esté definida en un archivo fuente (ojo, fuente, no de cabecera, pues la idea es que se compilen por separado) distinto a aquél en el que la invocas y declaras el puntero a pasarle. Sólo asegúrate de que la función use el puntero recibido para algo que tenga un efecto externo (puede ser algo tan simple como retornarlo tal cual). Si aún así hace lo mismo, puede haber algo mal en tu código, por lo que podrías probar a compilar, por ejemplo, con -Wall -Wextra, y tal vez incluso -Wpedantic. Técnicamente, la conversión entre punteros a funciones y punteros a objetos (los punteros "normales"), incluyendo void*, no es válida, y probablemente se te muestre un warning, pero dudo que eso cause el problema, porque esas conversiones son tan comunes que los compiladores normalmente las admiten y generan código correcto.
33  Programación / Programación C/C++ / Re: funciones anidadas en C en: 23 Enero 2023, 20:20 pm
GCC sí permite funciones anidadas, pero es una extensión al lenguaje específica de ese compilador y, llegados a ese punto, ya no estarías realmente programando en C sino en el dialecto GNU C.

Para algo en C estándar necesitas especificar qué es exactamente lo que esperas y por qué no usar una función normal. En la mayoría de los casos, este tipo de cosas son innecesarias y casi siempre hay mejores maneras de hacerlas. Sin más contexto, te diría que las formas obvias serían goto o setjmp/longjmp, pero está totalmente desaconsejado su uso, y tienen inconvenientes que casi siempre superan con mucho las posibles ventajas. Pero si explicas mejor lo que buscas, puede que haya alternativas mejores.
34  Programación / Programación C/C++ / Re: No funciona con la versión VS 202 en: 22 Enero 2023, 20:56 pm
Dado el tipo de error, lo que deberías postear es el contenido de SerialClass.h. Es casi seguro que ahí esté el problema. O cambia el parámetro de Serial::Serial a const char*, que de cualquier forma, independientemente de que compile o no, es lo correcto si quieres aceptar cadenas literales.
35  Sistemas Operativos / Windows / Re: ¿Que informacion envia Windows? en: 21 Enero 2023, 02:48 am
Hola, RayR

Puede que no, pero creo que si xd

Si tienes alguna referencia a esos datos te la agradeceria.

La forma en que funciona el sistema de diagnóstico y reporte de errores de Windows es algo compleja, y la información oficial está bastante dispersa, pero aquí se explica lo que se puede enviar cuando hay errores del sistema: https://learn.microsoft.com/en-us/troubleshoot/windows-server/performance/memory-dump-file-options

en Windows 10, el tipo de volcado predeterminado es el Automático, que es casi igual al de memoria del kernel.

Más interesante es lo que pasa cuando es una aplicación la que produce el error. De forma general se recogen datos parecidos a los de los errores de sistema: pila de llamadas, lista de módulos cargados y handles del proceso, estado de los registros, instrucción que provocó la excepción, etc. Lo llamativo en cuanto a la privacidad es que Windows 10 ya ni siquiera pregunta: con la configuración predeterminada, cuando un programa termina de manera inesperada, de forma automática y silenciosa se crea un reporte que es enviado a los servidores de Microsoft (a menos que el programa solicite que no se haga). Y el programa en cuestión puede pedir a Windows que anexe al reporte cosas adicionales como volcados de bloques específicos de memoria o archivos. Las empresas de software pueden registrar sus aplicaciones con Microsoft y así tener acceso a estos reportes, entre otras cosas. Si somos paranoicos, notaremos que, dado que es Windows el que recaba y envía los datos, esto permite que, sin siquiera acceder directamente a internet, los programas puedan enviar información más o menos arbitraria de manera indirecta... XD

Nah, la verdad es que exagero. El mecanismo es más complicado que esto, y aún si el programa solicita el anexo de datos extra, se requiere algún paso adicional para que sean realmente enviados. Y para acceder a esto, como decía, hace falta registrarse con Microsoft y proporcionar datos de contacto personales, de empresa, etc. Obviamente no es imposible falsificar esa información, pero es arriesgado y, como digo, no tan simple como pareciera, por lo que veo poco probable que pase. Y no es tan difícil saber si un programa está husmeando en directorios o archivos indebidos. De todas formas, esto puede ser una razón adicional para no ejecutar cualquier programa que se descarga uno de internet.
36  Sistemas Operativos / Windows / Re: ¿Que informacion envia Windows? en: 18 Enero 2023, 01:43 am
Es bueno ser precavido y tener un poco de paranoia, pero sin exagerar. Seguramente Microsoft recolecta más información de la estrictamente necesaria, pero yo no me alarmaría. A diferencia de Google o Facebook, ellos no son una empresa que dependa de la publicidad. Sus negocios principales, y que son los que más dinero le dejan por mucho, son servicios empresariales en la nube, suscripciones de Office y cosas por el estilo, y por las que la gente paga. Realmente no tiene un gran incentivo en la actualidad para espiar excesivamente a los usuarios (palabra clave: "excesivamente", porque yo creo que, en mayor o menor medida, la mayoría de las empresas lo hacen), arriesgándose a sanciones, multas y demandas, cuando la publicidad no es ni por mucho una de sus áreas esenciales.

(Todos sabemos que de diagnostico no tienen nada) queremos que Win10/11 envie a Microsoft?

No es así. Por lo menos una buena parte de lo que se envía sí que es información de diagnóstico que puede ser bastante útil para los desarrolladores. Es difícil saber exactamente qué datos se mandan, pero sí se sabe con precisión que incluye esto: información del hardware, consultas hechas en la barra de búsqueda de Windows, información de varias actividades de Windows (búsquedas de actualizaciones, por ejemplo), como el tiempo que tomaron, la fecha y hora, el resultado, códigos de error si los hay, etc., y creo que también la frecuencia con que ejecutas ciertas aplicaciones, aunque no estoy seguro de si esto sólo lo hace cuando eliges el envío de datos opcionales.

Además de lo anterior, cuando los reportes se generan en respuesta a un error de sistema o de alguna aplicación, hay bastantes cosas más que pueden ser enviadas, aunque esas ya no dependen totalmente de la configuración de datos de diagnóstico general, sino que influyen otros factores, pero no sé si también te interese saber sobre eso.
37  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Borrar temas en: 11 Enero 2023, 19:47 pm
En cuánto al tema de Spotify que lo borraron no lo sabía pero debe ser porque esa operación que quiere hacer el usuario puede atentar con las políticas de privacidad y uso de ese software/plataforma, en otras palabras puede ser ilegal por usarlo de manera engañosa.

Difícilmente. Obviamente, todo eso ya lo había pensado cuando escribí: "no se me ocurre ninguna razón medianamente razonable o inteligente para haber borrado ése", por eso especifiqué lo de "razonable o inteligente".

Para empezar, ilegal no es. El usuario no preguntaba cómo conseguir cuenta premium gratuita, ni cómo entrar a cuentas ajenas, ni cómo acceder a una misma cuenta de Spotify desde dos dispositivos distintos simultáneamente, ni nada por el estilo. Lo único que quería era abrir dos instancias de la aplicación en su PC, con dos distintas cuentas, cosa que se puede hacer sin problemas desde el navegador, y desde la app de Android. Sospecho que la limitante en PC es más por cuestión técnica (muy poca gente querría esa funcionalidad, así que ¿para qué implementarla?), aunque no lo sé con certeza.

Por supuesto, tampoco atenta contra la privacidad de nada. Otra cosa muy distinta es que pueda ir en contra de los términos de uso, lo cual no sé, pero dudo mucho que sea el caso (no tendría sentido), y un vistazo rápido a los TOS de Spotify no muestra ninguna prohibición o restricción que remotamente se relacione con esto. De cualquier forma, sería bastante incongruente borrar un tema por eso, cuando, por ejemplo, los propios administradores les pasan a los usuarios links a activadores de Windows y Office, y hay una colección muy grande de manuales (muchos de los cuales prohíben expresamente la distribución de copias) que incluso están alojados en los servidores de elhacker.
38  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Borrar temas en: 11 Enero 2023, 02:04 am
Antes de que borréis o modifiquéis de forma sustancial un mensaje, pensad en porque queréis hacerlo.

Una cosa es para quitar datos o temas sensibles, otra cosa es hacerlo por hacerlo. La idea de un foro es que tu pones una duda, te la resuelven y el tema se queda para que posteriormente otras personas con la misma duda puedan encontrar la solución. Si se borra, se pierde información vital.

Borrar por borrar me parece un poco tontería.

Saludos

Completamente de acuerdo.

También una cosa sería borrar temas sin respuesta. Ahí no creo que importe mucho, pero si el tema ya tiene respuestas...

Porque justamente eso pasó con un tema donde se preguntaba cómo abrir dos instancias de Spotify en PC, y ayer lo borraron. Digo, yo no lo creé, pero sí respondí, y al menos otros tres usuarios también dieron sugerencias, y ahora todo eso se fue a la basura. ¿Qué sentido tiene entonces tomarse el tiempo de responder preguntas si van a borrar los temas por borrarlos? Porque no se me ocurre ninguna razón medianamente razonable o inteligente para haber borrado ése.
39  Programación / Programación C/C++ / Re: errores en una clase de un libro en: 9 Enero 2023, 19:59 pm
Es porque ese manual está muy obsoleto (además de ser muy malo).

En el C++ estándar (desde 1998, para que veas lo obsoleto del manual) ostream está dentro del namespace std. Para que te compile, debes escribir std::ostream
40  Programación / Programación C/C++ / Re: ¿es posible leer la direccion virtual de una sección? en: 9 Enero 2023, 19:56 pm
C no da ninguna forma de hacerlo. Dado que es un lenguaje pensado para ser extremadamente portable y correr en prácticamente cualquier tipo de hardware, ni siquiera tiene concepto de secciones (ni de pilas ni de otras muchas cosas que aunque pueden parecer universales, no necesariamente lo son en algunas arquitecturas, o en sistemas embebidos).

Los compiladores sí que pueden añadir ciertas capacidades como la que tú pusiste, pero eso es cosa de GCC, no del lenguaje. El propio GCC, al menos en Linux declara los símbolos etext, edata y end, pero estos indican el final de las secciones, así que no sé si te sirvan de alguna manera.

Windows proporciona APIs (aunque no son estándar de C, sí lo son de Windows, por lo que son accesibles desde cualquier compilador para este SO) que facilitan mucho este trabajo, pero sólo para ejecutables PE.

Si forzosamente lo necesitas para ELF y sin usar APIs externas, creo que lo único que queda es leerte la especificación de ese formato y programar de cero la solución.
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... 24
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines