-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathbase.proto
207 lines (174 loc) · 3.18 KB
/
base.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
syntax = "proto3";
package chalgen;
message Challenge {
oneof type {
Base64 base64 = 6;
Twitter twitter = 7;
CaesarCipher caesar = 8;
PCAP pcap = 9;
Exif exif = 10;
Slack slack = 11;
Phone phone = 12;
FileManager filemanager = 13;
Maze maze = 14;
Xor xor = 15;
Zip zip = 16;
Pdf pdf = 17;
Search search = 18;
PassShare passshare = 19;
Hashes hashes = 20;
AudioPlayer audioplayer = 21;
Data data = 22;
}
}
message Data {
string data = 1;
}
message AudioPlayer {
repeated Song songs = 1;
}
message Song {
string name = 1;
string artist = 2;
string album = 3;
string url = 4;
string cover_art_url = 5;
}
message Hashes {
string seed = 1;
string format = 2;
int32 count = 3;
repeated Override overrides = 4;
int32 length = 5;
}
message Override {
int32 index = 1;
string text = 2;
}
message PassShare {
string password = 1;
repeated Solution solutions = 2;
string message = 3;
}
message Solution {
int32 id = 1;
string hash = 2;
}
message Search {
repeated string entry = 1;
string password = 2;
}
message Pdf {
// TODO breadchris support attachments https://github.com/go-pdf/fpdf/blob/504c6dd8cc916cd7f2097877efd52cae5f1d8b18/fpdf_example_test.go#L2703
string content = 1;
}
message Xor {
string plaintext = 1;
string key = 2;
}
message Zip {
repeated File files = 1;
string password = 2;
}
message File {
string url = 1;
string text = 2;
}
message Maze {
message Path {
message Coordinate {
uint32 row = 1;
uint32 col = 2;
}
repeated Coordinate coords = 1;
string result = 2;
}
uint32 rows = 1;
uint32 columns = 2;
repeated Path paths = 3;
}
message FileManager {
repeated string urls = 1;
string password = 2;
}
message Phone {
repeated App apps = 1;
string name = 2;
}
message App {
string name = 1;
string url = 2;
string html = 3;
oneof type {
Tracker tracker = 4;
PhotoGallery photogallery = 5;
}
}
message Tracker {
string password = 1;
repeated Event event = 2;
}
message Event {
int64 timestamp = 1;
string name = 2;
}
message PhotoGallery {
repeated string url = 1;
}
message Slack {
repeated User users = 1;
repeated Channel channels = 2;
}
message Channel {
string name = 1;
repeated string usernames = 2;
repeated Message messages = 3;
}
message Message {
string username = 1;
string content = 2;
int64 timestamp = 3;
}
message Exif {
string key = 1;
string value = 2;
}
message PCAP {
repeated Packet packets = 1;
}
message Packet {
int64 timestamp = 1;
string source = 2;
string destination = 3;
string protocol = 4;
string data = 5;
}
message CaesarCipher {
string plaintext = 1;
int32 shift = 2;
}
message Base64 {
string data = 1;
}
message Twitter {
repeated User users = 1;
repeated Post posts = 2;
repeated Comment comments = 3;
}
message User {
string username = 1;
string bio = 2;
string password = 3;
string image = 4;
}
// Post represents a user's post.
message Post {
string username = 1;
string content = 2;
}
// Comment represents a comment on a post.
message Comment {
int64 post_number = 1;
int64 username = 2;
string content = 3;
}