| 
						
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -1,7 +1,8 @@
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Transformations
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				===============
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Transformation keywords turn the data at a sticky buffer into something else.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Transformation keywords turn the data at a sticky buffer into something else. Some transformations
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				support options for greater control over the transformation process
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Example::
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -12,7 +13,7 @@ This example will match on traffic even if there are one or more spaces between
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				the ``navigate`` and ``(``.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				The transforms can be chained. They are processed in the order in which they
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				appear in a rule. Each transforms output acts as input for the next one.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				appear in a rule. Each transform's output acts as input for the next one.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Example::
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -106,3 +107,16 @@ Example::
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				.. note:: depends on libnss being compiled into Suricata
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				pcrexform
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				---------
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Takes the buffer, applies the required regular expression, and outputs the *first captured expression*.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				.. note:: this transform requires a mandatory option string containing a regular expression.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				This example alerts if ``http.request_line`` contains ``/dropper.php``
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				Example::
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    alert http any any -> any any (msg:"HTTP with pcrexform"; http.request_line; \
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        pcrexform:"[a-zA-Z]+\s+(.*)\s+HTTP"; content:"/dropper.php"; sid:1;)
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
					 | 
				
			
			 | 
			 | 
			
				
 
 |