Skip to main content

0x27 Binary Options


BasE91 introducción de codificación basE91 es un método avanzado para codificar datos binarios como caracteres ASCII. Es similar a UUencode o base64, pero es más eficiente. La sobrecarga producida por basE91 depende de los datos de entrada. Se asciende como máximo a 23 (frente a 33 para base64) y puede variar hasta 14, lo que ocurre típicamente en bloques de 0 bytes. Esto hace que basE91 sea muy útil para transferir archivos más grandes a través de conexiones binarias no seguras como correo electrónico o líneas terminales. Alfabeto Como su nombre indica, basE91 necesita 91 caracteres para representar los datos binarios codificados en ASCII. De los 94 caracteres ASCII imprimibles (0x21-0x7E), se han omitido los tres siguientes para construir el alfabeto basE91: La tabla de traducción se compone de los caracteres restantes como se muestra a continuación. A veces, es útil ocultar una cadena de un binario (Archivo ejecutable. Por ejemplo, tiene sentido ocultar las claves de cifrado de los binarios. Cuando digo ocultar, me refiero a hacer las cadenas más difícil de encontrar en el binario compilado. Por ejemplo, este código: después de la compilación produce un archivo ejecutable con lo siguiente en su sección de datos: Puede ver que nuestra cadena secreta puede ser fácilmente encontrada y / o modificada. Podría ocultar la cadena pero no es un método agradable. Cualquier mejor idea PS: Sé que simplemente esconder secretos no funciona contra un atacante determinado, pero es mucho mejor que nada También, sé acerca de encriptación asimétrica, pero no es aceptable en este caso. Estoy refactorizando una appication existente que utiliza el cifrado de Blowfish y pasa los datos cifrados al servidor (el servidor descifra los datos con la misma clave). No puedo cambiar el algoritmo de cifrado porque necesito proporcionar compatibilidad hacia atrás. Ni siquiera puedo cambiar la clave de cifrado. Como se señala en el comentario a la respuesta de los pabellones. Usted tiene dos opciones: Asegure la clave Asegure el algoritmo de descifrado Desafortunadamente, si debe recurrir a la incorporación de la clave y el algoritmo dentro del código, tampoco es realmente secreto, por lo que se queda con la alternativa (mucho más débil) de seguridad a través de la oscuridad. En otras palabras, como mencionaste, necesitas una forma inteligente de ocultar uno o ambos dentro de tu ejecutable. Estas son algunas opciones, aunque es necesario recordar que ninguna de ellas es verdaderamente segura de acuerdo con las mejores prácticas criptográficas, y cada una tiene sus inconvenientes: Disfrazar su clave como una cadena que normalmente aparecería dentro del código. Un ejemplo sería la cadena de formato de una instrucción printf (), que tiende a tener números, letras y puntuación. Hash algunos o todos los segmentos de código o de datos en el inicio, y utilizarlo como la clave. (Youll necesidad de ser un poco inteligente sobre esto para asegurar la clave no cambia inesperadamente) Esto tiene un efecto secundario potencialmente deseable de verificar la parte hash de su código cada vez que se ejecuta. Generar la clave en tiempo de ejecución desde algo que es exclusivo (y constante dentro) del sistema, por ejemplo, por hashing la dirección MAC de un adaptador de red. Cree la clave eligiendo bytes de otros datos. Si tiene datos estáticos o globales, independientemente del tipo (int. Char., Etc.), tome un byte de algún lugar dentro de cada variable después de su inicializado (a un valor distinto de cero, por supuesto) y antes de que cambie. Por favor, háganos saber cómo resolver el problema Editar: Usted comentó que youre refactorización código existente, por lo que supongo que no puede necesariamente elegir la clave de ti mismo. En ese caso, siga un proceso de dos pasos: Utilice uno de los métodos anteriores para cifrar la clave, y luego use esa clave para descifrar los datos de los usuarios. Ocultar contraseñas en su código es seguridad por oscuridad. Esto es perjudicial porque te hace pensar que tienes algún nivel de protección, cuando de hecho tienes muy poco. Si algo vale la pena asegurar, vale la pena asegurarse adecuadamente. PS: Sé que no funciona contra hackers reales, pero es mucho mejor que nada. En realidad, en muchas situaciones nada es mejor que una seguridad débil. Por lo menos usted sabe exactamente donde usted está parado. Usted no necesita ser un verdadero hacker para eludir una contraseña incrustada. EDIT: Responder a este comentario: Sé de pares de claves, pero no es aceptable en este caso. I refactoring appication existente que utiliza el cifrado de Blowfish. Los datos cifrados se pasan al servidor y el servidor descifra los datos. No puedo cambiar el algoritmo de ecryption porque debo proporcionar compatibilidad hacia atrás. Si te preocupa la seguridad en absoluto, mantener la compatibilidad hacia atrás es una razón REALMENTE MALA de dejarte vulnerable con contraseñas incrustadas. Es una BUENA COSA romper la compatibilidad hacia atrás con un esquema de seguridad inseguro. Es como cuando los niños de la calle descubren que dejas la llave de la puerta bajo la alfombra, pero sigues haciéndolo porque el abuelo espera encontrarla allí. Casi todas las claves de licencia de software y números de serie son ejemplos de seguridad a través de la oscuridad y son casos de uso perfectamente legítimos. Por el suyo y el razonamiento de otros, usted nunca debe bloquear una bicicleta al estante de la bici porque todas las cerraduras de la bici se pueden batir bastante fácilmente con las herramientas derechas. Por lo menos, cuando su bicicleta está desbloqueada, usted sabe exactamente dónde se encuentra. Harvey - Mi punto acerca de saber dónde se encuentra es que con un sistema sin contraseña es obvio para todos los que usan el sistema Que es inseguro. Y que no deben esperar nada. Por el contrario, si usted tiene un esquema débil, entonces mucha gente pensará que es seguro cuando realmente no es. Y puede confiarle secretos que no deben. Ndash Stephen C Oct 24 12 en 1:23 Dmitry Creo que este tipo de quothidingquot es lo mejor que puede hacer. He hecho algo similar antes por las mismas razones que usted desea (excepto girado a través de 4 constantes xor diferentes sobre la longitud de la cadena). Si un hacker tiene la capacidad de encontrar y decodificar mis cadenas, entonces también puede editar directamente los valores de retorno de las rutinas, etc Me gustaría saber una mejor respuesta. Ndash Peter M Aug 31 09 at 11:41 Esto es tan seguro como dejar su bicicleta desbloqueada en Amsterdam, Holanda, cerca de la Estación Central. (Blink, and its gone) Si estás intentando agregar seguridad a tu aplicación, entonces estás condenado a fallar desde el principio ya que cualquier esquema de protección fallará. Todo lo que puede hacer es hacerlo más complejo para un hacker para encontrar la información que necesita. Sin embargo, algunos trucos:) Asegúrese de que la cadena se almacena como UTF-16 en su binario. ) Añada números y caracteres especiales a la cadena. ) Utilice una matriz de enteros de 32 bits en lugar de una cadena Convierta cada una en una cadena y concaténtela a todos. ) Utilizar un GUID, almacenarlo como binario y convertirlo a una cadena a utilizar. Y si realmente necesita algún texto predefinido, cifrarlo y almacenar el valor cifrado en su binario. Descifrar en tiempo de ejecución donde la clave para descifrar es una de las opciones que he mencionado antes. Realice que los piratas informáticos tienden a romper su uso de otras maneras que esto. Incluso un experto en criptografía no será capaz de mantener algo seguro. En general, lo único que te protege es el beneficio que un hacker puede obtener al hackear tu código, comparado con el costo de hackearlo. (Estos costos a menudo serían sólo mucho tiempo, pero si toma una semana para hackear su aplicación y sólo 2 días para hackear algo más, otra cosa es más probable que sea atacado.) Responder al comentario: UTF-16 sería Dos bytes por carácter, por lo tanto más difícil de reconocer para los usuarios que miran un volcado del binario, simplemente porque theres un byte adicional entre cada letra. Todavía puedes ver las palabras. UTF-32 sería incluso mejor porque agrega más espacio entre las letras. Una vez más, también podría comprimir el texto un poco cambiando a un esquema de 6 bits por carácter. Cada 4 caracteres se compacta entonces a tres números. Pero esto le restringiría a 2x26 letras, 10 dígitos y quizás el espacio y el punto para conseguir en 64 caracteres. El uso de un GUID es práctico si almacena el GUID en su formato binario, no su formato textual. Un GUID tiene 16 bytes de longitud y puede generarse aleatoriamente. Por lo tanto, es difícil de adivinar el GUID thats utilizado como contraseña. Pero si todavía necesita enviar texto sin formato, un GUID podría convertirse en una representación de cadena para ser algo así como 3F2504E0-4F89-11D3-9A0C-0305E82C3301. (O codificado en Base64 como 7QDBkvCA1B9K / U0vrQx1A). Pero los usuarios no verán ningún texto sin formato en el código, solo algunos datos aparentemente aleatorios. No todos los bytes en un GUID son aleatorios, sin embargo. Hay un número de versión oculto en GUID. Usar un GUID no es la mejor opción para propósitos criptográficos, sin embargo. Su calculado basado en su dirección MAC o por un número pseudo-aleatorio, por lo que es razonable predecible. Sin embargo, es fácil de crear y fácil de almacenar, convertir y utilizar. Crear algo más no agrega más valor ya que un hacker sólo intenta encontrar otros trucos para romper la seguridad. Es sólo una pregunta acerca de cómo están dispuestos a invertir más tiempo en el análisis de los binarios. En general, lo más importante que mantiene sus aplicaciones seguras es el número de personas que están interesadas en él. Si nadie se preocupa por su aplicación, entonces nadie se molestará en hackear tampoco. Cuando youre el producto superior con 500 millones de usuarios, entonces su aplicación se agrieta dentro de una hora. Sus preocupaciones son todas válidas, pero desafortunadamente el mundo de los negocios no es lo ideal, y los problemas deben ser resueltos dentro de parámetros aceptables. Dicho esto, estoy interesado en algunas de sus recomendaciones. UTF-16: por qué los bits son bits. -) No sería mejor permitir que todos los valores, incluyendo los no imprimibles GUID: ¿Por qué es mejor que cualquier otra secuencia (posiblemente más larga) de bytes ndash Adam Liss Aug 31 09 at 11:55 Otros consejos I39ve leer: Localizar el secreto String en varios lugares de la aplicación que no guardan relación con la licencia. Además, si puede retrasar el uso secreto de código de ejecución, tal vez activado por un evento programado, hace más difícil depurar por un cracker. Ndash Harvey Oct 23 12 at 19:28 Si almacena la clave de cifrado en reversa (yek noitpyrcne gnorts yM) y luego invierte en su código (String. Reverse), esto evitaría una simple búsqueda a través del binario para el texto de su Clave de encriptación. Sin embargo, para reiterar el punto hecho por cada otro cartel aquí, esto no logrará virtualmente nada para usted en términos de seguridad. Creo que quiere hacer que parezca instrucciones, su ejemplo de haría exactamente eso, la larga secuencia de instrucciones repetidas con una pequeña variación puede destacar y que sería malo, el byte en cuestión puede obtener codificado en la instrucción como es Y eso sería malo, así que tal vez el método xor, y tal vez algunos otros trucos para hacer que la sección larga de código no se destacan, algunas llamadas de función ficticia quizás. Depende de su procesador, así, ARM, por ejemplo, es muy fácil de ver los datos binarios y seleccionar las instrucciones de los datos y de allí (si está buscando una clave predeterminada) para posiblemente elegir lo que podría ser la clave, porque Es datos pero no es ascii y ataca eso. Del mismo modo un bloque de instrucciones similares con el campo inmediato variando, incluso si tiene el compilador xor los datos con una constante. Me pregunto si después de primero oscurecer como otros han mencionado, podría incrustar su cadena en un bloque de ensamblaje para tratar de hacer que parezca instrucciones. A continuación, podría tener un si 0 o goto justpaststringassembly para saltar sobre el código que es realmente ocultar su cadena. Esto probablemente requeriría un poco más de trabajo para recuperar la cadena en código (un costo de codificación de una sola vez), pero podría resultar un poco más oscuro. Respondió Oct 23 12 at 19:34 Puede utilizar una biblioteca c que he desarrollado para ese propósito. Respondió May 23 15 at 9:56 Cifrar la clave de cifrado con otro código. Muestre una imagen del otro código al usuario. Ahora el usuario tiene que ingresar la clave que ve (como un captcha, pero siempre el mismo código). Esto hace que también sea imposible para otros programas predecir el código. Opcionalmente puede guardar un hash (salado) del código para verificar la entrada del usuario. Respondió Sep 29 15 at 7:40 Almacenar cadena con macros como cadena const sPassword ENCRYPT (contraseña real) Antes de construir, expanda macros a cadena cifrada con m4. Por lo que su código parece const string sPassword encrypted string Decrypt en entorno de ejecución. Respondió Dec 10 15 at 4:36 crear una función que asigna su contraseña a una matriz de char estática y devuelve un puntero a esta función. A continuación, ejecute esta función a través de un programa de ofuscación. Si el programa hace un buen trabajo. Debe ser imposible leer su contraseña de texto sin formato utilizando un editor hexadecimal para examinar el programa binario. (Por lo menos, no sin la ingeniería inversa del lenguaje de ensamblaje. Que debería detener todos los kiddies escritos con secuencias o editores hexadecimales, a excepción del hacker criminalmente insano que no tiene nada mejor que perder su tiempo.) Respondió Mar 28 a las 0:30 Heres una secuencia de comandos perl para generar c-código ofuscado para ocultar una contraseña de texto sin formato del programa de cadenas. Responde Mar 28 at 1:26 Hay un error en: x5 x4 ndash lepe May 25 at 7:34 Su respuesta 2016 Stack Exchange, Inc - Bots brute telnet utilizando un escáner avanzado SYN que es alrededor de 80 veces más rápido que el de qbot, Y utiliza casi 20 veces menos recursos. Al encontrar el resultado bruted, bot resuelve otro dominio y lo reporta. Esto se encadena a un servidor separado para cargar automáticamente en los dispositivos como los resultados vienen pulg - resultados Bruted se envían por defecto en el puerto 48101. La utilidad llamada scanListen. go en herramientas se utiliza para recibir resultados bruted (yo estaba recibiendo alrededor de 500 resultados bruted Por segundo en el pico). Si construye en el modo de depuración, debería ver el binario scanListen de utitlity aparecer en la carpeta de depuración. Mirai utiliza un mecanismo de propagación similar a la auto-representación, pero lo que yo llamo de tiempo real-loadquot. Básicamente, bots brute resultados, enviarlo a un servidor de escuchar con la utilidad scanListen, que envía los resultados al cargador. Este bucle (brute - gt scanListen - gt load - gt brute) se conoce como carga en tiempo real. El cargador puede ser configurado para usar múltiples direcciones IP para evitar el agotamiento del puerto en linux (hay un número limitado de puertos disponibles, lo que significa que no hay suficiente variación en la tupla para obtener más de 65k conexiones salientes simultáneas. Menos). Tendría quizás 60k - 70k conexiones simultáneas de salida (carga simultánea) se extendió a través de 5 IPs.

Comments

Popular posts from this blog

Binary Options Signals Mt4 Programming

Bienvenido a la casa de los mundos de las primeras opciones binarias automatizado Asesor experto Si usted es nuevo en opciones binarias, puede leer más sobre él aquí. Acerca de nuestras señales Las opciones binarias son simplemente inversiones que usted realiza basándose en si el precio actual de un activo aumentará o disminuirá al vencimiento. La razón binaria opciones son tan populares es debido a sus cantidades increíbles de pago. Puede generar hasta 75 de su inversión en cada comercio ganador. Nuestras señales se han desarrollado y probado durante un período de años, y ahora están disponibles para ser utilizados de una manera automatizada con un asesor experto Lo que está incluido en nuestro paquete Expert Advisor que se puede utilizar ya sea automatizado o para generar señales para su no - MT4 BO broker 5 Plantillas de las que puede elegir, dependiendo de su estilo de negociación Materiales de formación de amplificadores de educación para el comercio Opciones binarias en Meta Trad...

Definición De Opciones Comerciales

Opciones definidas Todos los contratos de opciones que son del mismo tipo y estilo y cubren el mismo valor subyacente se denominan una clase de opciones. Todas las opciones de la misma clase que también tienen la misma unidad de comercio al mismo precio de ejercicio y fecha de vencimiento se denominan series de opciones. Descargo de responsabilidad: Este sitio analiza las opciones negociadas en bolsa emitidas por la Corporación de Compensación de Opciones. Ninguna declaración en este sitio debe ser interpretada como una recomendación para comprar o vender un valor, o para proporcionar asesoramiento de inversión. Las opciones implican riesgos y no son adecuadas para todos los inversores. Antes de comprar o vender una opción, una persona debe recibir y revisar una copia de Características y Riesgos de Opciones Estandarizadas publicada por The Options Clearing Corporation. Se pueden obtener copias de su corredor uno de los intercambios de la Corporación de compensación de opciones en One ...

Binary Options Live Forum

EZTrader desestima a los auditores Los problemas de EZTrader continúan mientras que la compañía rechaza Ziv Haft, los contadores públicos certificados basados ​​en Israel, y una firma del miembro de BDO. EZTrader despide a los auditores es el último anuncio presentado ante la Securities and Exchange Commission de EE. UU. A un animal herido que impotentemente ataca en su agonía. El empuje de la liberación hellip Volúmenes binarios japoneses toman un baño Los volúmenes binarios japoneses de las opciones bajan 21 mes-en-mes mientras que el caos de Brexit calma y las reglas del día de fiesta del verano el roost. Los volúmenes binarios japoneses cayeron de 44.6tr en julio a 35tr en agosto mientras que el Brexit después de choques se disipó y las vacaciones de verano dominaron. El gráfico de barras a continuación muestra los volúmenes mensuales hellip Enfoque en la política monetaria del Banco de Inglaterra Daily Financial Daily 15 de septiembre 2016 Informe de la mañana: 09.00 Los mercados ...