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


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Temas
Páginas: [1]
1  Media / Diseño Gráfico / Optimizador de .PSD en: 4 Febrero 2010, 21:38 pm
hola a todos del foro de diseño , yo nunca posteo en este subforo pero creo que esto te puede ser util.

Se trata de un programa que hice y quiero compartir , se trata de un programa que "optimiza" los .psd , esta basado en el "truco" de esconder las capas y salvar el archivo . Pero eso es molesto cuando tienes un proyecto grande con muchas capas etc .. Esto hace eso mismo pero cuando abres el archivo las capas son visibles.

Esto lo he probado en CS3 y 4 .

Pueden descargar el programa con su codigo fuente desde mi web:
http://sites.google.com/site/compactamos/descargas/PSD%28Beta%29.rar?attredirects=0&d=1

Espero que les sea util y ahorren mucho espacio .

----
Chaos

2  Programación / ASM / De HEX (x\09x\82\x76) a ASCII> en: 10 Diciembre 2009, 19:01 pm

Es decir como convertir una cadena de texto que representa numeros hexadecimales a su valor real , este codigo acepta cualquiera de las formas Ej

"x\09x\82\x76"
"0x68, 0x6F, 0x6C, 0x61, 0x20"

incluso una mescla de ellas EJ>
Código
  1. "0x68, 0x6F,\x55\x8B\xEC\x32\xD2\x83\xEC\x10\xC6\x45\xF1\x63\xC6\x45\xF2\x61"
  2.  
  3.  
  4. ahex2hex Proc datos:dword,destino:dword,long:dword
  5.  
  6. mov edx,[datos]
  7.  
  8. repetimos:
  9.  
  10. xor eax,eax
  11. mov ecx,2
  12.  
  13. mmmms:
  14. mov al,byte ptr ds:[ecx+edx-1]
  15. ;;;;;;;;;;;;;;;;;;;;Plugin para ignorar caracteres (ignore "space" "x" "," "\r\n" "\" "/")
  16. ;;;; This is a plugin , you can delete.
  17.  
  18. cmp al,020h ; El espacio , de encontrarse se ignora
  19. jnz noespace
  20. jmp finmal
  21.  
  22. noespace:
  23. cmp al,02Ch ; La ","
  24. jnz nocoma
  25. jmp finmal
  26.  
  27. nocoma:
  28. cmp al,078h ; The "x"
  29. jnz noequis
  30. jmp finmal
  31.  
  32. noequis:  ;Chequeamos si hay una nueva linea , Now we check for newline (for windows)
  33. cmp al,05Ch  ; The "\"
  34. jnz barra
  35. jmp finmal
  36.  
  37. barra:
  38. cmp al,02Fh  ; The "/"
  39. jnz newline
  40. jmp finmal
  41.  
  42. newline:
  43. cmp al,00Dh  ; The "\r"
  44. jnz noreturn
  45. jmp finmal
  46.  
  47. noreturn:
  48.  
  49. cmp al,00Ah  ; The "\n"
  50. jnz googC
  51.  
  52. finmal:
  53. inc edx
  54. jmp repetimos  ; Repetimos
  55. ;;;;;;;;;;;;;;;;;;;;;;Plugin -para ignorar caracteres (-to ignore some chars)
  56. googC:
  57.  
  58.  
  59. sub al,041h
  60. jc  negativo; Si es menor que CERO
  61. add al,0Ah
  62. jmp positivo
  63.  
  64. negativo:  ; Le sumamos 17
  65. add al,011h
  66. positivo: ; Si es positivo , solo lo corremos
  67. shl eax,8
  68. loop mmmms
  69.  
  70. ;;;; Arreglo final (ver en un Dbugger)
  71. shr eax,8
  72. xchg al,ah
  73. shl al,4
  74. shr eax,4
  75. ;;;;;;;;;;;;;;
  76.  
  77. mov ecx,dword ptr ds:[destino]
  78. mov [ecx],al
  79.  
  80. dec long
  81. jz salimos
  82.  
  83. inc edx
  84. inc edx
  85. inc dword ptr ds:[destino]
  86. jmp repetimos
  87.  
  88. salimos:
  89. ret
  90. ahex2hex endp
  91.  

Cualquier duda me dicen !!.





3  Programación / ASM / Mostrar la MacAddress en: 17 Noviembre 2009, 18:05 pm
Eso mismo , lo he codeado en ASM , un pase de un codigo hecho en C. No
esta "muy explicado" pero se entiende como es el proceso.

Saludos
Yuri.

Descarga:
http://sites.google.com/site/compactamos/descargas/MacAddres.rar?attr...

Cualquier duda me dicen !!!
4  Programación / ASM / Como leer un archivo !? en: 4 Agosto 2009, 17:12 pm
Hola , estoy liado con un algoritmo de preprocesado de datos para su posterior compresión , pero como novato al fin no tengo experiencia con las apis de lectura y escritura , no te pido que me hagas el código  ;D, ya yo lo tengo terminado y probado solo tengo unas dudas . Necesito que el programa lea y escriba en un archivo (De cualquier tamaño).Ya se como crear un archivo pero necesito leerlo y no me sale bien , me puedes ayudar ?

Este es para escribir :

; EN eax tendremos el archivo a preprocesar (Ruta)

comment *
; Para crear un archivo ...
                 ;creamos el archivo
               invoke CreateFileA,eax, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0
                mov [handleCreado], eax
 
                ;Escibimos el archivo
                invoke WriteFile, eax,addr MsgTexto,20,addr bEscritos, NULL
 
                ; "Cerramos" el archivo creado
                invoke CloseHandle, [handleCreado]

------------------------------------Me funciona bien , pero el de leer :


; Para leer de un archivo

    invoke CreateFile,eax,
                      GENERIC_READ,
                      FILE_SHARE_READ,
                      NULL,OPEN_EXISTING,
                      FILE_ATTRIBUTE_NORMAL,
                      NULL
    mov [handleruta], eax

; Obtener el tamaño
    invoke GetFileSize,handleruta,NULL
    mov [tamano], eax

invoke ReadFile,[handleruta],[datos],eax,ADDR br,NULL

invoke CloseHandle,[handleruta]

Me da error al crear el handle.

Saludos
5  Programación / ASM / Codigos Inutiles !!! en: 13 Julio 2009, 20:36 pm
Hola de nuevo a todos , como dije en el post sobre de Ascii a binario quiero hacer con la ayuda de todos una recopilación de tips sobre optimización , mejor uso de las instrucciones etc ...
-----------------------------
Todos los que quieran ayudar , estoy haciendo un pequeño escrito sobre instrucciones inútiles y quisiera que mandaran tips sobre estos temas , ej de instrucción inútil

"inc cl" ;<< Nada mas inútil que usar este code debe de estar prohibido , sabes por que ?
Porque es mejor hace "inc ecx" y el resultado es el mismo y nos ahorramos un byte

00401000 >    FEC1          inc     cl
00401002      41            inc     ecx

Ley numero 1 > Nunca incrementes un registro low como es el caso de "al cl dl bl"
Parece sencillo pero lo he visto en algunos casos (personales) XD
------------------------------------------------------------------------------------------------
Otro caso es este:
(Objetivo : Poner en 7 a eax)

Sobre el tema:
B8 07000000   mov     eax, 7
también tiene de positivo que son 3 bytes 00 y a la hora de comprimir mucho mejor.

Pero como curiosidad se me ocurre que podemos también comernos un byte:
Código:
00401000     33 C0          xor eax,eax
00401002     B0 07          mov al,7
o
Código:
00401000     33 C0          xor eax,eax
00401002     04 07         add al,7

Y se me ocurre esta de 5 bytes:
Código:
00401002      B0 07         mov al,7
00401004      0FB6C0        movzx eax,al

E incluso haciendo pruebas he intentado exprimir para conseguir 3 bytes:
Código:
00401007      6A 07         push 7
00401009      58            pop eax

Gracias a Karmany por aportar estos códigos y en especial por el de>
Código:
00401007      6A 07         push 7
00401009      58            pop eax
Que es muy usado en los shell code para ahorrar espacio.

-----------------------------------------------------------------------------------------------

Ahora veamos un ejemplo de código inútil en un shell code  publicado en Milw0rm.com

Código
  1. 00401000 > $ 33C0           XOR EAX,EAX        ; |
  2. 00401002   . B8 8F7A837C    MOV EAX,kernel32.Beep       ; |
  3. 00401007   . 68 00040000    PUSH 400                             ; |/Duration = 1024. ms
  4. 0040100C   . 68 00030000    PUSH 300                            ; ||Frequency = 300 (768.)
  5. 00401011   . FFD0           CALL EAX                                 ; |\Beep
  6. 00401013   . 33C0           XOR EAX,EAX                           ; |
  7. 00401015   . B8 FACA817C    MOV EAX,kernel32.ExitProcess          ; |
  8. 0040101A   . FFD0           CALL EAX                                 ; \ExitProcess


Díganme que código sobra en este ejemplo???? Fácil

-----------------------------------------------------------------------------------------------
Otro ejemplo de código sobrante >
----------------------------------------------------------------------
Mirando un code para el ordenamiento quicksort. Veo código que sobra y mejor dicho que se puede optimizar un poco.El ejemplo mas claro es al final.

Código
  1. ;Original:
  2.        pushad
  3.        mov edi,vector
  4.        push dword[edi + 11 * 4]
  5.        push dword[edi + 10 *4 ]
  6.        push dword[edi + 9 * 4]
  7.        push dword[edi + 8 * 4]
  8.        push dword[edi + 7 * 4]
  9.        push dword[edi + 6 * 4]
  10.        push dword[edi + 5 * 4]
  11.        push dword[edi + 4 * 4]
  12.        push dword[edi + 3 * 4]
  13.        push dword[edi + 2 * 4]
  14.        push dword[edi + 1 * 4]
  15.        push dword[edi]
  16.        push formato
  17.        call [printf]
  18.        add esp,52
  19.        popad
  20. ret
----------------------------------------------------------------------

Aquí esta la optimizacion del código:

Puedo usar casi cualquier registro ya que cuando se empieza se guardan todos con la instrucción pushad y luego los recuperan con popad.

Código
  1.        pushad ; Se guardan los registros en la pila
  2.        mov edi,vector
  3. repetir:
  4. mov eax,2c ; 2c es 44 pero en hexadecimal.
  5. push    dword ptr ds:[eax+edi]  ; Ponemos a eax en 44
  6. sub eax,4 ; y vamos restando 4
  7. jnz repetir ; Hasta que lleguamos a 0
  8.  
  9. ; El resto es lo mismo
  10.  
  11. push dword[edi]
  12.        push formato
  13.        call [printf]
  14.        add esp,52
  15.        popad ; Se recuperan todos los registros
  16. ret


Le he dejado en el código optimizado algo que aun se puede optimizar mas , sabes que es ? Esfuérzate un poco y dímelo

Lo han resuelto:
Karcrack (No terminado completamente) (Le falta poco :silbar:)

Saludos
---------------------------------------------------------------------------------------------------------------------
Salida Malvada:
[/b]

Esta es una forma de salir usando un stack overflow , es decir se llama a la misma funcion , como solo hay llamadas la pila se llena hasta el tope y sale a windows

Olly:
0040AF82  |$  E8 FBFFFFFF   call    kills.0040AF82

Asm:
salir:
call salir

La pregunta es , para que sirve esto, simplemente nos ahorramos unos bytes.
Otra forma de salir es poniendo un RET en el entry point del programa ya que en la pila
esta la direccion de retorno hacia el sistema.Pero les doy un ejemplo para salir de nuestro
programa en el momento que querramos , no solo al comienzo

Un ejemplo para hacer esto en nuestras aplicaciones. >

Código
  1. .code
  2. entrypoint:
  3.  
  4. mov     eax , dword ptr ds:[esp]
  5. mov     dword ptr ds:[salir], eax
  6. ;---------------------------------
  7. .
  8. .Tu programa ...
  9. .
  10. .
  11. .
  12. ;---------------------------------
  13. call dword ptr ds:[salir] ; Salida "Especial" sin ExitProcess

Y tenemos que reservar 4 bytes para la variable "salir" , esto nos representa un ahorro
de 30 bytes (WAO) en nuestro programa si por ejemplo lo comprimimos ...

Saludos y espero que les sea util.

6  Programación / ASM / Codigos de Yuri Grille en: 11 Junio 2009, 20:47 pm

Invertir un Byte
http://foro.elhacker.net/asm/codigos_de_yuri_grille-t257809.0.html;msg1315200#msg1315200

El flag P
http://foro.elhacker.net/asm/codigos_de_yuri_grille-t257809.0.html;msg1289013#msg1289013

Un metodo de ordenamiento
http://foro.elhacker.net/asm/un_metodo_de_ordenamiento-t264478.0.html

Convertir a hexadecimal !!!
http://foro.elhacker.net/asm/codigos_de_yuri_grille-t257809.0.html;msg1286565#msg1286565

De Ascii a binario (01011001)
http://foro.elhacker.net/asm/codigos_de_yuri_grille-t257809.0.html;msg1269217#msg1269217

Explicación sencilla sobre AND XOR OR NOT
http://foro.elhacker.net/asm/codigos_de_yuri_grille-t257809.0.html;msg1266079#msg1266079

Buscar una string dentro de otra (Soporta Búsqueda con asterisc*s) ;-)
http://foro.elhacker.net/asm/codigos_de_yuri_grille-t257809.0.html;msg1257143#msg1257143

Invertir una string (codigo sencillo y sin usar la pila)(Mejorado)
http://foro.elhacker.net/asm/codigos_de_yuri_grille-t257809.0.html;msg1255196#msg1255196

Par o Impar?
http://foro.elhacker.net/asm/codigos_de_yuri_grille-t257809.0.html;msg1255115#msg1255115

De minúsculas a MAYÚSCULAS
http://foro.elhacker.net/asm/codigos_de_yuri_grille-t257809.0.html;msg1254101#msg1254101


Comparando dos strings:

Esta es una pequeña forma de comparar strings.

lea esi,CadTexto01
lea ebx,CadTexto02
empi:
mov al, byte ptr ds:[esi]
mov ah, byte ptr ds:[ebx]
cmp     al, ah
jnz enda
inc     esi
inc     ebx
or      eax, eax
jnz     empi
inc     eax
enda:

Strings con 00 como final. ;D

SaLuDoS

y prueben el sistema operativo hecho en ASM
http://www.menuetos.net/
Esta very good.







7  Programación / Scripting / Ayuda, cortar una parte de un txt. en: 23 Abril 2009, 20:43 pm
 Hola a todos ,soy nuevo en este foro .
Quisiera saber como puedo cortar un txt hasta un determinado punto ,de ahi hasta el final no me interesa mas nada.
Hay que buscar hasta donde diga "8BIMPatt" y salvarlo en esa u otra txt.
Ayuda  :huh:
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines