[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

ascode 的一些资料汇编

本帖最后由 CrLf 于 2012-12-23 16:01 编辑

此汇编非彼汇编,它是特殊汇编的资料汇编...唔,越讲越乱
-----------------------------------------------------------------------------------------------------------------
ascode是什么(引用自批处理与其他语言混合编程2):
这类汇编程序的特殊性在于,所有的代码全部分布于ASCII码表的可显示字符范围中,当然这样的程序不是碰巧得到的,而是人为的构造出来的,其中需要用到许多技巧。比如最常见的中断调用代码int 21(CD 21),因为不在ASCII可显示字符范围内,所以用到许多压栈、出栈、增减代码来构造,所以它的代码段是动态变化的。这样的代码被叫做 ASCODE,这样的技术被称作 ASCII Assemble,一门即将消失的技术,可想而知,这样的代码构造起来是困难的,在网上流传的ASCODE只有很少量的是人为构造的,因为已经有成熟的技术可以将任何二进制文件转变为ASCODE,这样的过程叫encode。而ASCODE执行的过程需要decode,合称codec,codec 的算法已知的超过4种,比较有名的应该是Herbert Kleebauer的算法,不过它要求原程序必须有org 170H的类似标记,因为前面的文件头被用来存放decode代码。

后文链接的帖子中如果提到 cn-dos,请自行将链接中的 www.cn-dos.net 替换为备份站点地址 cndos.fam.cx(站点由 qzwqzw 提供)
-----------------------------------------------------------------------------------------------------------------
据说几种编码名称:
uuencoded
base64
binhex
XXencoded
yencoded
能搜就自己搜下吧,反正我是没谷歌到...

-----------------------------------------------------------------------------------------------------------------
cn-dos 全文搜索 ascode 的一些链接(来自 Batcher):
http://cndos.fam.cx/forum/viewth ... mp;highlight=ascode
http://cndos.fam.cx/forum/viewth ... mp;highlight=ascode
http://cndos.fam.cx/forum/viewth ... mp;highlight=ascode
http://cndos.fam.cx/forum/viewth ... mp;highlight=ascode
http://cndos.fam.cx/forum/viewth ... mp;highlight=ascode
http://cndos.fam.cx/forum/viewth ... mp;highlight=ascode
http://cndos.fam.cx/forum/viewth ... mp;highlight=ascode
http://cndos.fam.cx/forum/viewth ... mp;highlight=ascode
http://cndos.fam.cx/forum/viewth ... mp;highlight=ascode
http://cndos.fam.cx/forum/viewth ... mp;highlight=ascode

-----------------------------------------------------------------------------------------------------------------
cn-dos 的搜索结果里整理出的内容:

双句柄同步输出:
  1. echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=>tee.com
  2. echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU WwX0GwUY Wv;ovBX2Gv0ExGIuht6>>tee.com
  3. echo @VyI?@xAp~sA`LZNxOq@Kt@FB?sUs`LbLB?tgj`{gjB~0x>>tee.com
  4. tee.com >a.txt 2>b.txt
复制代码
根据输入创建bat:
  1. @echo off
  2. echo BATCH_INPUT___hgQX-PPP_XPPP E#HH0E50EG0Ef0Ehs>myinput.com
  3. echo myinput.bat hoAX5@@PZYh@xX5@D3!r/P[WX,b,-PZh>>myinput.com
  4. echo X3!X2ErP,{,{PYX4=0ErWX,j,-PZh@@X3!=set input>>myinput.com
  5. echo Enter your name:
  6. myinput.com
  7. call myinput.bat
  8. echo Hello %input%
复制代码
将输入的内容输出:
  1. echo hP1X500P[PZBBBfh#b##fXf-V@`$fPf]f3/f1/5++u5x>in.com
  2. set /p passwd=enter your QQ password:<nul
  3. for /f "tokens=*" %%i in ('in.com') do set passwd=%%i
  4. del /f in.com >nul 2>nul
复制代码
字节长度计算:
  1. :0hmrX-D@-r0P[h$pX-p#P]3/1/horX-D@-r0P[h?EX-r#P]3/1/h#rX-cA-@0P[1/3/UXtoum
复制代码
-----------------------------------------------------------------------------------------------------------------
bathome 全文搜索 ascode 找到的一些帖子,只贴链接代码就不发了。粗筛了一下有所创新的,如有遗漏请跟帖补充:
小型二进制文件ASCII编码器
【挑战】批处理如何创建仅含一个nul字符的文件
[挑战]如何不换行输出以等号或引号开头的行?
屏蔽命令行密码(见附)

附:《屏蔽命令行密码》一贴中 techon 提供的资料:
你可以从下面的连接看到Herbert Kleebauer所参与的3000多个帖子,里面有大量的批处理技术讨论和代码,看来他主要活跃于google group。
http://groups.google.com/groups/ ... xUGDBtnv2zlXxVZTWPs
1

评分人数

    • 老刘1号: 很强大!可惜64位不支持技术 + 1

回复 2# Demon


    thanks,回头研究下。
    小规模的工程还是可以目测手算的,很累但是很好玩,代码也比较短。稍大的工程恐怕没这个精力,应该用解码段+文本数据段来实现了,有构思,不过貌似早就有了,只是作为一只半英盲实在是谷歌不到

TOP

回复 4# Demon


    汗,这个倒是挺蛋疼的,可惜资料少,也许 qzw 会知道吧~

TOP

回复 7# qzwqzw


    为了压缩代码,有三个特殊字符实在避不开,不过好在不多,对于行长度的控制倒是实现了,断行的位置刚好在正中间~不过更新算法貌似多次运行会出错,不知道是什么鬼原因,真的是鬼原因,完全没法调试,认栽了,Fuck...实在解决不了的话,只好把上次的算法改改来用了,那样的话没法压缩长度,恐怕又要到 60h

TOP

回复 11# bluenightsky


    h2b 这个名字已经说明了一切,真就是 Bin To Hex 再 Hex To Bin 的把戏

TOP

返回列表