Package Peach :: Package Gui :: Module help
[hide private]

Source Code for Module Peach.Gui.help

  1  ''' 
  2  Help strings for the GUI. 
  3   
  4  @author: Michael Eddington 
  5  @version: $Id: help.py 808 2008-03-25 18:56:36Z meddingt $ 
  6  ''' 
  7   
  8  # 
  9  # Copyright (c) 2007-2008 Michael Eddington 
 10  # 
 11  # Permission is hereby granted, free of charge, to any person obtaining a copy  
 12  # of this software and associated documentation files (the "Software"), to deal 
 13  # in the Software without restriction, including without limitation the rights  
 14  # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell  
 15  # copies of the Software, and to permit persons to whom the Software is  
 16  # furnished to do so, subject to the following conditions: 
 17  # 
 18  # The above copyright notice and this permission notice shall be included in     
 19  # all copies or substantial portions of the Software. 
 20  # 
 21  # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR  
 22  # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  
 23  # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE  
 24  # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER  
 25  # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
 26  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
 27  # SOFTWARE. 
 28  # 
 29   
 30  # Authors: 
 31  #   Michael Eddington (mike@phed.org) 
 32  #   Blake Frantz(blakefrantz@gmail.com)  
 33  # $Id: help.py 808 2008-03-25 18:56:36Z meddingt $ 
 34   
 35   
 36  HelpTreeNodes = { 
 37          "Peach" : "", 
 38          "Template" : "Templates are top level elements that contain other data elements. Templates can be based on other Templates or Blocks using the ref attribute. Templates behave much like Blocks.", 
 39          "Block" : "Blocks are combinations of other data elements combined in sequence to produce a block of data. A block is similar to a c structure. Blocks can contain other blocks, strings, numbers, etc.", 
 40          "Number" : "Represents a non-ascii integer that has a size in bits, and a byte order.", 
 41          "Sequence" : "Specify a sequence of elements that will be used in order. An example use would be generating first IPv4 addresses, then IPv6 addresses.", 
 42          "Choice" : "A choice will choose zero or more of the elements it contains based on minOccurs and maxOccurs.", 
 43          "String" : "A string of characters. This string element can represent both char and wchar strings.", 
 44          "Relation" : "Describes relations between different data elements. Relations currently supported are \"size\" and \"count\".", 
 45          "Flags": "Define a set of bit flags. Supports multiple bit flags.", 
 46          "Flag" : "A one or more bit flag that is part of a flag set (Flags element).", 
 47          "Data" : "Specified a set of default data values for a template.", 
 48          "Blob" : "A piece of binary data specified in hex.", 
 49          "Include" : "Imports other Peach XML files into a namespace. This allows reusing existing templates from other Peach XML files.", 
 50          "PythonPath" : "Includes an additional path for module resolution. Synonomis with saying \"sys.path.append()\".", 
 51          "Import" : "Import a python file into the current context. This allows referencing generators and methods in external python files. Synonomis with saying \"import xyz\".", 
 52          "Test" : "Define a test to run. Currently a test is defined as a combination of a Template and optionally a Data set. In the future this will expand to include a state model, defaults for generation, etc.", 
 53          "Publisher" : "Define the publisher to use for this test. A publisher sends and receives data. This can take the form of a network protocol (TCP, UDP, HTTP) or calling an API/DLL or COM control. For testing purposes there are publishers that will simply output the generated data to the console.", 
 54          "Param" : "Param elements provide parameters for the parent element. It is possible to pass python types like arrays by specifying valueType as literal and providing python literal as value. e.g. "[ 1, 2, 3, 4 ]" would be an array.", 
 55          "Run" : "A collection of tests to run at once. The run name "DefaultRun" is special and will be run if no other run name is provided.", 
 56          "Generator" : "Attach a Peach generator to a data element. This can be any existing generator or a custom generator.", 
 57          "Transformer" : "Transform data into another format. This can include encoding it in some way (base64), compressing it (gzip), etc.", 
 58          "Agent" : "Configure a local or remote agent. Agents can perform variouse tasks during a fuzzing run. This element must include at least one Monitor child.", 
 59          "Monitor" : "Monitors are agent modules that can perform a number of tasts such as monitoring a target application to detect faults, restarting virtual machines, recording network traffice, etc. Custom monitors can easily be created and used along with the included monitors.", 
 60          "StateMachine" : "Defines a state machine to use during a fuzzing test.  State machines in Peach are intended to be fairly simple and allow for only the basic modeling typically required for fuzzing state aware protocols or call sequences.  State machines are made up of one or more States which are inthem selves make up of one or more Action.  As Actions are executed the data can be moved between them as needed.", 
 61          "State" : "The State element defines a sequence of Actions to perform.  Actions can cause a change to another State.  Such changes can occur dynamically based on content received or sent by attaching python expressions to actions via the onStart/onComplete/when attributes.", 
 62          "Action" : "Defines an action to perform in this state.  Actions are things such as send output, receive input, or change state.  Actions are performed top down.", 
 63          "Action-Param" : "Define a parameter for call.  Parameters are passed in the order they appear.", 
 64          "Action-Result" : "Used to capture return value of call." 
 65          } 
 66   
 67  HelpPropertyItems = { 
 68          "String" : { 
 69                  "type" : "Specify type of string. Default is char.", 
 70                  "length" : "Specify static length of string. Default is unbounded.", 
 71                  "tokens" : "Specify the set of tokens (as a Python array literal) that will be used to tokenize and fuzz this String. Example: "[':', '.', '[' ]"", 
 72                  "nullTerminated" : "Indicate if string is null terminated. Default is false.", 
 73                  "isStatic" : "Indicates value is static and should not be fuzzed.", 
 74                  "padCharacter" : "Specify the character to bad the string with if it's length if less then specified in the length attribute. Only valid when the length attribute is also specified.", 
 75                  }, 
 76           
 77          "Number" : { 
 78                  "valueType" : "Specify the format of the number as String, Hex, or Literal value.", 
 79                  "size" : "Specify the width of the number in bits.", 
 80                  "endian" : "Specify the byte order.", 
 81                  "signed" : "Specify whether the Number is signed or unsigned", 
 82                  }, 
 83   
 84          "Flags" : { 
 85                  "size" : "Specify the width of this field in bits.", 
 86                  "endian" : "Specify the byte order or this field.", 
 87                  }, 
 88          } 
 89   
 90  EnumDropDowns = { 
 91          "Generator" : { 
 92                  "class" : [ 
 93                          "AsInt16", 
 94                          "AsInt24", 
 95                          "AsInt32", 
 96                          "AsInt4x4", 
 97                          "AsInt64", 
 98                          "AsInt8", 
 99                          "BadBerEncodedOctetString", 
100                          "BadDate", 
101                          "BadDerEncodedOctetString", 
102                          "BadFilename", 
103                          "BadHostname", 
104                          "BadIpAddress", 
105                          "BadNumbers", 
106                          "BadNumbers16", 
107                          "BadNumbers24", 
108                          "BadNumbers32", 
109                          "BadNumbers8", 
110                          "BadNumbersAsString", 
111                          "BadPath", 
112                          "BadPositiveNumbers", 
113                          "BadString", 
114                          "BadStrings", 
115                          "BadTime", 
116                          "BadUnicode", 
117                          "BadUnsignedNumbers", 
118                          "BadUnsignedNumbers16", 
119                          "BinaryList", 
120                          "Bit", 
121                          "Block", 
122                          "Block2", 
123                          "Block3", 
124                          "BlockRandomizer", 
125                          "BlockSize", 
126                          "Dictionary", 
127                          "Double", 
128                          "EndlessRandomStrings", 
129                          "EndlessRandomWideStrings", 
130                          "FixedLengthString", 
131                          "FlagPermutations", 
132                          "FlagSet", 
133                          "Flags", 
134                          "Flags2", 
135                          "Float", 
136                          "GeneratorChoice", 
137                          "GeneratorList", 
138                          "GeneratorList2", 
139                          "GeneratorListGroupMaster", 
140                          "GeneratorListGroupSlave", 
141                          "GoodUnicode", 
142                          "IcmpChecksum", 
143                          "Incrementor", 
144                          "Int16", 
145                          "Int32", 
146                          "Int64", 
147                          "Int8", 
148                          "List", 
149                          "MultiBlock", 
150                          "MultiBlockCount", 
151                          "NumberLimiter", 
152                          "NumberVariance", 
153                          "NumbersVariance", 
154                          "OverLongUtf8", 
155                          "PerCallIncrementor", 
156                          "PerRoundIncrementor", 
157                          "PrintStderr", 
158                          "PrintStdout", 
159                          "PseudoRandomNumber", 
160                          "Repeater", 
161                          "RepeaterGI", 
162                          "SequentialFlipper", 
163                          "Static", 
164                          "StaticBinary", 
165                          "StringTokenFuzzer", 
166                          "StringVariance", 
167                          "TopLevelDomains", 
168                          "WithDefault", 
169                          "Wrap", 
170                          ] 
171                  }, 
172           
173          "Publisher" : { 
174                  "class" : [ 
175                          "tcp.Tcp", 
176                          "udp.Udp", 
177                          "process.Command", 
178                          "stdout.Stdout", 
179                          "file.File", 
180                          "file.FilePerIteration", 
181                          "sql.Odbc", 
182                          "com.Com", 
183                          "Publisher", 
184                          ] 
185                  }, 
186           
187          "Logger" : { 
188                  "class" : [ 
189                          "logger.Filesystem" 
190                          ] 
191                  }, 
192           
193          "Transformer" : { 
194                  "class" : [ 
195                          "asn1.DerEncodeOctetString", 
196                          "asn1.DerEncodeInteger", 
197                          "asn1.BerEncodeOctetString", 
198                          "asn1.BerEncodeInteger", 
199                          "asn1.CerEncodeOctetString", 
200                          "asn1.CerEncodeInteger", 
201                          "compress.GzipCompress", 
202                          "compress.GzipDecompress", 
203                          "compress.Bz2Compress", 
204                          "compress.Bz2Decompress", 
205                          "crypto.Crypt", 
206                          "crypto.UnixMd5Crypt", 
207                          "crypto.ApacheMd5Crypt", 
208                          "crypto.CvsScramble", 
209                          "crypto.Md5", 
210                          "crypto.Sha1", 
211                          "crypto.Hmac", 
212                          "encode.SidStringToBytes", 
213                          "encode.WideChar", 
214                          "encode.UrlEncode", 
215                          "encode.NetBiosDecode", 
216                          "encode.NetBiosEncode", 
217                          "encode.UrlEncodePlus", 
218                          "encode.Base64Encode", 
219                          "encode.Base64Decode", 
220                          "encode.HtmlEncodeAgressive", 
221                          "encode.HtmlDecode", 
222                          "encode.Utf16", 
223                          "encode.Utf16Le", 
224                          "encode.Utf16Be", 
225                          "encode.Ipv4StringToOctet", 
226                          "encode.Ipv4StringToNetworkOctet", 
227                          "encode.Ipv6StringToOctet", 
228                          "encode.Hex", 
229                          "encode.HexString", 
230                          "type.NumberToString", 
231                          "type.StringToInt", 
232                          "type.StringToFloat", 
233                          "type.IntToHex", 
234                          "type.AsInt8", 
235                          "type.AsInt16", 
236                          "type.AsInt24", 
237                          "type.AsInt32", 
238                          "type.AsInt64", 
239                          ] 
240                  }, 
241           
242          "Monitor" : { 
243                  "class" : [ 
244                          "debugger.WindowsDebugger", 
245                          "vm.Vmware", 
246                          "process.PageHeap", 
247                          "process.Process", 
248                          "network.PcapMonitor", 
249                          "memory.Memory", 
250                          "socketmon.SocketMonitor", 
251                          ] 
252                  }, 
253           
254          "Action" : { 
255                  "type" : [ 
256                          "start", 
257                          "connect", 
258                          "accept", 
259                          "close", 
260                          "stop", 
261                          "input", 
262                          "output", 
263                          "call", 
264                          "slurp", 
265                          "changeState", 
266                          ] 
267                  }, 
268           
269          "Action-Param" : { 
270                  "type" : [ 
271                          "in", 
272                          "inout", 
273                          "out", 
274                          ] 
275                  }, 
276          } 
277   
278  # end 
279