Tuesday, February 10, 2009

Adding a Stong Name to an existing DLL without source code

Article by Paul Hayman, details in web page:
http://www.geekzilla.co.uk/ViewCE64BEF3-51A6-4F1C-90C9-6A76B015C9FB.htm

  1. Generate a KeyFile using sn tool
    Location: C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\sn.exe
    Command: sn -k keyPair.snk
  2. Get the MSIL for the assembly
    Location: C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\ildasm.exe
    Command: ildasm SomeAssembly.dll /out:SomeAssembly.il
  3. Rename the original assembly, just in case
    ren SomeAssembly.dll SomeAssembly.dll.orig
  4. Build a new assembly from the MSIL output and your KeyFile
    Location: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ilasm.exe
    Command: ilasm SomeAssembly.il /dll /key= keyPair.snk

Wednesday, February 4, 2009

Regex Syntax

  • .(dot) : matching any character (if the Singleline option is enabled, a dot matches any character including the new line character
  • \w - \W : matching any word character - matching any non-word character
  • \s : matching white-space (white-space is defined as the space character, new line (\n), form feed (\f), carriage return (\r), tab (\t) and vertical tab(\v).
  • \d : matching digits 0-9
  • [] : matching sets of single characters in square brackets
  • [^](caret): added to the start of the set of characters to specifiy that none matching in the set.
  • [1-9] : matching ranges of characters using the hyphen(-). combine ranges of characters togehter as [a-d0-9]
  • *(Star) : matching zero or more times of previous character
  • +(plus) : matching one or more time of previous character
  • ? : matching zero of one times
  • {n} : the minimum number of matches
  • {n,m} : n - the minimum number of mathces, m - the maximum number of matches
  • ^ : matching the start of a string - must be at the beginning of a string
  • $ : matching the end of a string - must be at the end of a string

(P.S. the above are notes after reading the articles online, more details -- see the article: http://www.radsoftware.com.au/articles/regexlearnsyntax.aspx)