I'd like to describe the basic principles of ASN.1 Message structure processing. I used to work with it a long time ago when I was a member of a team working with messages extracted from UMTS Radio Network Controllers (RNC). Me and my collegaues developed the desktop application that provides an information obtained from RNC in user-friendly format such as graphics, tables, some views that aggregate the info and many many more.
The information from RNC was represented in xml document. The document contains a lot of elements with information encrypted with ASN.1 algorythm, for example:
<evt function="Iur" name="RnsapRadLinkRestInd" changeTime="28.525" vendorSpecific="false">
<message protocol="Rnsap" version="0006">00124c00010d000001009a4006400093400100ffff
To understand what are we gotta do with all this stuff we need to know about 3GPP notice.
I suppose if you are reading this post you now what 3GPP means, if not, please visit http://www.3gpp.org
There are a lot of ASN.1 message structures defined in 3GPP notices. In the list of notices http://www.3gpp.org/ftp/Specs/2008-06/Rel-7/25_series/ we may find ASN.1 notice for RRC messages into 25331 document (http://www.3gpp.org/ftp/Specs/2008-06/Rel-7/25_series/25331-791.zip)
Using the ASN.1 compiler (http://www.obj-sys.com/asn1-compiler.shtml) we are able to convert the notice instances to the objects of the popular programming languages (C/C#/java etc); thus, we get a source code. With xml parser we are able to extract an encrypted string and pass it as a parameter for a constructor of the ASN.1 class genrated.