@@ -30,14 +30,38 @@ def self.parse(args)
30
30
options [ :badchars ] = v
31
31
end
32
32
33
- opt . on ( '-e' , '--egg <String>' , "Egg " ) do |v |
33
+ opt . on ( '-e' , '--egg <String>' , "The egg (Please give 4 bytes) " ) do |v |
34
34
options [ :eggtag ] = v
35
35
end
36
36
37
37
opt . on ( '-p' , '--platform <String>' , "(Optional) Platform" ) do |v |
38
38
options [ :platform ] = v
39
39
end
40
40
41
+ opt . on ( '--startreg <String>' , "(Optional) The starting register" ) do |v |
42
+ options [ :startreg ] = v
43
+ end
44
+
45
+ opt . on ( '--forward' , "(Optional) To search forward" ) do |v |
46
+ options [ :startreg ] = true
47
+ end
48
+
49
+ opt . on ( '--depreg <String>' , "(Optional) The DEP register" ) do |v |
50
+ options [ :depreg ] = v
51
+ end
52
+
53
+ opt . on ( '--depdest <String>' , "(Optional) The DEP destination" ) do |v |
54
+ options [ :depdest ] = v
55
+ end
56
+
57
+ opt . on ( '--depsize <Fixnum>' , "(Optional) The DEP size" ) do |v |
58
+ options [ :depsize ] = v
59
+ end
60
+
61
+ opt . on ( '--depmethod <String>' , "(Optional) The DEP method to use (virtualprotect/virtualalloc/copy/copy_size)" ) do |v |
62
+ options [ :depmethod ] = v
63
+ end
64
+
41
65
opt . on ( '-a' , '--arch <String>' , "(Optional) Architecture" ) do |v |
42
66
options [ :arch ] = v
43
67
end
@@ -62,6 +86,8 @@ def self.parse(args)
62
86
raise OptionParser ::InvalidOption , "#{ options [ :format ] } is not a valid format"
63
87
elsif options [ :eggtag ] . blank?
64
88
raise OptionParser ::MissingArgument , '-e is required'
89
+ elsif options [ :depsize ] && options [ :depsize ] =~ /^\d +$/
90
+ raise OptionParser ::InvalidOption , "--depsize must be a Fixnum"
65
91
end
66
92
67
93
options
0 commit comments