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

整站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.dtcms.com/wzjs/146833.html

相关文章:

  • 深圳网站建设ppchsj做网站推广公司
  • wordpress ajax失败seo千享科技
  • 大连手机自适应网站建设费用品牌营销策划方案案例
  • 福州婚庆网站建设哪个公司比较专业百度竞价排名怎么靠前
  • 医院网站如何建立班级优化大师的优点
  • 做网站服务器多大的好seo网络推广方法
  • 做网站的软件page如何做网络推广赚钱
  • 影视企业宣传片制作青岛seo服务哪家好
  • 网站服务费怎么做凭证外贸网站有哪些
  • 建设银行企业版网站域名服务器查询
  • 有哪些程序网站公司网站搭建
  • 两学一做网站是多少钱网站域名解析
  • 成都网站app开发百度seo2022
  • 昌平企业网站建设金花站长工具
  • 企业关键词排名优化网址东莞关键字排名优化
  • 单页网站如何做排名江苏短视频seo搜索
  • 郑州市建设教育协会网站上海seo推广方法
  • 临安区建设局网站登封网络推广公司
  • 模板网站和定制网站的区别是什么西安网站制作公司
  • 病毒网站推广优化seo是什么
  • 前端素材网上海专业seo排名优化
  • 东莞市官网网站建设价格宣传网站怎么做
  • 做跨境的网站有哪些新产品推广方案策划
  • 误入网站退不了怎么做哪个好用?
  • wordpress 制作企业站做一个公司网站要多少钱
  • 网站初期建设方案百度一下浏览器
  • 网站文字规划58同城推广
  • 印度网站域名哪家网络公司比较好
  • 深圳外贸建站网络推广价格su搜索引擎优化
  • 网站建设中最重要的是什么友情链接的网站