1. Takes the input file and uses debug to DUMP it to hex.
2. Takes the dumped hex file and reformats it so that it can be
reassembled via debug, and writes this out to a new batch file.
3. You then take the contents of the resulting batch file
(EMBEDDED.BAT) and copy and paste them into your main batch file.
When the contents are executed it will recreate the file on the fly
for you to subsequently use!
Limitations? Heck yeah:
1. Files that can be embedded are currently limited to 64k (debug
limitation)
2. The batch code that gets created is way bigger than the original
file, so careful if you want to fit it on a floppy disk!
Any questions or comments, just email me. Thanks!
@echo off
:: Binary file embedding script. Copyright 2003, Julian Karst
:: Use this at your own risk!
:: Thanks a bunch to: http://www.datainstitute.com/debug1.htm
Echo Working...
REN %1 IN.TXT
:: Get the size of the file in question, and store it.
for /f "tokens=1,2,3,4" %%i in ('dir IN.TXT /-C ^| find /i "IN.TXT"')
do set FILESIZE=%%l
:: Find out how many 128 byte "chunks" we'll need to read
set /a CHUNKS=(FILESIZE/128)+1
:: Now we use a FOR loop and create a debug batch file
echo L >$$$.txt
echo D 0 >>$$$.txt
FOR /L %%i in (2,1,%CHUNKS%) do echo D >>$$$.txt
echo Q >>$$$.txt
debug IN.TXT <$$$.txt >RESULT.TXT
del $$$.txt
REN IN.txt %1
:: Now we need to convert the decimal file size to a hex value.
set HEXNUMS=0123456789ABCDEF
set /a RESULT=%FILESIZE%%%16
echo SET HEX=%%HEXNUMS:~%RESULT%,1%% >$$$.bat
call $$$.bat
set HEXSTRING=%HEX%
set /a FILESIZE=%FILESIZE%/16
set /a RESULT=%FILESIZE%%%16
echo SET HEX=%%HEXNUMS:~%RESULT%,1%% >$$$.bat
call $$$.bat
set HEXSTRING=%HEX%%HEXSTRING%
set /a FILESIZE=%FILESIZE%/16
set /a RESULT=%FILESIZE%%%16
echo SET HEX=%%HEXNUMS:~%RESULT%,1%% >$$$.bat
call $$$.bat
set HEXSTRING=%HEX%%HEXSTRING%
set HEXSTRING=%HEXSTRING: =%
set /a FILESIZE=%FILESIZE%/16
set /a RESULT=%FILESIZE%%%16
echo SET HEX=%%HEXNUMS:~%RESULT%,1%% >$$$.bat
call $$$.bat
set HEXSTRING=%HEX%%HEXSTRING%
set HEXSTRING=%HEXSTRING: =%
echo echo. >embedded.bat
echo echo N OUT.TXT ^>^>$$$.txt >>embedded.bat
type RESULT.TXT | find ":" >RESULT2.TXT
for /f "tokens=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 delims=:-
" %%a in (result2.txt) do echo echo E %%b %%c %%d %%e %%f %%g %%h %%i
%%j %%k %%l %%m %%n %%o %%p %%q %%r ^>^>$$$.txt >>embedded.bat
echo echo RCX ^>^>$$$.TXT >>embedded.bat
echo echo %HEXSTRING%^>^>$$$.txt >>embedded.bat
echo echo W ^>^>$$$.txt >>embedded.bat
echo echo Q ^>^>$$$.txt >>embedded.bat
echo debug ^<$$$.txt >>embedded.bat
echo del $$$.txt >>embedded.bat
del result?.TXT & del $$$.bat
Unfortunately, another limitation is that it can NOT be used on any DOS
based systems (even 95/98/ME with Win95cmd.exe).
--
Todd Vargo (body of message must contain my name to reply by email)
I think there is an easier way to include binaries in a batch file:
@echo off
if exist %0.bat %0.bat
echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=>h2b.com
echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU WwX0GwUY Wv;ovBX2Gv0ExGIuht6>>h2b.com
echo ?@}I{uNWEF~NFAa_Lj@KLtH]~CEvEFIKbAa_wN@SuNS`{ECCttasae~BHM>>h2b.com
echo AcjFnvnHAwrvx[}gIKDw??Frt\gqj~{?s?csIsqo{O_KtBve{Sx{nB{Eu@>>h2b.com
echo fq`tkfk?e@oKCA_?_E@?WxAs?agBwRjnLK?s@w`G`LKLAcyA?@xAsZpk`L>>h2b.com
echo ~KxlqLct@vAc_A_yBJ@xAGZp?o?sBXq`LR@xUrFQt=A_E?B?~rB?~r0>>h2b.com
:: generate a popup window for username/password input
h2b "::bi" <%0 >batinput.exe
batinput.exe Aladin>_.bat
call _.bat
del _.bat
:: in NT/2k better use:
:: for /f "tokens=*" %%i in ('batinput.exe Aladin') do %%i
if [%pass%]==[sesam] echo Password OK
if [%pass%]==[sesam] echo Hello %user%
if not [%pass%]==[sesam] echo wrong Password
if not [%pass%]==[sesam] echo Hello unknown
echo.
echo Use mouse to fly, press any key to exit
pause
:: generate a simple DOS demo
h2b "::dd" <%0 >dosdemo.com
dosdemo.com
echo.
echo The same program as Windows demo
pause
:: generate a simple Win demo
h2b "::wd" <%0 >windemo.exe
del h2b.com
windemo.exe
:: hex dump of batinput.exe
::bi 4d5a60010100000004000000ffff00006001000000000000400000000000
::bi 000000000000000000000000000000000000000000000000000000000000
::bi a00000000e1fba0e00b409cd21b8014ccd214e69636520746f206d656574
::bi 20736f6d65626f64792077686f206973207374696c6c207573696e672044
::bi 4f532c0d0a627574206869732070726f6772616d20726571756972657320
::bi 57696e33322e0d0a2400504500004c0101005079a5360000000000000000
::bi e0000f010b01050c000600000000000000000000b4110000001000000020
::bi 000000004000001000000002000004000000000000000400000000000000
::bi 002000000002000000000000030000000000100000100000000010000010
::bi 000000000000100000000000000000000000401000003c00000000000000
::bi 000000000000000000000000000000000000000000000000000000000000
::bi 000000000000000000000000000000000000000000000000000000000000
::bi 000000000000000000000000000000000010000040000000000000000000
::bi 0000000000000000000000000000000000002e746578740000002f050000
::bi 001000000006000000020000000000000000000000000000200000e00000
::bi 000000000000000000000000000000000000000000000000000000000000
::bi 000000000000000000000000000000000000000000000000000000000000
::bi 0000b0100000be100000d8100000ea100000fc1000000811000016110000
::bi 2611000032110000000000006411000072110000821100008e110000a011
::bi 0000000000008810000000000000000000007c100000001000004c110000
::bi 00000000000000003e110000281000000000000000000000000000000000
::bi 0000000000005553455233322e646c6c0000b0100000be100000d8100000
::bi ea100000fc10000008110000161100002611000032110000000000000000
::bi 4d657373616765426f78410000004469616c6f67426f78496e6469726563
::bi 74506172616d41000000476574446c674974656d54657874410000005365
::bi 74446c674974656d5465787441000000456e644469616c6f670000004765
::bi 74446c674974656d00000000476574446c674374726c4944000000004765
::bi 74466f63757300000000536574466f63757300004b45524e454c33322e64
::bi 6c6c00006411000072110000821100008e110000a0110000000000000000
::bi 4578697450726f6365737300000047657453746448616e646c6500000000
::bi 577269746546696c65000000476574436f6d6d616e644c696e6541000000
::bi 4765744d6f64756c6548616e646c654100006800000000ff153810400068
::bi 0000000068eb114000680000000068bc12400050ff150410400050b85014
::bi 4000e8df010000ff15281040008b4424083d100100000f849e0000003d11
::bi 010000740531c0c210008b44240c663d0200747b663d010075ebff151c10
::bi 400050ff15181040003d0f000000751b6a10ff742408ff151410400050ff
::bi 1520104000b801000000c2100060be59144000bf0f0000006a505657ff74
::bi 2430ff150810400001c6c7060d0a7365c7460474207061c7460873733d00
::bi 83c60b4781ff1000000076d0c746f50d0a0000619031c050ff742408ff15
::bi 10104000eba5ff15341040004840803800740680382075f540506a0fff74
::bi 240cff150c104000eb8300000208c0800000000006000a000a00c8005a00
::bi 0000000042006100740063006800200049006e0070007500740000000000
::bi 000001500000000037000a0078000a000f00ffff81000000000000002000
::bi 01500000000037001e0078000a001000ffff810000000000000001000150
::bi 000000007800370028000f000100ffff80004f004b000000000000000000
::bi 0150000000003c00370028000f000200ffff8000430061006e0063006500
::bi 6c0000000000000002000050000000000a000a0023000a000d00ffff8200
::bi 55007300650072006e0061006d0065003a00000000000200005000000000
::bi 0a001e0023000a000e00ffff8200500061007300730077006f0072006400
::bi 3a00000000006089c68a0608c0740846e805000000ebf26190c350a23814
::bi 400031c0030548144000750d6af5ff152c104000a3481440006a00684c14
::bi 40006a01683814400050ff153010400009c0751c6a006839144000683914
::bi 40006a00ff15001040006a00ff1528104000813d4c1440000100000075d8
::bi 58c3007772697465206572726f7200000000000000000000000073657420
::bi 757365723d0d0a73657420706173733d0d0a000000000000000000000000
::bi 000000000000000000000000000000000000000000000000000000000000
::bi 000000000000000000000000000000000000000000000000000000000000
::bi 000000000000000000000000000000000000000000000000000000000000
::bi 000000000000000000000000000000000000000000000000000000000000
::bi 000000000000000000000000000000000000000000000000000000000000
::bi 000000000000000000000000000000000000000000000000000000000000
::bi 000000000000000000000000000000000000000000000000000000000000
::bi 000000000000000000000000000000000000000000000000000000000000
::bi 000000000000000000000000000000000000000000000000000000000000
::bi 000000000000000000000000000000000000000000000000000000000000
::bi 000000000000000000000000000000000000000000000000000000000000
::bi 000000000000000000000000000000000000000000000000000000000000
::bi 000000000000000000000000000000000000000000000000000000000000
::bi 0000000000000000
:: hex dump of dosdemo.com
::dd 8cd805001050050010a33b058ee00500108ee80500103b0602007201c3fc
::dd 30e4cd1a80ca018916390531c0cd33400f94063705b81300cd1030c0bac8
::dd 03ee42befc04ad08c074250f98c789c766ad0fb6c866c1e808b303eed1cf
::dd 140028f866c1c808fecb74f279efe2ebebd631db65881fb98080e8f102d0
::dd ed75f931ff658a05c0e80388c2d0ea00d004106488054775ec0fa1650fb6
::dd 15b90700beee04ad89c365021180d600e2f5c1ea036488154775e2640fb6
::dd 05642a450380dc00052000790231c03d3f007603b83f006588054775e066
::dd b8000002008b2e2d058b0e3105c1cd04c1c90489eb88cfc1ed0cc1e90c89
::dd e8fec3fec731f6e8e902b8100029e850fecbe8de025880f10ffec1fecfe8
::dd d30289e8fec3e8cc0289f080c4197303b8ffffa33505bf4b0966b9640000
::dd 00f7d066c1e00a66508e1e3b05665866506631d266f7f1662e8b362d0566
::dd 2e8b2e310566c1e60966c1e5096629c66601c566c1e80789f366c1ee1081
::dd e6ff0066c1ed0881e500ff09ee6689c566c1ed104d30d2a401c311eefeca
::dd 75f74980f9040f85a9ff83c404b80f0fb214b90001f3ab2d01017503b801
::dd 01feca75ef0e1fb8c800bf4705b501f3abc7063d05800c8b363d05a13105
::dd f7d0250f0001c6a1350531d2f7f6056400a33f0531c0ba0100f7f6a34105
::dd b80064e8f201892e4709b800aae8e801892e4909660fb7c666c1e00666a3
::dd 4305833e3d0510750cc7063f05c800c70641050000668b0e2d0566c1e10c
::dd 66c1e0076629c18b16310503163d05c1ea046689cb66c1eb1088d731f603
::dd 0e4305121e4505fec3640fb607fecb642a0780dc0051d1e9f7e90facd007
::dd 640227e87a018bbc470589ac4705fec3658a07fecb652a07f6ed01c06502
::dd 2789c28b8447078994470781ffc7007f4639ef7d42575029ef29d099f7ff
::dd 5a5f4701c209ff782c81ffc7007f2a80cec0393e49097d0c80e6bf393e47
::dd 097d0380f6c05657d1ee81c64b09c1e70801fe88345f5e39ef7cc9594646
::dd 81fe00020f8261ff832e3d05100f85dafebe4b098e062705bf2000b3c8b9
::dd 4000f366a583c740fecb75f30e07b401cd16740a30e4cd16b80300cd10c3
::dd 31c931d2803e3705007405b80b00cd3309c9750409d274d8010e2d052916
::dd 3105e9a2fd5250b8a741f7263905f7362b05891639050fb6c1c1e0024821
::dd c2580fba263905097302f7da01d078093dff007206b0ffeb0231c05a6588
::dd 07c338cd754b53650fb607505300cb5300cb65020780d40089c2d1e85be8
::dd a9ff5b5800cf5300cf65020780d40065021780d600d1e85be890ff00cb53
::dd 00cb00cf65021780d600c1ea025b89d0e87aff5bc3d0e9e8acff00cb00cb
::dd e8a5ff00cf00cfe89eff28cb28cbe897ff28cf28cfd0e1c3f72641058b2e
::dd 3f0529d5c3f6e1640fb617f7e201c6c3010003000001000300ff00fdfeff
::dd 01010100000077770f080818123420282837b5361038383f421240000f00
::dd 1234400f000025344020201f0000a00a00ffff2019000020190000
:: hex dump of windemo.exe
::wd 4d5a60010100000004000000ffff00006001000000000000400000000000
::wd 000000000000000000000000000000000000000000000000000000000000
::wd a00000000e1fba0e00b409cd21b8014ccd214e69636520746f206d656574
::wd 20736f6d65626f64792077686f206973207374696c6c207573696e672044
::wd 4f532c0d0a627574206869732070726f6772616d20726571756972657320
::wd 57696e33322e0d0a2400504500004c0101005079a5360000000000000000
::wd e0000f010b01050c000c0000000000000000000054130000001000000030
::wd 030000004000001000000002000004000000000000000400000000000000
::wd 003003000002000000000000020000000000100000100000000010000010
::wd 000000000000100000000000000000000000741000005000000000000000
::wd 000000000000000000000000000000000000000000000000000000000000
::wd 000000000000000000000000000000000000000000000000000000000000
::wd 000000000000000000000000000000000010000074000000000000000000
::wd 0000000000000000000000000000000000002e7465787400000018180300
::wd 00100000000c000000020000000000000000000000000000200000e00000
::wd 000000000000000000000000000000000000000000000000000000000000
::wd 000000000000000000000000000000000000000000000000000000000000
::wd 0000e210000006110000f210000000000000c8110000001200000e120000
::wd 201200002c1200003a120000da110000ee110000c0110000b0110000a211
::wd 000094110000801100006c11000060110000000000007a12000086120000
::wd 96120000aa120000ba120000ce120000e4120000ee12000000000000d210
::wd 00000000000000000000c410000000100000201100000000000000000000
::wd 14110000101000005612000000000000000000004c120000501000000000
::wd 0000000000000000000000000000000000004b45524e454c33322e646c6c
::wd 0000e210000006110000f21000000000000000004765745469636b436f75
::wd 6e74000000004765744d6f64756c6548616e646c65410000000045786974
::wd 50726f63657373005553455233322e646c6c0000c8110000001200000e12
::wd 0000201200002c1200003a120000da110000ee110000c0110000b0110000
::wd a211000094110000801100006c1100006011000000000000000052656c65
::wd 617365444300000044697370617463684d65737361676541000000005472
::wd 616e736c6174654d657373616765000000004765744d6573736167654100
::wd 000053686f77437572736f7200000000536574437572736f72506f730000
::wd 0000476574444300000043726561746557696e646f774578410000004765
::wd 7453797374656d4d657472696373000000005265676973746572436c6173
::wd 7341000000004c6f6164437572736f724100000044656657696e646f7750
::wd 726f634100000000456e645061696e7400000000426567696e5061696e74
::wd 00000000506f7374517569744d6573736167650047444933322e646c6c00
::wd 7a1200008612000096120000aa120000ba120000ce120000e4120000ee12
::wd 000000000000000044656c65746544430000000044656c6574654f626a65
::wd 637400000000437265617465536f6c696442727573680000000053656c65
::wd 63744f626a6563740000000043726561746544494253656374696f6e0000
::wd 0000437265617465436f6d70617469626c65444300000000426974426c74
::wd 0000000052656374616e676c650003000000d41440000000000000000000
::wd 000000000000000000000000060000000000000022134000657264650000
::wd 280000000001000038ffffff010018000000000000000000e8030000e803
::wd 00000000000000000000000000006800000000ff1508104000a30a134000
::wd 68007f00006a00ff1514104000a31213400068fa124000ff152c10400009
::wd c075086affff15041040006a00ff1528104000a3841b40006a01ff152810
::wd 4000a3881b40006a00ff350a1340006a006a00ff35881b4000ff35841b40
::wd 006a006a006800000090682713400068221340006a00ff151010400009c0
::wd 74a7a38c1b400050ff1530104000a3901b40006a00ff156410400009c074
::wd 8aa3941b40006a006a00689c1b40006a006828134000ff35901b4000ff15
::wd 6010400009c00f8461ffffffa3981b400050ff35941b4000ff155c104000
::wd 09c00f8447ffffff6a00ff1558104000a3a01b400068c800000068c80000
::wd 00ff15341040006a00ff1538104000e8a2010000e8770300006a006a006a
::wd 0068bc274300ff153c10400009c0741868bc274300ff154010400068bc27
::wd 4300ff1544104000ebd3ff35a01b4000ff1554104000ff35981b4000ff15
::wd 54104000ff35941b4000ff1550104000ff35901b40006a00ff1548104000
::wd 6a00ff15041040008b44240883f80f742e83f802741c3d020100000f8410
::wd 0100003d000200000f84a7000000ff25181040006a00ff152410400031c0
::wd c2100068d8274300ff742408ff1520104000a39b154000ff35a01b400050
::wd ff155c104000ff35881b4000ff35841b40006a006a00ff359b154000ff15
::wd 6c104000682000cc006a006a00ff35941b400068c80000006800010000a1
::wd 881b40002dc8000000d1e850a1841b40002d00010000d1e850ff359b1540
::wd 00ff156810400068d8274300ff742408ff151c10400031c0c21000000000
::wd 008b4424103dc800c800744e8b0d781b40008d940138ffffff8b0d7c1b40
::wd 00c1e81029c181e2ffff000081c1c80000008915781b400081e1ffff0000
::wd 890d7c1b400068c800000068c8000000ff153410400060e8ee0100006190
::wd 31c0c210006a00ff152410400031c0c21000ff35a01b4000ff35901b4000
::wd ff155c104000ff35881b4000ff35841b40006a006a00ff35901b4000ff15
::wd 6c104000ff15001040000c01a3a41b4000fcbe0c1b4000bfa81b40008b0e
::wd 83c60409c974158b0683c6048b1683c604890783c70401d0e2f7ebe231db
::wd 889ba81f410066b98080e8d8000000d0ed75f731ff8a87a81f4100c0e803
::wd 88c2d0ea00d004108887a81f4200664775e5660fb697a81f4100b9070000
::wd 00be581b4000ad6601c70297a81f410080d6006629c7e2ee66c1ea038897
::wd a81f4000664775ce660fb687a81f40006683c7032a87a81f400080dc0066
::wd 83ef0366052000790231c06683f83f7602b03f8887a81f4100664775cdc3
::wd 3c32770580f90476415250b8a7410000f725a41b4000f735741b40008915
::wd a41b40000fb6c1c1e0024821c2580fba25a41b4000097302f7da01d0780b
::wd 3dff0000007206b0ffeb0231c05a8883a81f4100c338cd7560530fb683a8
::wd 1f4100505300cb5300cb0283a81f410080d40089c2d1e85be889ffffff5b
::wd 5800cf5300cf0283a81f410080d4000293a81f410080d600d1e85be868ff
::wd ffff00cb5300cb00cf0293a81f410080d600c1ea025b89d0e84dffffff5b
::wd c3d0e9e895ffffff00cb00cbe88cffffff00cf00cfe883ffffff28cb28cb
::wd e87affffff28cf28cfd0e1c38b2d781b40008b0d7c1b4000c1cd04c1c904
::wd 0fb7dd88cfc1ed1cc1e91c89e8fec3fec7f6e10fb693a81f4000f7e289c6
::wd b81000000029e850fecbf6e10fb693a81f4000f7e201c65880f10ffec1fe
::wd cff6e10fb693a81f4000f7e201c689e8fec3f6e10fb693a81f4000f7e201
::wd f080c419730466b8ffffa3801b40008b3d9c1b4000bd6400000035ffff02
::wd 00c1e00a50585031d2f7f58b0d781b40008b1d7c1b4000c1e109c1e30929
::wd c101c3c1e80789c6c1eb0830d289c801f1c1e81088fc0fb680a81f42008b
::wd 0485a81b4000880747c1e808880747882747feca75d9664d83fd0475ac58
::wd b214be10000000b9000200004e790231f68b04b5a81b4000880747c1e808
::wd 880747882747e2ebfeca75ddb8c8000000bfb41f4300b900010000f3abbf
::wd 800c000089fea17c1b4000f7d083e00f01c6a1801b400031d2f7f683c064
::wd a3a81f430031d2b800000100f7f6a3ac1f4300b800640000f725ac1f4300
::wd c1e8108b2da81f430029c5892db4274300b800aa0000f725ac1f4300c1e8
::wd 108b2da81f430029c5892db8274300c1e6068935b01f430083ff107514c7
::wd 05a81f4300c8000000c705ac1f4300000000008b0d781b4000c1e10cc1e6
::wd 0729f18b1d7c1b40006601fb66c1e30431f6030db01f430089c8c1e81088
::wd c3fec30fb683a81f4100fecb0fb693a81f410029d00fb7e90fafc5c1f808
::wd 86d601d0ff34b5b42343008904b5b4234300fec30fb683a81f4000fecb0f
::wd b693a81f400029d00fb7e90fafc5c1f80886d601d0f72dac1f4300c1e810
::wd 8b15a81f430029c28b2cb5b41f43008914b5b41f43005881fdc80000000f
::wd 8d810000003b2cb5b41f43000f8d7400000050552b04b5b4234300992b2c
::wd b5b41f4300f7fd5d5a5153453b2cb5b41f43007f5101c209ed78f081fdc7
::wd 0000007f436681ca00c03b2db82743007e126681e2ffbf3b2db42743007e
::wd 056681f200c089eb86df01f38d1c5b031d9c1b40000fb6ce8b0c8da81b40
::wd 0066890bc1e908886b02eba55b594681fe000100000f82e9feffff83ef10
::wd 0f853cfeffff682000cc006a006a00ff35941b400068c800000068000100
::wd 00a1881b40002dc8000000d1e850a1841b40002d00010000d1e850ff3590
::wd 1b4000ff1568104000c310000000602020000404040020000000e0a0a000
::wd 0102020010000000ffe0e000fefdfd004000000000400000010201004000
::wd 000000004000010202004000000080808000020202000000000001000000
::wd 03000000000100000003000000ffffff00fdfffffeffffffffff0000e803
::wd 0000e8030000000000000000000000000000000000000000000000000000
::wd 000000000000000000000000000000000000000000000000000000000000
::wd 000000000000000000000000000000000000000000000000000000000000
::wd 000000000000000000000000000000000000000000000000000000000000
::wd 0000000000000000000000000000
>I think there is an easier way to include binaries in a batch file:
>
>
>@echo off
>if exist %0.bat %0.bat
>echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=>h2b.com
>echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU WwX0GwUY Wv;ovBX2Gv0ExGIuht6>>h2b.com
>echo ?@}I{uNWEF~NFAa_Lj@KLtH]~CEvEFIKbAa_wN@SuNS`{ECCttasae~BHM>>h2b.com
>echo AcjFnvnHAwrvx[}gIKDw??Frt\gqj~{?s?csIsqo{O_KtBve{Sx{nB{Eu@>>h2b.com
>echo fq`tkfk?e@oKCA_?_E@?WxAs?agBwRjnLK?s@w`G`LKLAcyA?@xAsZpk`L>>h2b.com
>echo ~KxlqLct@vAc_A_yBJ@xAGZp?o?sBXq`LR@xUrFQt=A_E?B?~rB?~r0>>h2b.com
Hello Herbert,
how do you overcome the cmd.exe special characters like ", >, <,
^, % and so on? - Sometimes this characters appear in your
binaries. Then your method fails.
Do you have a converter from binary to batch?
Reinhardt
I'm pretty sure, that these characters don't appear in my binaries.
The first two echo lines (which are common to all my ASCII programs) is
a hand written decoder routine for the remaining lines (which is
a ASCII encoded version of a normal com program).
> Do you have a converter from binary to batch?
For more information take a look at Laura Fairhead's web page:
>> Assemble .COM file using MASM6+ and convert .COM file
>> to ascii-code using my CM3 utility ( http://lf.8k.com/TOOLS/TOOLS.HTM )
or: