使用批处理创建图像>>%cd%

时间:2018-02-02 15:50:43

标签: batch-file base64 jpeg

我想创建一个代码来创建一个像echo到文件的图像:

echo Hello World! >>"%cd%/test.txt

但是我想要将一个base64代码写入jpeg文件而不是hello world。

所以我有以下内容:

echo Hello, my name is Kalesheezer, but you can call me Digi Kulamba
(gta v复活节彩蛋打算大声笑)

echo and my head kinda look like this:
echo (base 64 code, too long to paste here) >>"%cd%/myface.jpg"

这甚至有什么问题? 它创建了一个jpeg文件,但它给我一个无法打开的错误。 (可能是它的代码结构)

我用base64到图像转换器检查了它并没有错。 为什么不创建图像?

2 个答案:

答案 0 :(得分:1)

This batch file Certutil_B64_Encoding_Files.bat can let you to drag and drop any file like a jpg or png or any file else and generate another batch file with the encoded file inside, So, when you execute it, the file will be decoded and generated to the original.

Just save this code on your notepad or on notepad++ or on any text editor as : Certutil_B64_Encoding_Files.bat and drag and drop any file over it to be encoded

@echo off
Title Encoding files with CERTUTIL utility by Hackoo 2018
color 0A & Mode 83,3
If "%~1"=="" ( 
    color 0C & Mode 80,3
    echo(
    echo       You must drag and drop a file over this batch script to be encoded !
    Timeout /T 5 /nobreak>nul & exit /b
)
@for /f %%i in ("certutil.exe") do if not exist "%%~$path:i" (
  echo CertUtil.exe not found.
  pause
  exit /b
)
set "TempFile=%Temp%\Temp_b64 
set "OutputFile=%~nx1_encoded%~x0"
If exist "%OutputFile%" Del "%OutputFile%" >nul 2>&1
echo(
echo         Please wait a while ... Encoding "%~nx1" is in progress ...
certutil.exe -f -encode "%~1" "%TempFile%" >nul 2>&1
(
    echo @echo off 
    echo Title My head kinda look like this
    echo echo Hello, my name is Kalesheezer, but you can call me Digi Kulamba
    echo echo and my head kinda look like this:
    echo CERTUTIL -f -decode "%%~f0" "%%Temp%%\%~nx1" ^>nul 2^>^&1 
    echo Timeout /T 5 /nobreak^>nul
    echo Start "%~n1" "%%Temp%%\%~nx1"
    echo Exit
)>> "%OutputFile%"
copy "%OutputFile%" /b + "%TempFile%" /b >nul 2>&1
If exist "%TempFile%" Del "%TempFile%" >nul 2>&1
Timeout /T 2 /NoBreak>nul & exit 

And here is an example that i tested with my avatar Hackoo.png

Hackoo.png_encoded.bat

@echo off 
Title My head kinda look like this
echo Hello, my name is Kalesheezer, but you can call me Digi Kulamba
echo and my head kinda look like this:
CERTUTIL -f -decode "%~f0" "%Temp%\Hackoo.png" >nul 2>&1 
Timeout /T 5 /nobreak>nul
Start "Hackoo" "%Temp%\Hackoo.png"
Exit
-----BEGIN CERTIFICATE-----
/9j/4AAQSkZJRgABAQAAAQABAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1
c2luZyBJSkcgSlBFRyB2NjIpLCBxdWFsaXR5ID0gOTAK/9sAQwADAgIDAgIDAwMD
BAMDBAUIBQUEBAUKBwcGCAwKDAwLCgsLDQ4SEA0OEQ4LCxAWEBETFBUVFQwPFxgW
FBgSFBUU/9sAQwEDBAQFBAUJBQUJFA0LDRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU
FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8AAEQgAQABAAwEiAAIRAQMRAf/E
AB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQE
AAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBka
JSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SF
hoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY
2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgME
BQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKB
CBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNU
VVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip
qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/a
AAwDAQACEQMRAD8A/UA8HFGOM5oJzk+1AbOR2oIOV+Kfjq3+GPw68ReLbuFri20a
xmvXhUhTJsUkKCemSAM+9fmxrv8AwVG+I+s3cjaNpnh/R7TP7tfKe5fHuxcDP4D6
V9a/8FDfHdj4d/Zd8Y2K6hbrqGoLBZpaiZfNZXnQOQucnC5PSvxct7UBtyd88DtS
saRsfdWm/wDBSv4rWMiyXg8P30WcsktmY8j6q4r7w/ZV+P4/aO+GX/CTNYRabdwX
kljcwQSmSPzEVGypIBwQ44P5mvwvkARDn71fpn/wSJ8RfaPAXj7RS3/HtqUF2q5/
56RFT/6Ko1Tu2KR+gVGaQc0p4NMgw/HfjDT/AAB4P1nxHqrmPTtKtZLudkGW2opJ
AHcnGB7kV+Snxr/bh+Ivxe1G6itNVuPC/hwsyw6XpshjYp2MsowzNjqMhfav1t8a
eE9O8d+FtV8P6tD9o03U7aS0uI+hKOpU4PY4PBr8uvi//wAE5fiX4LvLmXwjHF4w
0RSTF5LrFeKmeA8bkBiB3QnPoOlRI0jY+NfGV5K/lM5aWaWUF5ZDuJ9ck1HZaWJo
Q3mZ/Wt/xNoGqeGtautE1zTZLDV7UhZ7C7UJLGSMjKHkZBB/GqdjbGNSgtmQg/dw
aV7I0sVG0dWXIkOe9a3w3+IHiX4d6zdzeF9c1HQ7ghQ81jcNEXwTw204PU9aY6dQ
YJPcKpq54e8M3uvava6To9lJPqd7KsUFqmPNlc9AF6kmkvMLH1D8Lv8Ago/8VPB1
zbxeI5LTxlpikB1u4lhuQuedssYHP+8pr9MPg38WNH+Nfw+0vxZoYmSyvVIMVwMS
RSKSro2OOGBGR161+cvwd/4Jr/EDxZd29z40nh8H6TlWlh3LPeSL6KqnapPqx4/u
mv0o+Gnw60T4U+DdM8MeH7Y2ul2EeyNWO53JOS7t3ZiSSfWrM5JHT1yHxY+Iln8K
vh/rfii+ikng023M3kxfekPZR9T37DJr5/8A2xf28dH/AGY5rfQ9M0xfEni6eLzm
tGn8uG0Q/daUgEkk9FGDjnIyM/mx8dv+CjHxd+OOg3mg3VzY6B4euSFuLTRYGjaZ
Qc7XlZmYg45AIB7ih6hGN2eH+PvGmo/EX4g6p4r1mUzanqd695M/bcWOAPQDGB7A
V9ZaR8SvD154BhN9b2cQurSOWC7uIgwYY+ZVO3HmAgqUJz0xmviuBftXzZ+VFz7Y
5r1f9nL4v2nhDVG0TXpE/sS4Z3imnOUglI/ix/AxC59CM+tc8o6Hb0sfYVz4x8JW
FrdabpUWk3eqfaPLMMMKieAL95nBXMajruOM5GOTXyp8NPiHaad+1JpPi+ZwljFr
kd00gGP3QkGSPbANbfxh/aEgufhbpOkaTNHL4k1O0Laxd26hfKBLDZlQBvK4zjoM
j6eGWEn2Wyiu4mw6KoqacLasWysf0k6ffW+pWcdzZzR3NtKoaOaFwyOOxBHBFWTk
Gvwm/Z+/bt+KXwGvre2tNYfxD4YjO0aFqrtJCiE5xE2d0Z64wcc8g1+qv7L/AO2l
4M/aYsmtrLfofieCPzLjRbxgz7R1eJxgOufoR3ArrRxOPKfil4s8U6h431a/8R6/
qEmp6rqM7TXFxOfmkc8Z/wAAOABgVwF9O00p2AKBwPVf8K3b/TxZ26HeXkBBd2Pf
oMDsMVz9s3nk8cE96k6FpqT6aWWO4hY9VyOe3f8AnTDaqAcKARyMCtO10/eQyqM9
DVyTTxFC52YIU81ViucyUswsKEDHrQl0VtmtQp3Mcs2eK3be1BijXAPGOlVbqzEU
hOwc9aklSZWs4WVwCCMeleh/DDx3q/wu8aaP4r0Cf7PqmmziaM87Txgqw7qykqR6
E157DqAs5VDruQnGe4rorF4riISRNuU1orGT11P/2Q==
-----END CERTIFICATE-----

Further Reading

  • An A-Z Index of the Windows CMD command line - An excellent reference for all things Windows cmd line related.

  • certutil - Dump and display certification authority (CA) configuration information, configure Certificate Services, back up and restore CA components, verify certificates, key pairs or certificate chains.

答案 1 :(得分:1)

您可以使用命令HEX2PNG.EXE将文本文件重建为图像。

示例:

<强> smiley.txt

--------------#####--------------
-----------###.....###-----------
---------##...........##---------
-------##...............##-------
------#...................#------
-----#.....................#-----
----#...####........#####...#----
----#..####c#......####cc#..#----
---#..#####cc#....#####ccc#..#---
---#..#####cc#....#####ccc#..#---
--#...####ccc#....####cccc#...#--
--#..#cccccccc#..#ccccccccc#..#--
--#..#cccccccc#..#ccccccccc#..#--
-#...#cccccccc#..#ccccccccc#...#-
-#...##########..###########...#-
-#.............................#-
-#.............................#-
-#.............................#-
--#..#######################..#--
--#..#aaaaaaaaaaaaaaaaaaaaa#..#--
--#..#aaaaaaaaaaaaaaaaaaaaa#..#--
---#..#aaaaaaaaaaaaaaaaaaa#..#---
---#..#aaaaaaaaaaa;;;;aaaa#..#---
----#..#aaaaaaaaa;;;;;;aa#..#----
----#...#aaaaaaa;;;;;;;;#...#----
-----#...##aaaa;;;;;;;##...#-----
------#....###;;;;;###....#------
-------##.....#####.....##-------
---------##...........##---------
-----------###.....###-----------
--------------#####--------------

要构建映像,您必须使用hexa颜色替换每种char,然后针对smileuout.txt运行hex2png.exe:

在这种情况下

  • char [c] with white [FFFFFFFF]
  • 带有栗色[103E66FF]
  • 的char [a]
  • 带有黄色[00EAFFFF]
  • 的字符[。]
  • char [ - ]透明(黑色+透明值为00)[00000000]
  • 字符[#]黑色(非透明)[000000FF]
  • 红色[0000FFFF]
  • 的char [;]

这只蝙蝠会这样做:

@echo off
set $fichier=smiley.txt
set $taille=33;31
set $TotPix=1023
set $Fsortie=smiley.png


:::Crátion de la première ligne de sortie.txt (width_pixel;Height_pixel;Name_of_file.PNG;Total_number_of_pixel)

echo %$taille%;%$Fsortie%;%$TotPix%>SmileyOut.txt


setlocal enabledelayedexpansion


for /f "delims=" %%a in ('type %$fichier%') do (echo %%a
                                                set $ligne=%%a
                            set $ligne=!$ligne:c=FFFFFFFF !
                            set $ligne=!$ligne:a=103E66FF !
                            set $ligne=!$ligne:.=00EAFFFF !
                            set $ligne=!$ligne:-=00000000 !
                            set $ligne=!$ligne:#=000000FF !
                            set $ligne=!$ligne:;=0000FFFF !
                                                set /a $c+=1
                                                for %%b in (!$ligne!) do (echo %%b>>SmileyOut.txt))
endlocal
hex2pngV1.3.exe smileyout.txt
del smileyout2>nul
start smiley.png

输出将是这个漂亮的笑脸:

enter image description here

文件smiley.txt的结构非常重要!

必须正确设置此变量或图像已损坏:

 $fichier=smiley.txt 
 $taille=33;31    => width;height of the output file each char is one pixel 
 $TotPix=1023     => The total of pixel (width * height) 
 $Fsortie=smiley.png => the name of the output PNG

命令PNG2HEX将完全相反,从图像生成一个txt文件!