当前位置:主页 > DDOS和CC >

网站安全防护_cc防御盾_快速解决

时间:2021-06-11 20:47来源:E度网络 作者:E度网络 点击:

网站安全防护_cc防御盾_快速解决

"gem"文件格式是打包和分发Ruby程序和库的一种自包含的标准方法。它由RubyGems使用,RubyGems是Ruby的默认包管理器。Ruby gem是从给定的".gemspec"文件构建的,该文件包含应用程序使用的所有库的依赖项和版本信息。应用程序的源代码也与一些元数据一起打包到gem中。在本文中,我们将了解如何从打包的".gem"文件中提取ruby源代码文件。###Gem文件格式首先,高防服务器与cdn,我们需要了解典型Ruby gem的内容。".gem"文件只是一个标准的POSIX tar归档文件。我们可以通过运行Unix file命令来确认这一点,如下所示:Asankhayas MacBook笔记本电脑-专业版:下载asankhaya$文件thor-0.19.1.gemthor-0.19.1.gem:POSIX tar存档假设它是一个标准的tar归档文件,我们可以将文件从".gem"重命名为".tar",并通过提取归档文件来打开它。它将显示每个gem中包含三个gzip文件-校验和.yaml.gz, 数据.tar.gz以及元数据.gz. 这个校验和.yaml文件包含其他两个gzip文件的SHA1和SHA512哈希:---SHA1:元数据.gz:3a362ea0b9b3cf1f41649c522ddc312925cf1e47数据.tar.gz:9267cf56eb7c014270c8077b1ed4b2c95fcaa7eaSHA512:元数据.gz:C659D6A5020FA953EC51394089C5A49A4FAE9AFEFC21900A088A8E481A6AC586FBE2C268A47204D66B19CA660468F1E3E87F4E5BE9B509FAF83FC3992B2B7EB42数据.tar.gz:传真520F0A428F1CF3BA627B47285C04534E1163359D82C7B15596EB76C1762D66B32195E8519252C58A061CCB54E37E8BFA4 BA98684C6B0EFC8F208CD66F4元数据文件包含gem的详细信息,如版本、作者、依赖项和文件列表。数据gzip文件本身就是一个归档文件,其中包含gem的源代码。解压缩和解压缩归档文件将显示以下文件夹结构:Asankhayas MacBook笔记本电脑-赞成:数据asankhaya美元变更日志.md自述文件.md箱子规格许可证.mdThorfile公司利伯托.宝石佩金在给定的文件夹结构中,lib目录包含Ruby源代码文件,而bin目录包含编译后的二进制文件。因此,为了从打包的gem中提取源文件,我们需要首先将gem提取为tar归档文件,然后提取其中的数据归档文件,最后可以在data下的lib文件夹中找到源文件。现在我们已经对gem文件中的内容有了基本的了解,让我们看看如何使用Java程序处理".gem"文件并提取Ruby源代码。###用Java从Gem文件中提取为了在Java中处理'.tar'文件,我们可以使用apachecommons压缩库。该库提供了TarArchiveInputStream,可用于提取tar并在归档文件中的所有项上循环。类似地,京东如何防御ddos,对于".gz"文件,我们可以使用java.util.zip文件用于提取存档的包。下面的代码片段展示了如何使用它们来提取Ruby源文件。File gemFile=newFile("thor-0.19.1.gem");InputStream gemStream=newFileInputStream(gemFile);//将gem文件视为tar存档TarArchiveInputStream targetmstream=新的ararchiveinputstream(gemStream);档案中心;而((gemEntry=targetstream.getNextEntry()) !=空){如果(gemEntry.getName()。等于("数据.tar.gz")) {// 数据.tar.gz是GZIp存档gzip输入流gzStream=newgzip输入流(targetstream);TarArchiveInputStream dataTarStream=newTarArchiveInputStream(gzStream);ArchiveEntry源项;while((sourceEntry=dataTarStream.getNextEntry()) !=空){//在lib目录中查找.rb文件if(源项.getName().startsWith("lib/")&&源项.getName().endsWith(".rb")){//这是一个可以使用JRuby解析器解析的Ruby源文件。}}}}这里唯一需要注意的是,高防cccdn,ip经常被ddos怎么防御,在处理数据.tar.gz文件,我们需要首先使用gzip输入流,然后将其传递给TarArchiveInputStream的构造函数以打开.gz,然后打开后续的.tar存档。一旦我们访问了正确的归档文件,在循环使用条目时,我们需要通过比较扩展名和文件扩展名.rb来检查lib文件夹中的Ruby源代码文件。这将确保我们处理gem中的所有源文件。Ruby源代码本身可以使用JRuby解析器进行解析。

,网络病毒
推荐文章
最近更新