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

高新快速建设网站找哪家/seo 优化一般包括哪些内容

高新快速建设网站找哪家,seo 优化一般包括哪些内容,青浦营销型网站建设,网站建设 程序开发文章目录 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.whsansanxincailiao.cn/news/31952298.html

相关文章:

  • 网站备案名称修改/有创意的网络广告案例
  • html静态网站下载/seo外包优化服务商
  • 互动型网站成功例子/网站优化团队
  • 高密做网站/网络广告联盟
  • 网站到期续费通知/浙江seo公司
  • 宝安做棋牌网站建设有哪些公司/管理培训班
  • 服装定制app/太原seo
  • wordpress注册需要花钱吗/google搜索排名优化
  • 郑州网站 建设/成都门户网站建设
  • 寻花问柳专注做一家男人爱的网站/成人职业技能培训学校
  • 公司建设网站的费用/百度 搜索热度
  • 设计优秀的网站推荐/目前小说网站排名
  • 门户网站系统建设招标文件/西安seo工作室
  • 衡水网站制作/贵阳网络推广排名
  • 做产品推广什么网站会比较好/网络营销工程师前景
  • 苏州网络推广网站建设/北京搜索引擎优化经理
  • 清河网站建设设计费用/网站收录平台
  • 网站建设需要哪些流程/郑州seo线上推广系统
  • 免费素材视频网站哪个最好/seo最新
  • wordpress 产品图片/网站seo收费
  • 旅游网站建设设计公司/seo需求
  • 贵阳两学一做网站/外贸seo是什么意思
  • 苹果网站上物体阴影怎么做的/百度关键词查询网站
  • 龙游住房和城乡建设局网站/企业如何建站
  • 音乐网站建设规划/免费隐私网站推广app
  • oto网站开发/产品营销策略怎么写
  • 网站管理助手v3.0/关键词优化策略有哪些
  • 优惠券网站是不是很难做/潍坊网站建设平台
  • 网络公司制作网站/东莞网络推广系统
  • 草包做视频网站/怎么做一个网站平台