certutil - decode/encode BASE64/HEX strings.Print symbols by HEX code

1. The thing I used this for wad to decode and encode BASE64 strings. (-decode and -encode command switches) .It has two annoying features here - for decode and encode it needs
-----END CERTIFICATE----- and -----BEGIN CERTIFICATE----- at begining and at the of base64 file.And it prints decoded file in lines with max length of 64 symbols.
So here are two very very very simple scripts that use certutil to decode and encode base64 string (and dealing with begin and end tags) (there are no checks for file existence and if the parameters are correct - I rely on certutil error messages):

decode:

@echo off
setlocal
for /f "delims== tokens=1" %%A in ('type %1') do (
	set encoded=%%A
)
rem two additional lines are needed by certutil
echo -----BEGIN CERTIFICATE-----> %2.tmp
echo %encoded%>>%2.tmp
echo -----END CERTIFICATE----->> %2.tmp

certutil /decode %2.tmp %2
del /S /Q %2.tmp
endlocal

encode:

@echo off
setlocal
certutil /encode %1 %1.encoded
rem create an empty file
break > %2

setlocal ENABLEDELAYEDEXPANSION
(
	for /f "eol=-" %%A in (' type %1.encoded ') do (
		rem this not works - left an empty spaxes after each line from typed file
		rem null< (set /p #=%%A) >>%1.encoded

		set result=!result!%%A
	)
)
endlocal & set result=%result%
echo %result%>> %2%
del /S /Q
endlocal

The bad thing is that the base64 strings are stored in a variable and there's a limitations for it's size.But for a small strings it wokrs.

2. Much more interesting.In the help it shows that there's an -decodehex switch.And I was surprised to find that there's also an undocumentes switch -encodehex (strange - decodehex looks more dangerous , because it can be used to produce binaries). Here's an example structure of encoded file:

代码如下:

0000 73 65 74 20 78 3d 15 0d  0a 73 65 74 20 79 3d 12   set x=...set y=.
0010 0d 0a 65 63 68 6f 20 2a  2a 25 78 25 25 79 25 2a   ..echo **%x%%y%*
0020 2a

(just as every hex editor)
This was my attempt to create file that set LF and CR to variables smile - and I still don't know why it was unsuccessful it prints "§↕" (any help here will be welcomed - I don't know what goes wrong).
EDIT: I've set DEC codes instead HEX .Anyway still not works.
In fact the data that is behind the hexes is not necessary - it's only for visualisation .
To decode the sample just use this (if this above is saved in sample.hex) :

certutil -decodehex sample.hex not.working.bat

Any way it works for creation of the famous beep.bat :

0000 65 63 68 6f 20 07
this pattern can be used for creation of bat that echoes a random symbols by hex.Just edit the last character.
and this is a pattern for setting a symbol by hex to %#% variable (just edit the last character):
0000 73 65 74 20 78 3d 15 0d
Anyway there are few more things that I want to try with this smile

here's a how forfiles can be used for hex symbols

(0)

相关推荐

  • certutil - decode/encode BASE64/HEX strings.Print symbols by HEX code

    1. The thing I used this for wad to decode and encode BASE64 strings. (-decode and -encode command switches) .It has two annoying features here - for decode and encode it needs -----END CERTIFICATE----- and -----BEGIN CERTIFICATE----- at begining and

  • 利用certutil.exe实现在批处理(bat)中嵌入exe文件的方法

    利用certutil.exe实现在批处理(bat)中嵌入可执行文件或者各种媒体.图片之类二进制文件的简单方法! 实际上利用certutil.exe 把二进制文件(包括各种文件,exe可执行程序,图片,声音,mp3) 经过base64编码为文本,可以实现把这些文件嵌入到批处理代码中. ###有什么用?: 举个例子,批处理经常需要依赖其它命令行工具实现自动化脚本,如果把这些工具转成文本嵌入到代码中,贴到网上就可以直接把可用的代码发出去了.不需要上传附件. ###缺点: base64编码后的文本比原文

  • 使用 certutil 实现 Hex2Bin 和 Base64 加解密的方法

    应用到: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2 Certutil Certutil.exe 是作为 Windows Server 2003 家族中证书服务的一部分进行安装的命令行程序. 您还可以通过下载并安装 Windows Server 2003 管理工具包来获取 Certutil.exe (http://go.microso

  • C++解密Chrome80版本数据库的方法示例代码

    谷歌浏览器Google Chrome 80正式版例行更新详细版本80.0.3987.163.Google Chrome浏览器又称谷歌浏览器采用Chromium内核全球最受欢迎的免费网页浏览器追求速度.隐私安全的网络浏览器. 先说下吧.chrome80以前的版本是直接可以通过DPAPI来进行解密的.关于DPAPI 大家可以 看这里的介绍 DPAPI是Windows系统级对数据进行加解密的一种接口无需自实现加解密代码微软已经提供了经过验证的高质量加解密算法提供了用户态的接口对密钥的推导存储数据加解密

  • python模拟键盘输入 切换键盘布局过程解析

    PostMessage() def keyHwnd(hwndEx, char): """ 向指定控件输入值 :param hwndEx: 控件句柄 :param char: 字符串 :return: True or Flase """ try: for _ in char: print('key:%s ascii:%d' % (_, ord(_))) win32api.PostMessage(hwndEx, win32con.WM_CHAR, o

  • 关于加密解密 Base64 and URL and Hex Encoding and Decoding

    今天想换一下Discuz论坛的风格,谁知下载风格文件后,发现竟然是通过Base64加密过的   小林给推荐了个解密的页面,提取出代码如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  <html>  <head>  <title>Base64 and URL and Hex Encoding and Decoding</tit

  • JS实现的base64加密、md5加密及sha1加密详解

    本文实例讲述了JS实现的base64加密.md5加密及sha1加密.分享给大家供大家参考,具体如下: 1.base64加密 在页面中引入base64.js文件,调用方法为: <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>base64加密</title> <script type="text/javascript" s

  • Python 解码Base64 得到码流格式文本实例

    我就废话不多说了,直接上代码吧! # coding:utf8 import base64 def BaseToFlow(): while True: str = input("Please input src: ") flag = input("Please input Decode - 1 or Encode - 2: ") if str == "": str = "ApIAGBcEAAAEBO6x3nLykEEhjWMX1wHs&q

  • python字符串加密解密的三种方法分享(base64 win32com)

    1. 最简单的方法是用base64: 复制代码 代码如下: import base64 s1 = base64.encodestring('hello world')s2 = base64.decodestring(s1)print s1,s2 # aGVsbG8gd29ybGQ=\n# hello world Note: 这是最简单的方法了,但是不够保险,因为如果别人拿到你的密文,也可以自己解密来得到明文 2. 第二种方法是使用win32com.client 复制代码 代码如下: import

  • Android编程加密算法小结(AES、Base64、RAS加密算法)

    本文实例总结了Android编程加密算法.分享给大家供大家参考,具体如下: android常用加密算法之Base64加密算法: package com.long; /** * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in

随机推荐