No new
content is added to the spike. All content added subsequently up to the
matching block_end call is considered part of the named block and contributes
to the block??™s length.
??? int s_block_end(char *blockname) End the named block. No new
content is added to the spike. This marks the end of the named block for length
computation purposes.
Chapter 14: Advanced Reverse Engineering
355
PART IV
Block lengths may be specified in many different ways depending on the protocol
being used. In HTTP, a block length may be specified as an ASCII string, while binary
protocols may specify block lengths using big- or little-endian integers. SPIKE provides a
number of block length insertion functions covering many different formats.
??? int s_binary_block_size_word_bigendian(char
*blockname) Inserts a 4-byte big-endian placeholder to receive the length
of the named block prior to sending the spike.
??? int s_binary_block_size_halfword_bigendian(char
*blockname) Inserts a 2-byte big-endian block size placeholder.
??? int s_binary_block_size_intel_word(char *blockname) Inserts
a 4-byte little-endian block size placeholder.
??? int s_binary_block_size_intel_halfword(char
*blockname) Inserts a 2-byte little-endian block size placeholder.
Pages:
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640