Module 8: Capstone Parser Quiz

Test your understanding of building a production ISO8583 parser


1. Your parser receives input that starts with '30313030'. How can you tell if this is a hex string representation of '0100' or actual binary data?
2. You're parsing a message and the first 16 bytes after the MTI are '723A448108E18000'. What encoding is this bitmap using?
3. Your parser finds DE2 = '4532101234567890' (16 digits). What should the pretty-printer output?
4. You're parsing a LLVAR field and read '16' as the length prefix. The next bytes are '54321012345678901234'. What's wrong?
5. Your parser encounters field 52 (PIN Data). What's the correct way to handle and display it?
6. Your parser is processing a message but runs out of data halfway through field 35. What should happen?
7. The bitmap indicates field 99 is present, but your spec doesn't have a definition for field 99. What should the parser do?
8. When displaying DE4 (Amount) = '000000010000', what should the decoded output show?
9. You're building a parser configuration. Why is it better to make parsing logic data-driven (specs in a map) rather than hard-coded?
10. Your parser reads a bitmap byte as 0x72. Using the formula byte=(N-1)/8, bit=7-((N-1)%8), which fields in positions 1-8 are present?
11. When comparing a request (0100) with its response (0110), which fields would you expect to remain identical?
12. Your parser needs to handle both BCD and ASCII length prefixes. Given bytes '15' (0x31 0x35 in ASCII), how do you interpret the length?
13. When validating a 0400 (reversal) message, which field is specifically required that wouldn't be in a 0100 (auth)?
14. Your JSON output mode needs to represent DE55 (ICC Related Data). What's the best approach?
15. You're debugging why your parser gives different results than a colleague's. The input is identical. What's the most likely cause?
Join Discord