Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: carlosguay en 8 Diciembre 2009, 20:52 pm



Título: transformar HEX a ACSII en bat, es posible?
Publicado por: carlosguay en 8 Diciembre 2009, 20:52 pm
Vereis llevo mucho tiempo liado com este bat y ya no se donde leer mas, o si es posible lo que yo necesito o no.

Tengo unos archivos de texto que estan en HEX, y cuando los manipule, necesito pasarlos a ACSII, para poder convertirlos en bin, ya que para meterlos en el la flash del aparato, pues tienen  que ser bin, claro.

En mi loca aventura, pues no se me a ocurrido, namas que hacerme yo mismo un convertidor a acssi, osea esto.

Citar
@echo off
setlocal enabledelayedexpansion
for /f "tokens=* delims=" %%x in ('type texto1.txt') do (
set linea=%%x
set linea=!linea:00=.!
set linea=!linea:01=!
set linea=!linea:02=!
set linea=!linea:03=!
set linea=!linea:04=!
set linea=!linea:05=!
set linea=!linea:06=!
set linea=!linea:07=!
set linea=!linea:08=!
set linea=!linea:09=   !
set linea=!linea:0A=.!
set linea=!linea:0B=.!
set linea=!linea:0C=.!
set linea=!linea:0D=.!
set linea=!linea:0E=!
set linea=!linea:0F=!
set linea=!linea:10=!
set linea=!linea:11=!
set linea=!linea:12=!
set linea=!linea:13=!
set linea=!linea:14=!
set linea=!linea:15=!
set linea=!linea:16=!
set linea=!linea:17=!
set linea=!linea:18=!
set linea=!linea:19=!
set linea=!linea:1A=.!
set linea=!linea:1B=!
set linea=!linea:1C=!
set linea=!linea:1D=!
set linea=!linea:1E=!
set linea=!linea:1F=!
set linea=!linea:20=^!
set linea=!linea:21=.!
set linea=!linea:22="!
set linea=!linea:23=#!
set linea=!linea:24=$!
set linea=!linea:25=.!
set linea=!linea:26=.!
set linea=!linea:27='!
set linea=!linea:28=(!
set linea=!linea:29=^)!
set linea=!linea:2A=*!
set linea=!linea:2B=+!
set linea=!linea:2C=,!
set linea=!linea:2D=-!
set linea=!linea:2E=.!
set linea=!linea:2F=.!
set linea=!linea:30=0!
set linea=!linea:31=1!
set linea=!linea:32=2!
set linea=!linea:33=3!
set linea=!linea:34=4!
set linea=!linea:35=5!
set linea=!linea:36=6!
set linea=!linea:37=7!
set linea=!linea:38=8!
set linea=!linea:39=9!
set linea=!linea:3A=:!
set linea=!linea:3B=;!
set linea=!linea:3C=.!
set linea=!linea:3D==!
set linea=!linea:3E=.!
set linea=!linea:3F=?!
set linea=!linea:40=@!
set linea=!linea:41=A!
set linea=!linea:42=B!
set linea=!linea:43=C!
set linea=!linea:44=D!
set linea=!linea:45=E!
set linea=!linea:46=F!
set linea=!linea:47=G!
set linea=!linea:48=H!
set linea=!linea:49=I!
set linea=!linea:4A=J!
set linea=!linea:4B=K!
set linea=!linea:4C=L!
set linea=!linea:4D=M!
set linea=!linea:4E=N!
set linea=!linea:4F=O!
set linea=!linea:50=P!
set linea=!linea:51=Q!
set linea=!linea:52=R!
set linea=!linea:53=S!
set linea=!linea:54=T!
set linea=!linea:55=U!
set linea=!linea:56=V!
set linea=!linea:57=W!
set linea=!linea:58=X!
set linea=!linea:59=Y!
set linea=!linea:5A=Z!
set linea=!linea:5B=[!
set linea=!linea:5C=\!
set linea=!linea:5D=]!
set linea=!linea:5E=.!
set linea=!linea:5F=_!
set linea=!linea:60=`!
set linea=!linea:61=a!
set linea=!linea:62=b!
set linea=!linea:63=c!
set linea=!linea:64=d!
set linea=!linea:65=e!
set linea=!linea:66=f!
set linea=!linea:67=g!
set linea=!linea:68=h!
set linea=!linea:69=i!
set linea=!linea:6A=j!
set linea=!linea:6B=k!
set linea=!linea:6C=l!
set linea=!linea:6D=m!
set linea=!linea:6E=n!
set linea=!linea:6F=o!
set linea=!linea:70=p!
set linea=!linea:71=q!
set linea=!linea:72=r!
set linea=!linea:73=s!
set linea=!linea:74=t!
set linea=!linea:75=u!
set linea=!linea:76=v!
set linea=!linea:77=w!
set linea=!linea:78=x!
set linea=!linea:79=y!
set linea=!linea:7A=z!
set linea=!linea:7B={!
set linea=!linea:7C=^|!
set linea=!linea:7D=}!
set linea=!linea:7E=~!
set linea=!linea:7F=!
set linea=!linea:80=€!
set linea=!linea:81=!
set linea=!linea:82=‚!
set linea=!linea:83=ƒ!
set linea=!linea:84=„!
set linea=!linea:85=…!
set linea=!linea:86=†!
set linea=!linea:87=‡!
set linea=!linea:88=ˆ!
set linea=!linea:89=‰!
set linea=!linea:8A=Š!
set linea=!linea:8B=‹!
set linea=!linea:8C=Œ!
set linea=!linea:8D=!
set linea=!linea:8E=Ž!
set linea=!linea:8F=!
set linea=!linea:90=!
set linea=!linea:91=‘!
set linea=!linea:92=’!
set linea=!linea:93=“!
set linea=!linea:94=”!
set linea=!linea:95=•!
set linea=!linea:96=–!
set linea=!linea:97=—!
set linea=!linea:98=˜!
set linea=!linea:99=™!
set linea=!linea:9A=š!
set linea=!linea:9B=›!
set linea=!linea:9C=œ!
set linea=!linea:9D=!
set linea=!linea:9E=ž!
set linea=!linea:9F=Ÿ!
set linea=!linea:A0= !
set linea=!linea:A1=¡!
set linea=!linea:A2=¢!
set linea=!linea:A3=£!
set linea=!linea:A4=¤!
set linea=!linea:A5=¥!
set linea=!linea:A6=¦!
set linea=!linea:A7=§!
set linea=!linea:A8=¨!
set linea=!linea:A9=©!
set linea=!linea:AA=ª!
set linea=!linea:AB=«!
set linea=!linea:AC=¬!
set linea=!linea:AD=­!
set linea=!linea:AE=®!
set linea=!linea:AF=¯!
set linea=!linea:B0=°!
set linea=!linea:B1=±!
set linea=!linea:B2=²!
set linea=!linea:B3=³!
set linea=!linea:B4=´!
set linea=!linea:B5=µ!
set linea=!linea:B6=¶!
set linea=!linea:B7=·!   
set linea=!linea:B8=¸!
set linea=!linea:B9=¹!
set linea=!linea:BA=º!
set linea=!linea:BB=»!
set linea=!linea:BC=¼!
set linea=!linea:BD=½!
set linea=!linea:BE=¾!
set linea=!linea:BF=¿!
set linea=!linea:C0=À!
set linea=!linea:C1=Á!
set linea=!linea:C2=!
set linea=!linea:C3=Ã!
set linea=!linea:C4=Ä!
set linea=!linea:C5=Å!
set linea=!linea:C6=Æ!
set linea=!linea:C7=Ç!
set linea=!linea:C8=È!
set linea=!linea:C9=É!
set linea=!linea:CA=Ê!
set linea=!linea:CB=Ë!
set linea=!linea:CC=Ì!
set linea=!linea:CD=Í!
set linea=!linea:CE=Î!
set linea=!linea:CF=Ï!
set linea=!linea:D0=Ð!
set linea=!linea:D1=Ñ!
set linea=!linea:D2=Ò!
set linea=!linea:D3=Ó!
set linea=!linea:D4=Ô!
set linea=!linea:D5=Õ!
set linea=!linea:D6=Ö!
set linea=!linea:D7=×!
set linea=!linea:D8=Ø!
set linea=!linea:D9=Ù!
set linea=!linea:DA=Ú!
set linea=!linea:DB=Û!
set linea=!linea:DC=Ü!
set linea=!linea:DD=Ý!
set linea=!linea:DE=Þ!
set linea=!linea:DF=ß!
set linea=!linea:E0=à!
set linea=!linea:E1=á!
set linea=!linea:E2=â!
set linea=!linea:E3=ã!
set linea=!linea:E4=ä!
set linea=!linea:E5=å!
set linea=!linea:E6=æ!
set linea=!linea:E7=ç!
set linea=!linea:E8=è!
set linea=!linea:E9=é!
set linea=!linea:EA=ê!
set linea=!linea:EB=ë!
set linea=!linea:EC=ì!
set linea=!linea:ED=í!
set linea=!linea:EE=î!
set linea=!linea:EF=ï!
set linea=!linea:F0=ð!
set linea=!linea:F1=ñ!
set linea=!linea:F2=ò!
set linea=!linea:F3=ó!
set linea=!linea:F4=ô!
set linea=!linea:F5=õ!
set linea=!linea:F6=ö!
set linea=!linea:F7=÷!
set linea=!linea:F8=ø!
set linea=!linea:F9=ù!
set linea=!linea:FA=ú!
set linea=!linea:FB=û!
set linea=!linea:FC=ü!
set linea=!linea:FD=ý!
set linea=!linea:FE=þ!
set linea=!linea:FF=.!
call :show !linea!
)
goto:eof
:show
echo %* >> texto2.txt
goto:eof

Ya se que esto esta mal hecho, pero me lo he currado de gordo, dos dias para eso que os pongo, espero le sirva a alguien, xd.

Como veis faltan muchos caracteres y es porque en un bat, no se pueden poner, osea la consola de msdos los interpreta como suyos y hasta aqui hemos llegado.
Segun tengo leido, tiene que hacerse por java o algo asin.

Pues mi problema es ese, si alguien me puede ayudar a convertir archivos de texto de HEX a ACSII, pues se lo agradecería mucho.

Aunque fuera en vbs, y que desde un bat ejecutarlo o algo asin.

Aunque voy a hacer este post algo largo, queria dejar claro lo que necesito.
Yo tengo un archivo de texto asin.

Citar
68 a1 22 a3   00 e3 18 d9   a7 9e c5 e9   c2 9b 6c f3
  1c df 27 92   8e aa ab c5   d4 e4 b0 15   bb df f6 7e 
  89 03 bd cd   87 a8 e9 ac   f1 79 c2 d6   ac 8c 37 f5 
  99 75 9e 4e   5d e9 20 22   87 e9 46 28   11 ba ea 5c 
  2c 3f f8 9b   a9 a0 b5 fd   a5 5b cd 2f   9c 01 64 9e 
  04 5f 54 54   9d 83 ca 52   fb 5b 15 83   3f b1 1c 9d 
  a7 ca e6 61   a4 88 78 80   3b be cc 95   74 21 02 41
  00 fe 37 a7   11 b1 0a 69   6b 85 c8 28   74 d5 03 c6


Cuando lo manipule, necesito ponerlo asin, para poder pasarlo a un archivo bin.

Citar
68 a1 22 a3   00 e3 18 d9   a7 9e c5 e9   c2 9b 6c f3  | h."...........l.
  1c df 27 92   8e aa ab c5   d4 e4 b0 15   bb df f6 7e  | ..'............~
  89 03 bd cd   87 a8 e9 ac   f1 79 c2 d6   ac 8c 37 f5  | .........y....7.
  99 75 9e 4e   5d e9 20 22   87 e9 46 28   11 ba ea 5c  | .u.N]. "..F(...\
  2c 3f f8 9b   a9 a0 b5 fd   a5 5b cd 2f   9c 01 64 9e  | ,?.......[./..d.
  04 5f 54 54   9d 83 ca 52   fb 5b 15 83   3f b1 1c 9d  | ._TT...R.[..?...
  a7 ca e6 61   a4 88 78 80   3b be cc 95   74 21 02 41  | ...a..x.;...t!.A
  00 fe 37 a7   11 b1 0a 69   6b 85 c8 28   74 d5 03 c6  | ..7....ik..(t...

Pues si alguien save lo que necesito, se lo agradecería mucho.

saludos


Título: Re: transformar HEX a ACSII en bat, es posible?
Publicado por: leogtz en 9 Diciembre 2009, 05:29 am
No, no hay manera sin utilizar otros programas, tal vez en VBS se pueda, espera a Novlucker.


Título: Re: transformar HEX a ACSII en bat, es posible?
Publicado por: Novlucker en 9 Diciembre 2009, 11:51 am
La conversión hexadecimal-decimal en vbs es muy sencilla, y partiendo de una línea de tu archivo no es complicado obtener el resultado que buscas :P

Ej:
Código
  1. Linea = Replace("68 a1 22 a3   00 e3 18 d9   a7 9e c5 e9   c2 9b 6c f3 "," ","")
  2. For i = 1 to Len(Linea) step 2
  3. Dec = Cint("&h" & Mid(Linea, i, 2))
  4. if Dec > 126 or Dec < 33 then
  5. Ascii = Ascii & "."
  6. Else
  7. Ascii = Ascii & Chr(Dec)
  8. End if
  9. Next
  10.  
  11. Msgbox Ascii

Ahora el problema, escribir un binario con el vbs :-\.

En tu caso tomaría el método sencillo, te consigues un editor hexadecimal y luego copias y pegas los valores hexadecimales :P

Además creo que hay una confusión, si abres un archivo binario con un editor hexadecimal te lo mostrará tal cual lo quieres poner, no se genera un archivo así, así se visualiza

Saludos


Título: Re: transformar HEX a ACSII en bat, es posible?
Publicado por: carlosguay en 9 Diciembre 2009, 17:10 pm
Gracias Novlucker.

Creo que no me e explicado bien, veras yo tengo archivos como el que te he puesto, que los saco asin tal como estan, osea en HEX.

Esos datos los tengo que modificar, osea tengo que  cambiar muchos bytes y creo que sera mucha mas sencillo, estando como estan que si tuvieran la parte de acsii.

Como digo mas arriba saco los archivos com un bat, ya que mis conocimientos son muy limitados=nulos, sobre programacion.

Cuando los manipule, para volver a meterlos necesito convertirlos en archivo bin, que eso seria tan facil como guardarlos x.bin.

Como tu bien dices, el archivo bin al editarlo se muestra tal cual, osea como lo hallas guardao, pero siempre se guarda en la parte de acsii, osea asin.

(http://img339.imageshack.us/img339/430/archivo.png)

Como ves tanto editandolo como hex o acsii, estan malamente ya que aunque el acsii si se escribe bien pero los bytes los cambia porque interpreta todos los puntos como tal osea, 2E.

Por eso me hice ese conversor que pongo arriba y que es lo que realmente necesito, que al guardarlo en archivo bin, se pongan los bytes correctos.

Veras el motivo principal es que son muchos archivos y queria hacerlo todo desde el bat o almenos un editor o un programita en exe, o algo asin que pudiera ejecutarlo desde el bat, que lio no.

El codigo que me pones creo que es lo que necesito, aunque si tiene que ser linea por linea, pudiera al menos con el bat ir cambindola y guardando cada linea, claro.

Y aunque creo que es mucho pedir, ese codigo que me pones como se compila?

Te agradezco la ayuda y espero lo entiendas.

saludos


Título: Re: transformar HEX a ACSII en bat, es posible?
Publicado por: Novlucker en 9 Diciembre 2009, 18:22 pm
A ver si entiendo, pero entonces lo que tu quieres es regenerar otra vez el binario del cual se extrajeron los hexadecimales.

Por poner un ejemplo, tienes el calc.exe y con el Hex Workshop generas el archivo de texto con los valores hexadecimales de cada byte, pero luego quieres generar nuevamente un binario de ese texto.

Si es así, no recuerdo una tool específica para esto, pero más tarde te puedo dejar alguna improvisada que cumpla la función, en VB o Sharp dependiendo del compilador al que tenga acceso primero :xD


Con respecto a lo anterior, el código que te he dejado es un vbs, así que solo tienes que pegarlo en el notepad y guardarlo con extensión vbs

Saludos


Título: Re: transformar HEX a ACSII en bat, es posible?
Publicado por: carlosguay en 9 Diciembre 2009, 18:37 pm
Creo que ahora me as entendido, pero para que quede mas claro.

Yo tengo un editor el Winhex, que transforma los bytes en acsii perfectamente, pero el problema es que queria manipularlo desde el bat, osea un exe que lo ejecute y solo me haga el trabajo sin tener que estar archivo por archivo com el editor que tengo.

Eso es exactamente lo que necesito, algo que pueda automatizar la tarea.

Creo que el codigo que me as puesto, casi seria lo que necesito.


Título: Re: transformar HEX a ACSII en bat, es posible?
Publicado por: << Lucas, ¿quién más? >> en 9 Diciembre 2009, 19:31 pm
La verdad es que hace mucho tiempo que no veo algo de batch, pero creo que por ahí tengo un código con conversiones de este tipo, pero voy a revisar el disco cuando consiga un micro porque se me quemó un día de tormena eléctrica. :P

Saludos.


Título: Re: transformar HEX a ACSII en bat, es posible?
Publicado por: Meta en 9 Diciembre 2009, 21:17 pm
Para estas cosas mejor usar el www.winhex.com y en español.


Título: Re: transformar HEX a ACSII en bat, es posible?
Publicado por: Novlucker en 10 Diciembre 2009, 14:07 pm
Bueno, al final no use ni VB ni C#, te dejo un par de perl scripts
Para descargar el interprete en caso de que no lo tengas ... :http://www.perl.org/get.html

He creado dos scripts, bin2hex y hex2bin

bin2hex
Código
  1. my $tiempoe= time();
  2. @files=<files/*>;
  3.  
  4. foreach $file (@files)
  5. {
  6. open(BIN, "<$file");
  7. binmode(BIN);
  8. my $buffer="";
  9. read(BIN, $buffer, -s BIN, 0);
  10. close(BIN);
  11. open(BHEX,">Hex".$file.".txt")||die "No se puede crear el archivo Hex".$file.".txt\n";
  12.  
  13. foreach (split(//, $buffer))
  14. {
  15. my $formato=sprintf("%02x", ord($_));
  16. print BHEX $formato." ";
  17. }
  18. close(BHEX);
  19. }
  20.  
  21. my $tiempot = time()-$tiempoe;
  22. print "Proceso Terminado\n";
  23. print "Tiempo insumido: $tiempot seg.\n";

Para usar este script debes de tener una carpeta de nombre files en el mismo directorio. Dentro de esta carpeta van los archivos binarios que serán pasados a hexadecimal.
Además debes de tener una carpeta de nombre hexfiles, que es donde serán creados archivos de texto por cada binario convertido.

El contenido de cada txt será algo así:

Citar
4d 5a 90 00 03 00 00 00 04 00 00 00 ff ff 00 00 b8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0 00 00 00 0e 1f ba 0e 00 b4 09 cd 21 b8 01 4c cd 21 54 68 69 73 20 70 72 6f 67 72 61 6d 20 63 61 6e 6e 6f 74 20 62 65 20 72 75 6e 20 69 6e 20 44 4f 53 20 6d 6f 64 65 2e 0d 0d 0a 24 00 00 00 00 00 00 00 ec 85 5b a1 a8 e4 35 f2 a8 e4 35 f2 a8 e4 35 f2 6b eb 3a f2 a9 e4 35 f2 6b eb 55 f2 a9 e4 35 f2 6b eb 68 f2 bb e4 35 f2 a8 e4 34 f2 63 e4 35 f2 6b eb 6b f2 a9 e4 35 f2 6b eb 6a f2 bf e4 35 f2 6b eb 6f f2 a9 e4 35 f2 52 69 63 68 a8 e4 35 f2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 45 00 00 4c 01 03 00 c3 7c 10 41 00 00 00 00 00 00 00 00 e0 00 0f 01 0b 01 07 0a 00 78 00 00 00 96

Es decir, los valores hexadecimales "puros" :P

hex2bin
Código
  1. my $tiempoe= time();
  2. @files=<files/*>;
  3.  
  4. foreach $file (@files)
  5. {
  6. open(BHEX, "<$file");
  7. my $buffer=<BHEX>;
  8. close(BHEX);
  9. open(BIN,">bin".$file.".bin")||die "No se puede crear el archivo bin".$file.".bin\n";
  10. binmode(BIN);
  11.  
  12. foreach (split(" ", $buffer))
  13. {
  14. my $char=pack("H2",$_);
  15. print BIN $char;
  16. }
  17. close(BIN);
  18. }
  19.  
  20. my $tiempot = time()-$tiempoe;
  21. print "Proceso Terminado\n";
  22. print "Tiempo insumido: $tiempot seg.\n";

Al igual que el anterior, este script toma los archivos dentro de la carpeta files (archivos en hexadecimal, como los generados por bin2hex), y genera archivos binarios dentro de la carpeta binfiles.

Por poner un ejemplo:
Tienes el notepad.exe y el mspaint.exe dentro de "files", ejecutas el script "bin2hex" y este te generará dos ".txt" dentro de "hexfiles" con el contenido hexadecimal.
Ahora, si quieres convertir esos archivos de texto a binario nuevamente, los metes dentro de "files" y ejecutas "hex2bin", con lo cual se volverán a generar binarios dentro de "binfiles"

Los scripts en si son muy mejorables, pero bueno, espero te sirva y cualquier duda ya sabes ::)

Saludos


Título: Re: transformar HEX a ACSII en bat, es posible?
Publicado por: carlosguay en 10 Diciembre 2009, 17:54 pm
Perdona Novlucker, me vas a llamar burro, pero es que como te dije mis conocimientos de programacion som=nulos.

Cuando dices interprete, te refieres al compilador que necesito para perl,?

Es que me he bajado de esa pagina que pones el strawberry-perl y no se si es eso, tiene veintitantos megas y al instalarlo me a creado varios accesos a webs y una ventana de msdos, que supongo que sera para esos comandos.

Pero como se compila ese codigo?, siento mi torpeza, xd.


Título: Re: transformar HEX a ACSII en bat, es posible?
Publicado por: Novlucker en 10 Diciembre 2009, 18:00 pm
Es que el código no se compila, el código lo guardas con extensión PL y luego simplemente lo ejecutas por línea de comandos, algo como:

Código
  1. C:\>perl.exe bin2hex.pl

Claro esta que depende de donde este instalado perl :P , sino bueno, luego los paso a exe y te los subo :xD


Título: Re: transformar HEX a ACSII en bat, es posible?
Publicado por: Novlucker en 11 Diciembre 2009, 01:44 am
¿Al final te ha servido, has podido? No recordaba que no había ningún compilador decente de perl :-\

Así que te dejo lo siguiente, dicen que una imagen vale más que mil palabras, mi escritorio ;)

(http://s2.subirimagenes.com/imagen/previo/thump_3696205perl.png) (http://www.subirimagenes.com/imagen-perl-3696205.html)

Saludos


Título: Re: transformar HEX a ACSII en bat, es posible?
Publicado por: ^Tifa^ en 11 Diciembre 2009, 03:33 am
Querras descargarte el interprete desde ActivePerl (Perl para Windows)

http://www.activestate.com/activeperl/

Sobre compiladores de aplicaciones perl, he utilizado perlcc en Linux, y pues para Windows existe aunque no se si del todo gratuito perlAPP

Pero solo te serviria para crear aplicaciones o ejecutables de scripts perl, si aun estas interesado.


Título: Re: transformar HEX a ACSII en bat, es posible?
Publicado por: carlosguay en 11 Diciembre 2009, 15:54 pm
Perdona la tardanza, pero he intentado solucionarlo antes de volver a postear, pero no hay manera.

Se que hay algo que no hago bien, pero ya no se que mas hacer.

Primero me baje el archivo que te dije, strawberry, que como veo en tu captura, es ese, dentro tiene varias carpetas, una se llama perl y esta tambien tiene varias que una es bin.

Me he bajdo el activeperl que me a puesto Tifa, este me crea una carpeta llamada perl, que dentro tambien tiene varias y una es bin.

Pues ni com uno ni com otro, poniendo las carpetas que me dijiste y los srtips, en c, en strawberry, en perl , en bin nada de nada y en el escritorio tampoco.

Siempre la misma respuesta.

(http://img442.imageshack.us/img442/3340/queno.png),


Ya por ultimas incluso e puesto la carpeta bin en el escritorio, como ves.

Parece como si no escontrara el sript, o eso entiendo yo.

Siento molestarte tanto, gracias


Título: Re: transformar HEX a ACSII en bat, es posible?
Publicado por: ^Tifa^ en 11 Diciembre 2009, 16:04 pm
Una pregunta antes de proseguir.  Tienes en la cabecera de tus scripts 'perl' algo similar a esto:

#!C:\perl\bin

En la cabecera del script, tienes que poner la ruta exacta donde se encuentra el ejecutable perl.exe quedando el script mas o menos asi:

Código
  1. #!C:\perl\bin
  2. use strict;
  3. use warnings;
  4.  
  5. my $tiempoe= time();
  6. @files=<files/*>;
  7.  
  8. foreach $file (@files)
  9. {
  10. open(BHEX, "<$file");
  11. my $buffer=<BHEX>;
  12. close(BHEX);
  13. open(BIN,">bin".$file.".bin")||die "No se puede crear el archivo bin".$file.".bin\n";
  14. binmode(BIN);
  15.  
  16. foreach (split(" ", $buffer))
  17. {
  18. my $char=pack("H2",$_);
  19. print BIN $char;
  20. }
  21. close(BIN);
  22. }
  23.  
  24. my $tiempot = time()-$tiempoe;
  25. print "Proceso Terminado\n";
  26. print "Tiempo insumido: $tiempot seg.\n";
  27.  
  28.  
  29.  
  30.  
  31.  


No tienes perl dentro del PATH general de Windows???? durante la instalacion con ActivePerl el te pregunta si quieres incluir PERL en el PATH general.. dijiste que si?

Porque es mas comodo sencillamente abrir un MS_DOS escribir perl y ya que incluir plenamente la ruta completa "C:\perl\bin\perl.exe" para ejecutar cualquier script *.pl



Título: Re: transformar HEX a ACSII en bat, es posible?
Publicado por: Novlucker en 11 Diciembre 2009, 17:00 pm
Tienes los archivos dentro de file? no veo una carpeta hexfiles, lo digo porque por lo que veo el interprete esta bien, sino no diría "Can't open perl script"

Saludos


Título: Re: transformar HEX a ACSII en bat, es posible?
Publicado por: carlosguay en 11 Diciembre 2009, 17:15 pm
Tienes razon la carpeta hexfile, no la habia creado, pero esto sigue igual.


(http://img442.imageshack.us/img442/8471/quenov.png)


Sera algo que le falta a la carpeta bin?


Título: Re: transformar HEX a ACSII en bat, es posible?
Publicado por: Novlucker en 11 Diciembre 2009, 17:28 pm
Código
  1. C:\>dir /s perl.exe

:huh:


Título: Re: transformar HEX a ACSII en bat, es posible?
Publicado por: carlosguay en 11 Diciembre 2009, 18:10 pm
(http://img685.imageshack.us/img685/3340/queno.png)


Título: Re: transformar HEX a ACSII en bat, es posible?
Publicado por: Novlucker en 11 Diciembre 2009, 23:35 pm
Esta TODO bien :(

Aquí es cuando viene la pregunta tonta, seguro que los scripts tienen extensión PL y no PL.txt? :silbar:?

Saludos


Título: Re: transformar HEX a ACSII en bat, es posible?
Publicado por: carlosguay en 12 Diciembre 2009, 00:31 am
Siento muchisimo Novlucker, me tienes que perdonar ,xd.

Llevo toda la tarde liado com este tema y si tenia PL. txt, no se como a ocurrido pero no me he dado cuenta antes, aunque ya lo habia visto antes de leer tu post, eh, jeje

Tambien tenia problemas com el otro bin que me baje, no se porque ese seguia dandome error, pero en el primer que me baje, solucionado.

De bin a hex, sin problemas, pero alreves mira esto.


Citar
C:\perl\bin>perl.exe hex2bin.pl
syntax error at hex2bin.pl line 11, near "$filename
open"
Execution of hex2bin.pl aborted due to compilation errors.

Hay algo en el sript que creo no quiere.


Título: Re: transformar HEX a ACSII en bat, es posible?
Publicado por: Novlucker en 12 Diciembre 2009, 03:08 am
:xD

Recuerda que cuando ejecutas ese script, dentro de files debes de tener los archivos de texto.
¿Ese error te sale luego de modificar los valores hexadecimales? Te en cuenta que debe de quedar tal cual, hexadecimales separados por espacios :P
Prueba con uno de los archivos generados con bin2hex.pl a ver si si sirve

Saludos


Título: Re: transformar HEX a ACSII en bat, es posible?
Publicado por: carlosguay en 12 Diciembre 2009, 10:41 am
Bueno pues esto YA FUNCIONAAAA, xd que lio, no os puedo decir cual era el ultimo problema.

He desistalado el activeperl y lo he vuelto a instalar, yasta tanto binhex como hexbin, fenomeno.

Pero como no podia ser de otra manera, pues ahora tengo otro problema, xd.

(http://img695.imageshack.us/img695/3340/queno.png)


Como se ve, el interprete cree que solo quiero cambiar la primera linea de bytes, y es que los archivos los tengo como estan en la imagen, este es otro reto, jejej.

Gracias por vuestra ayuda y perdonar por el tostom.

Decir que si algun dia teneis un problema com algun modem, pasaros por aqui.

http://www.forocable.com/foro/index.php

Si no preguntais cosas muy dificiles,jejejeje  pues alomejor yo os puedo ayudar a vosotros, espero tambien algun dia poder ayudar aqui a alguien.

saludos