当前位置: 首页 > news >正文

网站建设项目策划书模板范文免费建立个人网站

网站建设项目策划书模板范文,免费建立个人网站,中华人民共和国城乡和建设部网站,哈尔滨做网站哪家便宜文章目录 IDA, tar - win10自带的tar.exe可以使用的隐藏命令行参数概述笔记做一个备份当前目录的工具 - backup_cur_dir.bat查不到命令行参数的疑惑先跟一下win10版的tar的 -a参数是否真的有效archive_xx函数哪里来的?用命令行测试,也证明加 -a之后&…

文章目录

    • IDA, tar - win10自带的tar.exe可以使用的隐藏命令行参数
    • 概述
    • 笔记
    • 做一个备份当前目录的工具 - backup_cur_dir.bat
    • 查不到命令行参数的疑惑
    • 先跟一下win10版的tar的 -a参数是否真的有效
    • archive_xx函数哪里来的?
    • 用命令行测试,也证明加 -a之后,压缩算法不一样了
    • 备注
    • END

IDA, tar - win10自带的tar.exe可以使用的隐藏命令行参数

概述

再看一个开源工程的编辑脚本(bat)
发现他居然用tar命令。
难道我的win10里面还有tar.exe?

C:\Users\chenx>where tar
C:\Windows\System32\tar.exeC:\Users\chenx>tar --help
tar(bsdtar): manipulate archive files
First option must be a mode specifier:-c Create  -r Add/Replace  -t List  -u Update  -x Extract
Common Options:-b #  Use # 512-byte records per I/O block-f <filename>  Location of archive (default \\.\tape0)-v    Verbose-w    Interactive
Create: tar -c [options] [<file> | <dir> | @<archive> | -C <dir> ]<file>, <dir>  add these items to archive-z, -j, -J, --lzma  Compress archive with gzip/bzip2/xz/lzma--format {ustar|pax|cpio|shar}  Select archive format--exclude <pattern>  Skip files that match pattern-C <dir>  Change to <dir> before processing remaining files@<archive>  Add entries from <archive> to output
List: tar -t [options] [<patterns>]<patterns>  If specified, list only entries that match
Extract: tar -x [options] [<patterns>]<patterns>  If specified, extract only entries that match-k    Keep (don't overwrite) existing files-m    Don't restore modification times-O    Write entries to stdout, don't restore to disk-p    Restore permissions (including ACLs, owner, file flags)
bsdtar 3.5.2 - libarchive 3.5.2 zlib/1.2.5.f-ipp

有点好奇,去看了一眼。
在这里插入图片描述
是win10自带的。
但是不清楚是装什么软件装上的这个tar.
先学一下这个脚本,看看怎么用tar来做一个文件压缩包

笔记

做一个备份当前目录的工具 - backup_cur_dir.bat

@rem @file backup_cur_dir.bat
@rem @brief 假设当前目录为 d:\\dir_a\\dir_b, 备份当前目录的内容到上级目录 d:\\dir_a\\dir_b.tar.gz
@rem @note tar.exe 是 win10自带的, 有微软签名@echo off
pushd %~dp0@rem echo %~dp0
@rem D:\3rd\game_prj\CNC_TS_and_RA2_Mission_Editor\scripts\test\
@rem %~dp0 尾巴上有路径符号\\@rem tar命令的参数含义
@rem -c 建立
@rem -a 自动根据输出文件名来决定压缩算法
@rem -v 将操作详细显示出来
@rem -f 指定文件名@rem 提取当前目录名(不含路径)
for %%i in ("%cd%") do set "folder_name=%%~nxi"echo 备份当前目录内容..., 请稍候@rem 压缩当前目录a所有内容到上级目录的a.tar.gz
tar -c -v -a -f "%~dp0..\\%folder_name%.tar.gz" *@rem 判断是否备份成功过
set rc=%ERRORLEVEL%
if %rc% == 0 (echo 备份当前目录内容 - 执行成功
) else (echo 执行失败,错误码:%rc%
)popd

查不到命令行参数的疑惑

我用到了的tar命令行参数如下:

tar -c -v -a -f

除了 -a , 其他参数都可以用tar --help查到。
那么这个-a参数是怎么来的,别人怎么知道这么用? 莫非linux的tar有这个参数?
那么这个-a参数在win10版的tar中真的有效么?

先跟一下win10版的tar的 -a参数是否真的有效

判断有效的标准,win10版的tar.exe确实处理了这个参数才算数。
如果是忽略了这个参数,那么就说明这个参数是无效的。
用IDA64(IDA8.3)载入C:\Windows\System32\tar.exe, 将tar.exe.idx存在自己有权限的普通目录
将断点设置在main的入口,直接用伪码调试。
在这里插入图片描述
设置调试器为windbg(本地已经安装了和win10配套的windbg,且已经配好了windbg本身的参数和IDA的windbg的调试参数)
因为是右击选择的tar.exe用IDA64载入,所以应用程序和输入文件已经是C:\Windows\System32\tar.exe
将工作路径设置为.bat脚本所在的路径
将命令行参数设置为可以手工运行正常的bat的固定参数。
在这里插入图片描述

点击OK,然后按F9跑起来,等待被断住。
断住之后,直接F5, 然后在伪码中F8。

      else if ( p_cur_env_TAPE == 'a' ){// 确实用上了外部命令行参数中的 -aprog_zip_opt |= 1u; // 这里位或上了新的内部选项}// ...if ( v79 ){v92[0] = asc_7FF6E8D0A6B8[0];v92[1] = v79;v92[2] = asc_7FF6E8D0A6B8[2];if ( !strchr("cru", (char)v21) )lafe_errc(1);}// 这里用到的函数用到了外部给定的参数prog_zip_optarchive_match_set_inclusion_recursion(matched, ((prog_zip_opt >> 7) & 1) == 0, v22, ui_p_cur_env_TAPE);v50 = *(_BYTE *)p_env_TAPE[0] < 0x2Du;if ( *(_BYTE *)p_env_TAPE[0] != 45 || (v50 = 0, *(_BYTE *)(p_env_TAPE[0] + 1)) )

archive_xx函数哪里来的?

看到tar.exe中用到了 archive_xx(), 如下

archive_match_set_inclusion_recursion
archive_match_include_date
archive_error_string

这些函数双击过去,好像是动态载入的。
查看引入表,确实有同名的函数
在这里插入图片描述
那么说明是调用的archiveint.dll来的。
看archiveint.dll, 也是MS家的。

在这里插入图片描述
去msdn上查 archive_match_set_inclusion_recursion,没有线索。
说明这是MS内部实现用的dll接口。
去github上查 archive_match_set_inclusion_recursion,找到一个开源库libarchive,下载了发布版 libarchive-3.7.7
在本地编译后,查文档和代码实现,基本上能确定,MS就是从这个开源工程上自己编译的,至于是不是改了,暂时不清楚。
但是这2个软件同源,如果改动不大,命令行参数基本是一样的。
查libarchive的文档,file:///D:/3rd/RE_prj/libarchive-3.7.7/doc/html/bsdtar.1.html

-a, --auto-compress(c mode only) Use the archive suffix to decide a set of the format and the compressions. As a simple example,tar -a -cf archive.tgz source.c source.hcreates a new archive with restricted pax format and gzip compression,tar -a -cf archive.tar.bz2.uu source.c source.hcreates a new archive with restricted pax format and bzip2 compression and uuencode compression,tar -a -cf archive.zip source.c source.hcreates a new archive with zip format,tar -a -jcf archive.tgz source.c source.hignores the “-j” option, and creates a new archive with restricted pax format and gzip compression,tar -a -jcf archive.xxx source.c source.hif it is unknown suffix or no suffix, creates a new archive with restricted pax format and bzip2 compression.

可以在libarchive的文档中查到, -a选项确实是按照文件名的后缀,自动选择压缩算法。

用命令行测试,也证明加 -a之后,压缩算法不一样了

tar -c -v -a -f "%~dp0..\\%folder_name%.tar.gz" *
加了 -a, 用7z打开, 确实是.tar.gz, 压缩后的体积更小tar -c -v -f "%~dp0..\\%folder_name%.tar.gz" *
不加 -a, 用7z打开,其实是一个.zip

备注

我现在就用到了 -c -v -a -f, 知道了 -a的参数用法说明,已经不想知道其他参数了。

但是以后如果想用更多的win10 tar.exe的参数,而win10版的tar对更多参数又没有说明,此时看libarchive的文档就有用了。

END

http://www.cadmedia.cn/news/13921.html

相关文章:

  • html5网页制作实例代码霸榜seo
  • 非遗网站建设目的网络营销试卷
  • termux安装wordpress谷歌seo站内优化
  • 外贸网站怎么找客户邯郸seo
  • 网站开发培训网房地产十大营销手段
  • 网站免费建站o网页广告调词平台多少钱
  • 深圳品牌网站建设公司哪家好国家免费职业培训平台
  • 沈阳做网站开发公司网站seo外包靠谱吗
  • 网站个人主页模板线下推广都有什么方式
  • 深圳互联网公司招聘网站建设加推广优化
  • 网站建设责任分解成都新闻最新消息
  • 人民政府网站的信息资源建设惠州关键词排名优化
  • 点石嘉业北京网站建设公司微信小程序开发费用
  • 网站栏目名称大全免费网站免费
  • 高校 网站建设实施方案网络优化培训要多少钱
  • 搜狗网站优化软件百度云盘登录
  • 搜狐快站官网app推广赚钱平台
  • 学校网站建设的意义的主要负责人夸克搜索引擎入口
  • 商务网站建设的应用今日新闻联播主要内容摘抄
  • 教育加盟培训网站建设网上代写文章一般多少钱
  • 高档网站建设公司itme收录优美图片官网
  • 北京高档网站建设经典广告
  • 搭建网站服务器多少钱seo网站内部优化方案
  • wrb网站架构百度优化插件
  • 广西贵港网站建设深圳seo推广外包
  • 品牌营销策划书模板手机优化大师下载
  • 图片生成器免费太原seo网站排名
  • 南昌网站专业制作关键词点击价格查询
  • 设计有限公司企业网站优化关键词
  • 桂林网站建设杭州网站优化咨询