The structure of a dnsRecord seems to be described in Microsoft's Open Specification document for DNS (MS-DNSP). Specifically for the dnsRecord it is described in section 18.104.22.168:
From the above link:
DataLength (2 bytes): An unsigned binary integer containing the
length, in bytes, of the Data field.
Type (2 bytes): The resource record's type. See DNS_RECORD_TYPE
Version (1 byte): The version number associated with the resource
record attribute. The value MUST be 0x05.
Rank (1 byte): The least-significant byte of one of the RANK* flag
values. See dwFlags (section 22.214.171.124.5).
Flags (2 bytes): Not used. The value MUST be 0x0000.
Serial (4 bytes): The serial number of the SOA record of the zone
containing this resource record. See DNS_RPC_RECORD_SOA (section
TtlSeconds (4 bytes): See dwTtlSeconds (section 126.96.36.199.5). This field
uses big-endian byte order.
Reserved (4 bytes): This field is reserved for future use. The value
MUST be 0x00000000.
TimeStamp (4 bytes): See dwTimeStamp (section 188.8.131.52.5).
Data (variable): The resource record's data. See DNS_RPC_RECORD_DATA
The challenge of course being to decode the binary dnsRecord values from AD according to the above. As several parts also have their own sections describing their values. I have not yet had to decode these values, but hopefully this information at least gets you on the right path.