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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Mensajes
Páginas: 1 ... 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 [150] 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 ... 432
1491  Foros Generales / Sugerencias y dudas sobre el Foro / Re: y el foro de vb6 ??? en: 26 Abril 2020, 17:30 pm

Ya se usaron tiempo atras, El-brujo queria ponerle mascarillas a los fantasmitas, habia que editarlos y tal, pero como se ve que no hay mascarillas, solicitamos que se devuelvan a su lugar nuestros fantasmitas, son patrimonio del Foro, nacieron aqui. ;D
Mientras esas  :huh: mascarillas no tengan origen  :rolleyes: chino... que luego salgan de mala calidad y les entre un virus y se conviertan en  >:D sandías...

Bueno, como El-brujo, ha bloqueado el hilo donde explica los cambios, aprovecho este para dar mi opinión e ideas al respecto.  :silbar: :silbar: :silbar:
Citar
Purgados 3652 días (10 años aprox) los Foros de

    Dudas Generales
    Foro Libre
    Noticias

Eliminados 20 mil mensajes del foro de Series de Peliculas. La mayoría de enlaces ya no debían ni funcionar.

Claramente todo eso es morralla y no creo que nadie heche en falta su pérdida...
Sobre los hilos de temas técnicos, yo también borraría aquellos que no tienen respuesta (y cuyo contenido sea menor de x tamaño), es decir incluye preguntas del tipo: "alguien me hace este trabajito de la unviersidad?..." pero en cambio no incluiría un hilo donde alguien hiciera una exposición de un tema con carácter informativo... aunque todavía en estos ya sería raro que no tuvieran respuesta.

Sobre los hilos apartados, no sería mejos pasarlos a html estático???. Incluso se podría poner otro foro y llamarlo 'Backup-ElHacker' (por ejemplo), donde consten esos hilos estáticos, unicamente para consulta sin posibilidad de edición. Siendo otra BD, no interferíría en el rendimiento con esta (sería básicamente un clon de la estructura de ésta BD), pero solo para consulta.
Personalmente me parece terrible que desaparezca conocimiento de la faz de la Tierra, solo porque le hayan pasado 200, 50 o solo 20 años por encima (o menos)... Nunca sabes donde en alguna parte del mundo, un pequeño párrafo de un viejo libro-foro, pueda inspirar a alguien el interés por estos temas...

Para esos usuarios que pierdan k.xxx mensajes se les podría regalar una 'medalla del mérito', un iconito elaborado que se adjunte a la izquierda desus mensajes bajo el alias, número de mensajes, etc... así conpensan esas pérdida de mensajes con un 'reconocimiento honorario'... (ya, ya sé que todas las medallas serían para Machacador, el antiguo Randomize, y algún otro  :laugh: :laugh: :laugh: :laugh: ).
1492  Programación / Programación General / Re: Fundamento del Ensamblaje y Linkeado de Programas en: 26 Abril 2020, 16:53 pm
Por partes...
¿Que es, fundamentalmente, la generacion del codigo objeto?
La traducción del código fuente a un código intermedio.
En general no es sencillo compilar de una sola pasada, por varias razones.
- Hay referencias que no se han resulto, se guardan datos intermedios y en otra fase se termina de verificar.
- El código es tan grande que la memoria no puede albergar todo el proyecto en memoria.
- Eficiencia durante la fase de análisis. Repartir en diferentes fases determinadas tareas permitir mantener un orden más coherente que facilite el análisis del código.
- Eficiencia del ensamblado final. La última fase es una optimzación. No puede acometerse mientras haya cuestiones sin resolver.
Es habitual, compilar cada módulo (fichero) de código por separado, asumiendo que las referencias externas son corectas y están presentes. En una fase posterior verifica si esas referencias realmente lo son.
Hay compiladores que compilan de varias pasadas y los más simles de una sola pasada, en general es normal que usen 2 o 3 pasadas. Por supuesto la primera pasada suele ser la más pesada, las demás fases solo intervienenen en ciertos aspectos.

...puede encontrarse una variedad considerable de referencia para con este tema sin embargo lo que mas bien me pregunto es cual es el proceso preciso del compilador, tomando en cuenta que ya conozco las cuestiones mas superficiales.

Lo siento he tachado esa parte final, porque tú sabrás que 'cuestiones superficiales' conoces, yo no sé cuales son, y creo que nadie más que tú lo sepa... ni si son correctas o sesgadas, es asumir...sin conocimiento de causa.
Me he tomado la molestia de buscar un hilo donde respondí varios temas a Yuki, luego abandonó el proyecto, así que ya no pude orientarle más...
He buscado el hilo, te pongo un link al mensaje específico que contesta por encima las fases de un compilador (típico). Aunque si estás interesado, te recomiendo leer todo el hilo:

https://foro.elhacker.net/foro_libre/escribiendo_un_compilador_en_vivo-t482796.0.html;msg2160676#msg2160676

Tambien agradeceria saber en donde podria encontrar una buena referencia acerca del formato de archivo OBJ.
No suele haber tales referencias. Dichos ficheros son temporales y específicos a cada compilador y versión. No están diseñados para ser manipulados por ningún usuario (ni siquiera del propio que diseña el compilador (salvo que tratare de cazar algún error inesperado), habitualmente el propio compilador los suele borrar cuando termina el proceso.
Su contenido habitualmente es un código intermedio a medio cocinar... porque es una etapa intermedia del compilador, una posterior fase suele modificar su contenido, en la medida que vaya resolviendo cuestiones...
Si estás ante un compilador que eliminara sus ficheros objeto una vez compilado, puedes deterlo capturando la cadena de comando que el compilador suele enviar al linker...,
Es decir... si hay un compiler.exe y un linker.exe
1 renombras al linker.exe algo como 'linkerOriginal.exe'
2 Creas tu ejecutable al que llamarás 'linker.exe'... su propósito podría ser simplemente tomar la cadena de comando recibida, mostrar una interfaz pausando hasta que pulses un botón.
Durante esa fase o bien manualmente o bien con dicho programa copy-paste dichos ficheros a otra parte...
3 Pasas la misma cadena de comando recibida en tu linker.exe al 'linkerOriginal.exe' para que complete el trabajo... puede que tengas fallos y el linker falle debidos en general a espacios, comillas, etc... que el linker no acepte y que tu linker.exe al capturar dicha cadena de comando se haya alterado...  

y, de igual manera, ¿que es, fundamentalmente, el proceso de linking?
Link es enlace, linking, es enlazar... Se trata de hacer que todos esos ficheros de código individuales sean uno solo, pero no se trata de eso solo, también (y sobretodo) se trata de otorgar las direcciones de memoria relativa dentro del código (el cargador del ejecutable durante la ejecución tomará las direcciones relativas y las transformará en direccioes absolutas en la memoria, aunque no es exactamente así...
Supongamos que tengo por alguna parte datos como 'byte edad', 'string nombre' y alguna función como: 'entero = CalcularfechadeNacimiento(byte edad)'...
pués el linker, tendrá que otorgar una dirección para edad teniendo en cuenta que como es 1 byte, luego vendrá detrás 'nombre'... si dichas variables están en la raíz del módulo, acompañan al código, a su vez a la función además de darle una dirección si es pública y no privada hay que meter su dirección en una tabla (entrypoint), para que pueda ser localizada, a su vez el parámetro edad podría ser le indicado para que ocupe un registro, aunuqe lo habitual es que junto con las variables dentro de ese procedimiento, se les instruya para que vayan a la pila, es decir no precisan una memoria específica fija, si no un orden y que tamaño ocupan y esas direcciones suelen ser 'relocatables', es decir que no importan donde se reubiquen en memoria, basta tener la dirección en el momento preciso de usarlo... los datos en la pila se pierden cuando se slae del procedimiento, por lo que ese espacio de memoria que ocupan se liberan...
Ya que no conozco el funcionamiento basico del proceso de linking, pido que disculpen mi ignorancia porque realmente no se si es posible linkear (¿soy el unico al que le parecen raros estos anglicismos?)
Es decisión de cada cual que términos elija usar en español. desde luego en español siempre se ha llamado enlazar (que es además su término traducido). Suele reflejar la pobreza de vocabulario... o la costumbre cuando a tu alrededor todo el mundo lo usa y cuando tú usas el término en español se quedan con la boca abierta... como si nunca hubiera existido. Tampoo tiene más importancia.

un archivo COM pero, si es asi, ¿cual es la diferencia entre linkear un archivo COM y un archivo EXE? y ¿en que afecta este proceso los valores de los registros de segmento, o a los mismos en definitiva, en tiempo de ejecucion?
Los archivos COM, son de cuando los programas eran tan pequeñitos que cabían en un unico sector (no más de 64kb.). Eso implicaba que las direcciones podían ser consideradas absolutas, si se cargaban en un sector siendo la dirección absoluta real la dirección del sector + el desplazamiento en el sector. Eso mismo supone ciertas restricciones, a cambio de una carga más rápida (no hay que traducir las direcciones que ya tiene el COM).
Un exe, en cambio puede tener cualquier tamaño, y exige que durante la carga todas sus direcciones sean modificadas (una vez cargado en memoria), conforme al valor que contienen y al punto en memoria que fueron cargados... eso supone una cierta lentitud en la carga en memoria (el loader), a su vez se libera de ciertos rigores como el tamaño limitado o los saltos...
En fin, la diferencia básica se limita a la velocidad de carga que hoy es despreciable peroq ue en los 70-80 podría suponer una gran diferencia dada la velocidad de ejecución d elos procesadores de entonces.
Cuando la velocidad de los procesadores se disparó y el tamaño de la memoria siguió el mismo camino, los programas COM, básdicamente quedaron obsoletos (pués ya más que ventajas ofrecen restricciones).


1493  Foros Generales / Sugerencias y dudas sobre el Foro / Re: y el foro de vb6 ??? en: 25 Abril 2020, 17:00 pm
Ah, vale... que estamos de 'obras' ...   >:D >:D >:D

Suele ser habitural poner algún cartelito de mantenimiento, para evitar equívocos...  :silbar: :silbar: :silbar:

(me resultan rarillas estas calabazas, aunque todo es cuestión de acostumbrarse)...
1494  Foros Generales / Sugerencias y dudas sobre el Foro / y el foro de vb6 ??? en: 25 Abril 2020, 16:51 pm
Juraría que no encuentro el foro de vb6...
A lo mejor es que me he levantado espeso... pero no lo veo.
1495  Foros Generales / Sugerencias y dudas sobre el Foro / Re: GET /index.php?=VAYAMIERDADELBRUJO en: 22 Abril 2020, 15:12 pm
Esto explica que anoche me saliera contínuamente este mensaje...
Yo accedo por VPN, y daba igual que cambiara... me salía una y otra vez

1496  Foros Generales / Foro Libre / Re: VIDEO: La Estación Espacial Internacional captó una supuesta “flota de OVNIs” en: 21 Abril 2020, 18:02 pm
Elon Musk tenía previsto lanzar una flotilla de satélites (una barbaridad de ellos, 100, 200, no recuerdo..). Tampoco he vuelto a mirar como sigue ese proyecto.

Pero si lo hubiera lanzado ya, tendría esa pinta después de perder la órbita inicia al paso del tiempo... Su teoría era que formaran un anillo alrededor de la Tierra.
1497  Programación / Programación General / Re: Es programador alguien utiliza un programa para programar, sin saber un lenguaj? en: 21 Abril 2020, 17:52 pm
Un carpintero se le puede considerar carpintero sin tener conocimientos de carpintería pero sabe usar un martillo y un clavo??
Digo lo mismo que W17CH3R

¿Es un mecánico alguien que coge un destornillador y otro le dice "aprieta ese tornillo y conecta aquel cable"?. Que luego funcione no lo convierte en mecánico de nada, simplemente ha seguido unas instrucciones dadas.

Lo que convierte a uno en programador es la capacidad de resolver por sí mismo éste o aquél problema (escribiendo código se sobreentiende). Eso supone la capacidad de entender el problema e idear soluciones conforme a las herramientas de que dispone.
OJO: No irse al extremo pretendiendo que un programador tiene que resolver cualquier problema del 'mundo mundial'. Por que yendo a ese punto estricto, nadie sería programador, como tampoco nadei sería médico, matemático, físico, químico... Absolutamente nadie conoce todo de ningún área.

Seguir pasos sirve para aprender (a programar), pero en sí mismo no es programar...
1498  Programación / Programación General / Re: ¿Imitar péndulo en valores de una variable? en: 21 Abril 2020, 17:39 pm
12, -12, 11, -11...
 Estoy pensando en esto porque necesito que siempre sea positivo. Si antes puse ejemplos negativos es porque como dije son más fáciles de usar. Acá no sé si me estás planteando usar un "parche" o no. No quisiera un parche si es innecesario.
 Suena a parche pero también que diste en el clavo, lo pensaré.
Qué parche ni qué niño muerto...

Simplemente es una demostración explícita de que una serie como:  -3, -2, -1 es equivalente a cualquier otro trío de valores seguidos, en el rango que se precise, con solo sumar el valor adecuado para meterlo dentro del rango deseado...
Si tu precisas que sean valores 86, 87 y 88, pués trasladar los valores de -3, -2, -1 es sumar 89. Eso se hace en la propia fórmula/función que obtiene los valores, como una variable más, de hecho la mayor parte de las veces, típicamente se puede integrar en alguna constante, que sí o sí YA SE UTILIZA en la propia función, luego ni parche, ni sobrecarga...

De todo lo leído, al menos entiendo que un +0 es innecesario xD
A la hora de explicar, conviene poner las obivedades, porque si uno pone la solución óptima no hay forma de qué mucha gente entienda de donde rayos sale tal o cual cosa... ese 0 representa una variable, o una constante, se deja en el código SIEMPRE, para que con el tiempo si se ha de modificar por mantenimiento se vea...
TAMPOCO supone ninguna sobrecarga inútil, un compilador cuando se encuentra constantes cuyo valor es 0, lo elimina y si se encuentra una expresión con más de 1 constantes afectadas por la misma prioridad, las reúne y simplifica, así esto:
x = 6 + b + 23 + 7 - c - 3
entonces el compilador lo resumirá como:
x = 33 + b - c
Un intérprete, en cambio lo tiene que resolver sobre la marcha, peor en tal caso no tiene sentido quejarse de que no se amás óptimo sumar 4 constantes cuando un intérprete es como mínimo entre 20 y 100 veces más lento que el mismo código compilado. Es decir es ridículo quejarse por instrucciones que consumen 1 ciclo de reloj, cuando el propio sistema utilizado es 40 veces más elnto que compilado.

Por lo demás como nunca planteas problemas específicos y siempre sueles dar vaguedades mal concretadas y definidas resulta a menudo confuso tratar de entender que es exactamente lo que precisas y todavía más complicado tratar de que lo entiendas, porque careces de conceptos básicos, elementales, necesarios para adentrarse en la programación.
..y como ya te he aconsejado en más de una ocasión que te olvides de ActionScript en favor de casi cualquier otro lenguaje de programación (mejor que eso) y que aprendas como mínimo principios básicos de programación, pués no me repetiré para insistirte en lo mismo, eso es ya cosa tuya.
1499  Seguridad Informática / Hacking Wireless / Re: Libros de Python en: 16 Abril 2020, 17:12 pm
Usa el buscador del foro... hay varios hilos tratando el tema, y proporcionan enlaces a muchos...

Además, tu mensaje no está publicado en el sitio correcto, éste refiere a ''Hacking wireless', deberías haberlo publicado en los hilos de:
Programación ---> Scripting: https://foro.elhacker.net/scripting-b64.0/
1500  Programación / Programación General / Re: ¿Imitar péndulo en valores de una variable? en: 13 Abril 2020, 19:05 pm
Los casos de negativo son más fáciles, pero necesito evitarlos por ahora. Por eso el valor "parado" acá es 11.
Un valor negativo deja de serlo cuando se le suma un valor igual. Si a toda la serie se le suma el mínimo alcanzable, el resultado es equivalente... es como mover un grafico en la pantalla verticalmente, la forma dle gráfico, no cambia solo su posición en él.

El puntó máximo o mínimo eso es cosa del valor que se le pase a la función. Si le pasas 5, 5 será el máximo, si le pasas 387 ese será el máximo, si necesitas 11, pués pasa ese valor. esto no debería ser preciso de explicar ni siquiera objeto de discusión.

La salida debe ser 20, 1, 19, 2...
X, Y, X-1, Y+1, X-2, Y+2...
Entonces es la serie del ejemplo 3... aplicando lo antedicho en el párrafo previo sobre los negativos:
Te ponía esta salida, para C:
 12 -11  10 -9  8 -7  6 -5  4 -3  2 -1

Como no se quieren valores negativos, y el maximo es 12, el mínimo será a lo sumo -11, luego basta sumar a todos +11, por comodidad puede dar igual sumar +12
12+12; -11+12;  10+12; -9+12; 8+12... etc... -1+12
resultando:
24 1 22 3 20 ... 11
como se puede ver, no es exactamente el resultado esperado, salta de 2 en 2 en vez de 1 en 1,
Código:
// basta tocar un poco la función y cambiar solo la línea:
Max = -(Max + razon)
// por esta otra, para que en cada ciclo solo descuente 1
Max = -(Max + 0)
Y la salida será (cambiando a 10 como el valor máximo):
1: 10 -9  9 -8  8 -7  7 -6  6 -5  5 -4  4 -3  3 -2  2 -1
Eliminando números negativos:
2: 20  1  19  2  18  3  17  4  16  5  15  6  14  7  13  8  12  9
Con una ligera modificación para que ascienda nuevamente hasta el tope:
3: 20  1  19  2  18  3  17  4  16  5  15  6  14  7  13  8  12  9  11  10  10  11  9  12  8  13  7  14  6  15  5  16  4  17  3  18  2  19

El pseudocodigo sería (compara los cambios con el previo):
Código:
Funcion Pendular3(entero Max, buleano NoNegativos)
    entero razon, pos, value
    
    si NoNegativos = True
        pos = Max
    fin si

    value = (Max + pos)
    razon = 1
    Hacer mientras (value > razon)  // caso 3, ó (Max > razon) para un rango más corto (caso 2).
        imprimir value             // cualquier acción posterior
        Max = -(Max - razon)
        value = (Max + pos)
        imprimir value             // cualquier acción posterior
        Max = -(Max + 0)        // + razon)
        value = (Max + pos)
    repetir
 fin funcion
el resultado de este código es, el último dado:
20  1  19  2  18  3  17  4  16  5  15  6  14  7  13  8  12  9  11  10  10  11  9  12  8  13  7  14  6  15  5  16  4  17  3  18  2  19


Está quieto pero alguien lo agarró, llevó el peso, el coso colgante, al extremo, y entonces ahora se va frenando de a poco. Empezó en el punto 20 y llega al -20, luego al 19...
Algo así. Que pierda velocidad sólo de un lado es una asunción, propuesta, imaginación.
 No tengo mucha idea, este simplemente frena. Como una hamaca, la empujas y luego de a poco frena.
 No sé bien de qué hablas... No creo que esto requiera realismo, sólo que un valor vaya de extremo a extremo pero cada vez que vaya a volver a uno se quede un poco atrás.
Una serie aritmética o progresión aritmética, es basicamente una línea recta, imagina puntos, se salta de un punto a otro siempre a íntérvalos iguales, llamados razón.
La progresión aritmética es una suma:
 Dados un término inicial y final, y pedidos 'x' puntos intermedios entre ellos, se define la razón como:
razon = (maximo - minimo) /(x+1)
ejemplo, sea el máximo 30, el mínimo 10 y los puntos intermedios 3:
razon = (30-10)/ (3+1) = 20/4 = 5.
siendo el valor inicial 10, los siguientes 3 intermedios serán:  15, 20, y 25 y el final es 30.
La serie aritmética es tremendamente fácil, tanto que no es preciso hacer cuentas, se hace de cabez salvo que se trate de numeros grandes con decimales etc..., o se trate de hallár el enésimo miembro de la serie...
así: 2,4,6, 8, 10, 12... la razón es 2.
0.3, 0.7, 1.1, 1.5 ... la razón es 0.4
23,30,37,44,51... la razón es 7

La series geométricas tienen exactamente las mismas fórmulas que la sritmética, con uns simple salvedad (remplazo)... donde las fórmulas de las series aritméticas son sumas, en la geométrica son multiplicaciones, donde restas, divisiones, donde multiplica, potencia, donde divide, raíz. Y entonces todo lo dicho para una vale para la otra.
Por eso, es bueno empezar primero dominando las series aritméticas que son muy asequibles... y luego con esa pequeña aclaración es tremendamente fácil asumir las progresiones geométricas.
Las series geométricas, dibujan curvas... en tu caso que es pendular implica que un lado es casi o cuasi espejo un lado respecto del otro.
sea el valor inicial 10 y el final 90 y se quiera 6 medios interpolados... (6 puntos entre medias) la razón vendrá dada por la fórmula:
razon = raiz (x+1) de (max/min)= sq7(90/10) = 1.3687
valores de la serie:  el valor inicial: 10 los 6 interpolados entre dicha distancia:  13.68738  18.73444  25.64254  35.09792  48.03986  65.75398 y el máximo:  89.99998
es decir 10 se multiplica por la razon 10 * 1.3687 = 13.68...
el siguiente término se consige multiplicando el obtenido por la razón y así sucesivamente... es un bucle con el número de términos a iterar que se precisan....

Tomando un ejemplo más pequeño: minimo 1, máximo = 20, con 15 puntos entre medias:
Valores de la serie:  1  1.205909  1.454215  1.753651  2.114743  2.550186  3.075291  3.70852  4.472136  5.392987  6.503449  7.842565  9.457416  11.40478  13.75312  16.585  20

Si uno se dedica a programar, no le bastan las 4|6 operaciones fundamentales de las matemáticas, debe dominar al menos las series, logarítmos y algunas cosas mas... es como si un taxista no supiera para que sirve el cambio de marchas.

Adjunto un par de imágenes para que se vea la diferencia entre ambas series:

Serie aritmética:


Serie geométrica, mismos valores usados en la serie aritmética:

Nota que la gráfica se crea tomando los valores dados como puntos para un eje, el otro eje asume los valores del orden que ocupa cada término, 0,1,2,3,4...
Juega con los signos para orientar a derecha/izquierda, arriba/abajo el resultado del gráfico.

Terminar de ajustar el código a los valores precisos que tu necesitas es algo que te corresponde a ti. Haz las modificaciones oportunas una vez lo entiendas.
Páginas: 1 ... 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 [150] 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 ... 432
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines