![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#21
|
||||
|
||||
Cita:
// Saludos |
#22
|
||||
|
||||
Yo coincido con Roman. El chiste de los resStr es precisamente que se pueden modificar sin recompilar. Un programador paranoico obviamente no creo que sea tan tonto de poner lo que quiere "proteger" (como su copyright o su nombre) en un resStr.
Hace años, en las epocas de MS-DOS cuando no habia Windows ni aplicaciones en español. Me ponía a "localizar" aplicaciones usando "fuerza bruta". Abria el exe con un editor Hex y cambiaba cuanto texto encontraba, el problema era cuando no cabia la traducción. Así fue como empezaron a aparecer en mi facultad copias "castellanizadas" de PC-Tools, Norton Disk Doctor, etc. Mas adelante me di cuenta que a mis propios y "geniales" programas alguien más podia hacerles lo mismo. Como usaba Turbo Pascal 3.0 (si, 3.0) me di cuenta que si ponia las cadenas a "proteger" como esto: "#164+#60+..." aparecian correctamente en lapantalla al desplegarlas pero al buscarlas con un Hex no había ni rastro de ellas. Por el contrario si ponia la cadena en forma literal si aparecía. No he revisado si esto aun sirve...
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#23
|
||||
|
||||
![]() Disculpenme pero no estoy de acuerdo con ustedes, estaba a punto de dejar este tema o pasarlo a la seccion de seguridad... (si me siguen lo hacemos).
Creo que si usamos ResourceString; para almacenar cualquier cosa, independientemente del grado de seguridad que los datos alojados requieran, estamos mostrando un poco de lo que al usuario no le interesa (o talvez no puede) saber. Siempre pense que si uno va a realizar una aplicacion, debe ser totalmente transparente para el usuario final, y para esto se debe realizar una "interfaz" de lo más amigable. En qué lugar de las aplicaciones como Word (office), Notepad, Delphi, Postgres, etc. los desarrolladores nos incitan a modificar la sección .rsrc. de sus ejecutables para configurarlos??? El modo más correcto de hacer lo que ustedes dicen, es usar menús con acceso a configuración (Herramientas -> Configuración), o en su defecto decirle al usuario modifique manualmente la configuración (editar un .INI). O para un usuario experto dejarle un .XML y que por medio de éste haga lo que quiera. Poder traducir? no creo Dec, hice este comentario para que quienes lo lean decidan, viendo cuántos PROs y cuantos CONTRAs tienen al utilizarlo. Ahh, AzidRain... lo que tu me dices tampoco concuerdo. No me cuesta nada hacer un Ctrl+F9 para recompilar; los nuevos releases no solo cambian en un contenido textual, y si lo hacen deberían usar al registro para guardar la nueva configuración. Con respecto a lo otro; no si tu forma servirá "#164+#60+...", pero si estoy seguro que los datos se pueden proteger... Saludos! Última edición por cHackAll fecha: 02-05-2007 a las 23:36:10. |
#24
|
||||
|
||||
Disculpa, pero es que los argumentos que expones no tiene que ver con la seguridad, que es en lo que ha derivado este hilo. Que los recursos sean o no el mejor método para traducir aplicaciones es harina de otro costal.
Ahora, si insistes en la seguridad, ¿te parece más seguro un archivo ini o xml? // Saludos |
#25
|
||||
|
||||
![]() Cita:
Cita:
Cita:
Estoy hablando de los motivos por los que yo digo: "GUAACA", de los ResourceStrings, que claro es un tema que tiene que ver con el grado de seguridad que la aplicacion tendrá. Al no utilizarlos, su aplicacion será (muy probablemente) más segura. No es un ini o xml mas seguro, si no mas apropiado para los datos que uds. guardan en tan polemicos .rsrc. |
#26
|
||||
|
||||
Cita:
En cuanto a los otros puntos, tambien son discutibles y si quieres lo hacemos. Yo por ejemplo, cuando recién escribiste ese comentario, hice la prueba con upx y nada que se pierden los recursos. Es cierto que después de comprimido, ya no puedes modificarlos, pero eso no es razón para no usarlos. En todo caso, primero editas y luego comprimes. Lo del widestring está para poder usar unicode. Yo entiendo que a ti en particular no te gusten los recursos y es muy respetable, pero de ahí a descalificar una herramienta por un gusto, hay una diferencia. // Saludos |
#27
|
|||
|
|||
Muy interesante
Muy interesante este hilo, se aprende mucho !!
Saludos a todos !! |
#28
|
||||
|
||||
Cita:
(1) Creo que si esa afirmación es cierta, es que estás metiendo en los ResourceStrings algo que no debes. Entiendo que lo que se pone en un ResourceString (puesto que es sabido que es visible para cualquiera) es cualquier dato que no comprometa la seguridad de la aplicación. Por lo tanto si usar ResourceStrings hace la aplicación más insegura es que no estás cumpliendo este requisito (1).
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#29
|
||||
|
||||
Caramba, como puede llegar a liarse un hilo titulado "¿Ayuda urgente por favor?"
![]() No pensaba meterme, pero ahi va mi opinion.
Es solo mi opinión, aunque estoy dispuesto a respaldarla con código ![]() |
#30
|
||||
|
||||
Cita:
![]()
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#31
|
|||
|
|||
Cita:
![]() ![]() ![]() ![]() Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#32
|
||||
|
||||
Hola
El que sabe sabe. Y yo que me queje del hilo, y la estoy pasando de perla, aprendiendo de los maestros. Saludos |
#33
|
|||
|
|||
Parece "Duelo de Titanes"
Alguien tendria la bondad de enseñarme como planear una aplicacion para que se pueda traducir en un futuro a otro idioma ? ( el texto de los botones, menus, etc... ). Escucho que es con los resources, pero de en adelante ni idea tengo de que hacer para lograrlo !
Tambien, lo de la seguridad... si alguien desea darme algunos consejos en como proteger un programa. ( entiendo que un buen crack-ero rompe cualquier programa, pero por lo menos que le cueste trabajo ! ). ( Pregunto aqui, porque este hilo dice mas que los hilos en la seccion de "proteccion" ). - Estaba pensando ayer como a las 3 de la madrugada que si el hace cracks le dicen crack-ero, y que hace pan le dicen panad-ero, y el que trabaja con tapiz le dicen tapic-ero, y el que corta la carne le dicen carnic-ero, entonces, acaso seria correcto decir que - quien es experto en API's es un API-ero ?, - y quien trabaja con tablas sean un Tabl-ero ?, - y quien maneja bien los hilos sera un Hil-ero ? ...y despues de eso, me di cuenta que lo conveniente era acostarme a dormir... ! Saludos a todos !! |
#34
|
||||
|
||||
![]() Vamos a definir todos y cada uno de los argumentos, creo que en éste punto están todas las ideas pero algunas inconclusas o mal definidas.
Hablamos de los ResourceStrings: La utilizacion o no de éstos es el tema que tanta polémica a formado. Voy a exponer cada uno de los puntos de la forma mas clara posible refiriendome al por qué dije "GUACA" de tales y por que yo evitaré en lo posible hacer uso de los mismos. 1. "Recursos mutilados" quienes les gusta realizar aplicaciones de pocos Kb? Posiblemente sea el argumento más refutado por Uds.; comparé un grupo de compresores, scramblers, y encriptadores; concluí que existen dos que son los mejores, el PECompact fué el mejor para ejecutables normales a grandes. y el mew, el cual utilizo para los archivos más pequeños, éste último es muy bueno y hasta comparable con el upx en aplicaciones medianas. Una de sus características es que posibilita la mutilación de los recursos. No defiendo con ahínco esta posición pues quienes utilizan mew? quienes lo conocen? solo yo?? 1.1. Inmerso en el punto está el hecho de que otros compresores como el upx se rayan al comprimir algunos ejecutables con cadenas de recursos. Para que no pase esto normalmente te dan la opción en un CheckBox que dice "Compress resources" para que el usuario decida hacer un programa (como citaba algúno): "configurable" y cuando éstos datos los ve cualquiera pues los cambia... talvez le pone insultos! yo se que arán con mi programa? si es bueno hasta dónde o que manos llegara? y eso es un tema que deja mucho que desear con respecto a la seguridad (o por lo menos con la integridad de la aplicación), pero claro que es subjetivo a la forma en que el programador plasma sus ideas. Para configurar (repito), lo correcto (creo yo) es un menú, un archivo ini, xml o datos en el registro (que tambien puede ser un hecho polémico). 2. Hablaba del WideString (unicode), una aplicación tiene cierto peso (tamaño), éste en muchos de los casos no nos interesa. Pues hablamos de PCs que antes hubiensen sido consideradas como MainFrames. Pero yo sigo con un pensamiento de ahorro; considero que una aplicacion pequeña que hace muchas cosas tiene los procedimientos bien optimizados, o en lenguaje de maquina o que simplemente interactúa de una forma adecuada con el S.O. Cuando el Güindos lee dichas variables en unicode debe llamar a la API 'UnicodeToUtf8' (claro después de usar APIs como: FindResourceEx, LoadResource, y LoadString para obtener la posicion en memoria donde se encuentra el recurso), como siempre una caja negra! parece estar bastante optimizada pero quién sabe!. Nuestro Delphi tiene su versión: cuando uno hace lo siguiente:
obtiene un ejecutable de 15.5 Kb. y cuando uno hace:
obtiene un ejecutable de 8 Kb. Compruebenlo Uds. mismos! Se preguntarán por qué? Es simple: con la segunda el Compilador genero un programa que llama directamente a la API con una direccion en memoria que contiene la cadena. Con la segunda; primero debe cargar el recurso, ésto lo hace con un procedimiento llamado 'LoadResString' que está en la unidad System. éste procedimiento genera un arbol de llamadas muy interesante: LoadResString FindResourceHInstance DelayLoadResourceModule GetModuleFileName LoadResourceModule GetModuleFileName RegOpenKeyEx ToLongPath GetModuleHandle GetProcAddress GetLongPathName lstrcpyn FindBS lstrcpyn lstrcpyn FindFirstFile FindClose _strlen lstrcpyn _strlen lstrcpyn RegQueryValueEx RegCloseKey lstrcpyn GetLocaleInfo lstrcpyn LoadLibraryEx LoadString SetString LStrToPChar Y que de seguro se me fue un par! 0j0 que solo fueron llamadas, y todo el código (if, then, or, else, operadores ifs anidados) lo obvio, pues no quiero aburrirlos. El unicode es una cosa buena, pero no muy aplicable para todos los casos al igual que esa palabrita reservada que tanto dolor de cabeza nos dá. En las primeras participaciones del hilo ví que hacían referencia a un archivo! un .txt y considero que no lo notaremos, pero qué sucede si se nos vuelve costumbre? si hacemos una aplicacion mediana a grande los mínimos retardos se sumarán y notarán. Pero bueno.. paso al último punto que a propósito es nuevo. 3. Agarré y comparé los recursos que el 'explorer.exe' tiene en la versión para eQuispe; encontré 102 cadenas de recurso (si me equivoque es porque los conté a "dedo") y agarré el 'explorer.exe' de la versión Vista... encontré asombrado 0 (cero), recursos de cadena. Que sucedió?? por que una empresa como Microsoft decidió ya no utilizarlos en sus cadenas? tendrá que ver con aquellos usuarios perrisimos como yo? será más seguro o que? NOTAS: Una de las posiciones mas valederas decía: "...they can be modified without recompiling the program..." a mi no me molesta hacer Ctrl+F9! o si voy a poner algun dato que sirva como configuración pues hago un menu, ini o xml que al final llega a ser la opcion mas "correcta" Otro me decía "...harina de otro costal..." pues yo digo que siempre y cuando dicha harina tenga que ver con la misma familia del trigo vale la pena hecharle un 0j0. MI conclusión con respecto al hilo: pues queda claro lo que yo pienso, al lector amante del Delphi le dejo a su criterio los argumentos adjuntos. Si Ud. piensa que el uso de éstos es el adecuado talvez tenga razón y yo sea (como que si soy) un paranoico ahorrador de bits. El unicode sirve y mucho, pero es aplicable solo en aplicaciones como el µTorrent en las que todo el mundo necesita un archivo de idiomas... y 0j0 que es un archivo adjunto, en ningun momento dejaron al usuario la posibilidad de usar un ResHacker como comentaba en otro post. Programas utilizados para el análisis: Delphi 6 & 7SE, mew11 SE v1.2, ResHacker 3.4, upx 2.03w, Visual Estudio 2005, Güindos eQuispe & Vista Ultimate. Saludos afectuosos amigos de Club Delphi, y lleguemos como alguien decía: lejos !!! |
#35
|
||||
|
||||
Cita:
// Saludos |
#36
|
|||
|
|||
Igual que roman, o digo, muy impresionante tu escrito amigo cHackAll, pero dejame entrar un poco en un aspecto que me parece contradictorio.
Para ser precisos, el punto 1.1 de tu comentario. Cita:
Sea dicho todo esto con mucho respeto. Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#37
|
||||
|
||||
![]() Amigo Roman, quito la palabra seguridad y la dejo con integridad... pero ese no es el punto y lo dije N veces.
Mi herramienta SI e Delphi. Para aplicaciones normales a grandes me funciona super la VCL, para pequeñas hago mis propios formuilarios con APIs y cosas por el estilo. PD: Algo que me encanta del Delphi a comparacion con otros lenguajes es que puedo meterle assembler. |
#38
|
||||
|
||||
Yo sé que tu herramienta es delphi. Pero es que a lo largo de este hilo has expresado una visión muy particular acerca de porqué a tí no te gustan los recursos, y tus argumentos van por el tenor de
- seguridad - tamaño - compresión Lo primero ahora le llamas integridad, pero eso no cambia las cosas. La "pelea" no es por terminología y si alguien cambia los ítems del menú por insultos pues qué mal por ese alguien pero nada tiene que ver con los recursos en sí. Tamaño y compresión van por la misma línea: tamaño. Y ahí es donde ironicé sobre lo de la vcl. No digo que haya que despreocuparse totalmente por el tamaño (hablo de software ![]() // Saludos |
#39
|
||||
|
||||
![]() Bueno, estoy algo cansado de defender una posición que al parecer es totalmente intrascendente para ustedes, pero de cosas como esas esta plagado mi pequeño mundo. He argumentado en el #34 todo lo que me parece valedero... pero hasta ahora no le veo puntos a favor del uso de tales ResourceStrings por parte suya, uds. defienden a los ResourceStrigns pero quiero posiciones argumentadas (repito). Y si no, lo dejo como una humilde opinión mía.
![]() Saludos. |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
ayuda urgente por favor problema BDE | Rabata | Conexión con bases de datos | 2 | 10-04-2008 19:43:00 |
ayuda urgente con qreport por favor | ddd_ddd | Impresión | 4 | 30-01-2007 13:03:24 |
Ayuda por favor es URGENTE | Costeño_sam | Conexión con bases de datos | 3 | 25-01-2007 10:47:24 |
Ayuda urgente por favor | JulioGO | Varios | 2 | 05-05-2006 17:21:24 |
ayuda urgente por favor | haffo | Varios | 2 | 01-10-2003 03:00:40 |
![]() |
|