ASSduplicate.c 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616
  1. /*
  2. Fuzzes AssResp by testing many duplicate IEs
  3. */
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <stdint.h>
  7. #include <string.h>
  8. #include <math.h>
  9. #include "../frameDefinitions.h"
  10. //Creates Probe response frame
  11. u_char *Assduplicate(u_char *dstAddress, int *packetSize, u_char * radioTapHeader, u_char *myMAC, int step)
  12. {
  13. #define AssduplicateIES (2) //number of information elements
  14. infoElem suppRates = {
  15. 1, //id
  16. 7, //len
  17. 7, //real length of data
  18. "\x96\x18\x24\x30\x48\x60\x6c" //data
  19. };
  20. infoElem dups;
  21. switch (step)
  22. {
  23. case 0:
  24. {
  25. dups.id = 0;
  26. dups.len = 1;
  27. dups.len_data = 1;
  28. dups.data =
  29. "\x43"
  30. ;
  31. break;
  32. }
  33. case 1:
  34. {
  35. dups.id = 0;
  36. dups.len = 1;
  37. dups.len_data = 22;
  38. dups.data =
  39. "\x43"
  40. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  41. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  42. ;
  43. break;
  44. }
  45. case 2:
  46. {
  47. dups.id = 0;
  48. dups.len = 1;
  49. dups.len_data = 94;
  50. dups.data =
  51. "\x43"
  52. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  53. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  54. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  55. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  56. ;
  57. break;
  58. }
  59. case 3:
  60. {
  61. dups.id = 0;
  62. dups.len = 1;
  63. dups.len_data = 190;
  64. dups.data =
  65. "\x43"
  66. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  67. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  68. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  69. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  70. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  71. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  72. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  73. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  74. ;
  75. break;
  76. }
  77. case 4:
  78. {
  79. dups.id = 0;
  80. dups.len = 1;
  81. dups.len_data = 382;
  82. dups.data =
  83. "\x43"
  84. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  85. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  86. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  87. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  88. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  89. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  90. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  91. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  92. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  93. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  94. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  95. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  96. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  97. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  98. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  99. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  100. ;
  101. break;
  102. }
  103. case 5:
  104. {
  105. dups.id = 0;
  106. dups.len = 1;
  107. dups.len_data = 766;
  108. dups.data =
  109. "\x43"
  110. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  111. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  112. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  113. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  114. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  115. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  116. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  117. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  118. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  119. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  120. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  121. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  122. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  123. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  124. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  125. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  126. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  127. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  128. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  129. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  130. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  131. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  132. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  133. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  134. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  135. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  136. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  137. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  138. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  139. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  140. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  141. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  142. ;
  143. break;
  144. }
  145. case 6:
  146. {
  147. dups.id = 48;
  148. dups.len = 24;
  149. dups.len_data = 24 + 26;
  150. dups.data =
  151. "\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  152. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  153. ;
  154. break;
  155. }
  156. case 7:
  157. {
  158. dups.id = 48;
  159. dups.len = 24;
  160. dups.len_data = 24 + (26*8) - 26;
  161. dups.data =
  162. "\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  163. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  164. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  165. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  166. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  167. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  168. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  169. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  170. ;
  171. break;
  172. }
  173. case 8:
  174. {
  175. dups.id = 48;
  176. dups.len = 24;
  177. dups.len_data = 24 + (26*32) - 26;
  178. dups.data =
  179. "\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  180. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  181. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  182. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  183. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  184. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  185. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  186. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  187. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  188. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  189. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  190. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  191. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  192. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  193. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  194. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  195. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  196. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  197. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  198. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  199. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  200. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  201. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  202. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  203. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  204. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  205. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  206. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  207. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  208. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  209. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  210. "\x30\x18\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  211. ;
  212. break;
  213. }
  214. case 9:
  215. {
  216. dups.id = 221;
  217. dups.len = 167;
  218. dups.len_data = 167 + 169;
  219. dups.data =
  220. "\x00\x50\xf2\x04\x10\x4a\x00\x01\x10\x10\x44\x00\x01\x02"
  221. "\x10\x3b\x00\x01\x03\x10\x47\x00\x10\x30\xb6\x0e\x80\x1d\xd2\x11"
  222. "\xb2\x86\x01\x3c\x49\xa0\x1a\x4b\x49\x10\x21\x00\x18\x52\x61\x6c"
  223. "\x69\x6e\x6b\x20\x54\x65\x63\x68\x6e\x6f\x6c\x6f\x67\x79\x2c\x20"
  224. "\x43\x6f\x72\x70\x2e\x10\x23\x00\x1c\x52\x61\x6c\x69\x6e\x6b\x20"
  225. "\x57\x69\x72\x65\x6c\x65\x73\x73\x20\x41\x63\x63\x65\x73\x73\x20"
  226. "\x50\x6f\x69\x6e\x74\x10\x24\x00\x06\x52\x54\x32\x38\x36\x30\x10"
  227. "\x42\x00\x08\x31\x32\x33\x34\x35\x36\x37\x38\x10\x54\x00\x08\x00"
  228. "\x06\x00\x50\xf2\x04\x00\x01\x10\x11\x00\x09\x52\x61\x6c\x69\x6e"
  229. "\x6b\x41\x50\x53\x10\x08\x00\x02\x00\x00\x10\x3c\x00\x01\x01\x10"
  230. "\x49\x00\x06\x00\x37\x2a\x00\x01\x20"
  231. "\xdd\xa7\x00\x50\xf2\x04\x10\x4a\x00\x01\x10\x10\x44\x00\x01\x02"
  232. "\x10\x3b\x00\x01\x03\x10\x47\x00\x10\x30\xb6\x0e\x80\x1d\xd2\x11"
  233. "\xb2\x86\x01\x3c\x49\xa0\x1a\x4b\x49\x10\x21\x00\x18\x52\x61\x6c"
  234. "\x69\x6e\x6b\x20\x54\x65\x63\x68\x6e\x6f\x6c\x6f\x67\x79\x2c\x20"
  235. "\x43\x6f\x72\x70\x2e\x10\x23\x00\x1c\x52\x61\x6c\x69\x6e\x6b\x20"
  236. "\x57\x69\x72\x65\x6c\x65\x73\x73\x20\x41\x63\x63\x65\x73\x73\x20"
  237. "\x50\x6f\x69\x6e\x74\x10\x24\x00\x06\x52\x54\x32\x38\x36\x30\x10"
  238. "\x42\x00\x08\x31\x32\x33\x34\x35\x36\x37\x38\x10\x54\x00\x08\x00"
  239. "\x06\x00\x50\xf2\x04\x00\x01\x10\x11\x00\x09\x52\x61\x6c\x69\x6e"
  240. "\x6b\x41\x50\x53\x10\x08\x00\x02\x00\x00\x10\x3c\x00\x01\x01\x10"
  241. "\x49\x00\x06\x00\x37\x2a\x00\x01\x20"
  242. ;
  243. break;
  244. }
  245. case 10:
  246. {
  247. dups.id = 221;
  248. dups.len = 167;
  249. dups.len_data = 167 + (169*8) - 169;
  250. dups.data =
  251. "\x00\x50\xf2\x04\x10\x4a\x00\x01\x10\x10\x44\x00\x01\x02"
  252. "\x10\x3b\x00\x01\x03\x10\x47\x00\x10\x30\xb6\x0e\x80\x1d\xd2\x11"
  253. "\xb2\x86\x01\x3c\x49\xa0\x1a\x4b\x49\x10\x21\x00\x18\x52\x61\x6c"
  254. "\x69\x6e\x6b\x20\x54\x65\x63\x68\x6e\x6f\x6c\x6f\x67\x79\x2c\x20"
  255. "\x43\x6f\x72\x70\x2e\x10\x23\x00\x1c\x52\x61\x6c\x69\x6e\x6b\x20"
  256. "\x57\x69\x72\x65\x6c\x65\x73\x73\x20\x41\x63\x63\x65\x73\x73\x20"
  257. "\x50\x6f\x69\x6e\x74\x10\x24\x00\x06\x52\x54\x32\x38\x36\x30\x10"
  258. "\x42\x00\x08\x31\x32\x33\x34\x35\x36\x37\x38\x10\x54\x00\x08\x00"
  259. "\x06\x00\x50\xf2\x04\x00\x01\x10\x11\x00\x09\x52\x61\x6c\x69\x6e"
  260. "\x6b\x41\x50\x53\x10\x08\x00\x02\x00\x00\x10\x3c\x00\x01\x01\x10"
  261. "\x49\x00\x06\x00\x37\x2a\x00\x01\x20"
  262. "\xdd\xa7\x00\x50\xf2\x04\x10\x4a\x00\x01\x10\x10\x44\x00\x01\x02"
  263. "\x10\x3b\x00\x01\x03\x10\x47\x00\x10\x30\xb6\x0e\x80\x1d\xd2\x11"
  264. "\xb2\x86\x01\x3c\x49\xa0\x1a\x4b\x49\x10\x21\x00\x18\x52\x61\x6c"
  265. "\x69\x6e\x6b\x20\x54\x65\x63\x68\x6e\x6f\x6c\x6f\x67\x79\x2c\x20"
  266. "\x43\x6f\x72\x70\x2e\x10\x23\x00\x1c\x52\x61\x6c\x69\x6e\x6b\x20"
  267. "\x57\x69\x72\x65\x6c\x65\x73\x73\x20\x41\x63\x63\x65\x73\x73\x20"
  268. "\x50\x6f\x69\x6e\x74\x10\x24\x00\x06\x52\x54\x32\x38\x36\x30\x10"
  269. "\x42\x00\x08\x31\x32\x33\x34\x35\x36\x37\x38\x10\x54\x00\x08\x00"
  270. "\x06\x00\x50\xf2\x04\x00\x01\x10\x11\x00\x09\x52\x61\x6c\x69\x6e"
  271. "\x6b\x41\x50\x53\x10\x08\x00\x02\x00\x00\x10\x3c\x00\x01\x01\x10"
  272. "\x49\x00\x06\x00\x37\x2a\x00\x01\x20"
  273. "\xdd\xa7\x00\x50\xf2\x04\x10\x4a\x00\x01\x10\x10\x44\x00\x01\x02"
  274. "\x10\x3b\x00\x01\x03\x10\x47\x00\x10\x30\xb6\x0e\x80\x1d\xd2\x11"
  275. "\xb2\x86\x01\x3c\x49\xa0\x1a\x4b\x49\x10\x21\x00\x18\x52\x61\x6c"
  276. "\x69\x6e\x6b\x20\x54\x65\x63\x68\x6e\x6f\x6c\x6f\x67\x79\x2c\x20"
  277. "\x43\x6f\x72\x70\x2e\x10\x23\x00\x1c\x52\x61\x6c\x69\x6e\x6b\x20"
  278. "\x57\x69\x72\x65\x6c\x65\x73\x73\x20\x41\x63\x63\x65\x73\x73\x20"
  279. "\x50\x6f\x69\x6e\x74\x10\x24\x00\x06\x52\x54\x32\x38\x36\x30\x10"
  280. "\x42\x00\x08\x31\x32\x33\x34\x35\x36\x37\x38\x10\x54\x00\x08\x00"
  281. "\x06\x00\x50\xf2\x04\x00\x01\x10\x11\x00\x09\x52\x61\x6c\x69\x6e"
  282. "\x6b\x41\x50\x53\x10\x08\x00\x02\x00\x00\x10\x3c\x00\x01\x01\x10"
  283. "\x49\x00\x06\x00\x37\x2a\x00\x01\x20"
  284. "\xdd\xa7\x00\x50\xf2\x04\x10\x4a\x00\x01\x10\x10\x44\x00\x01\x02"
  285. "\x10\x3b\x00\x01\x03\x10\x47\x00\x10\x30\xb6\x0e\x80\x1d\xd2\x11"
  286. "\xb2\x86\x01\x3c\x49\xa0\x1a\x4b\x49\x10\x21\x00\x18\x52\x61\x6c"
  287. "\x69\x6e\x6b\x20\x54\x65\x63\x68\x6e\x6f\x6c\x6f\x67\x79\x2c\x20"
  288. "\x43\x6f\x72\x70\x2e\x10\x23\x00\x1c\x52\x61\x6c\x69\x6e\x6b\x20"
  289. "\x57\x69\x72\x65\x6c\x65\x73\x73\x20\x41\x63\x63\x65\x73\x73\x20"
  290. "\x50\x6f\x69\x6e\x74\x10\x24\x00\x06\x52\x54\x32\x38\x36\x30\x10"
  291. "\x42\x00\x08\x31\x32\x33\x34\x35\x36\x37\x38\x10\x54\x00\x08\x00"
  292. "\x06\x00\x50\xf2\x04\x00\x01\x10\x11\x00\x09\x52\x61\x6c\x69\x6e"
  293. "\x6b\x41\x50\x53\x10\x08\x00\x02\x00\x00\x10\x3c\x00\x01\x01\x10"
  294. "\x49\x00\x06\x00\x37\x2a\x00\x01\x20"
  295. "\xdd\xa7\x00\x50\xf2\x04\x10\x4a\x00\x01\x10\x10\x44\x00\x01\x02"
  296. "\x10\x3b\x00\x01\x03\x10\x47\x00\x10\x30\xb6\x0e\x80\x1d\xd2\x11"
  297. "\xb2\x86\x01\x3c\x49\xa0\x1a\x4b\x49\x10\x21\x00\x18\x52\x61\x6c"
  298. "\x69\x6e\x6b\x20\x54\x65\x63\x68\x6e\x6f\x6c\x6f\x67\x79\x2c\x20"
  299. "\x43\x6f\x72\x70\x2e\x10\x23\x00\x1c\x52\x61\x6c\x69\x6e\x6b\x20"
  300. "\x57\x69\x72\x65\x6c\x65\x73\x73\x20\x41\x63\x63\x65\x73\x73\x20"
  301. "\x50\x6f\x69\x6e\x74\x10\x24\x00\x06\x52\x54\x32\x38\x36\x30\x10"
  302. "\x42\x00\x08\x31\x32\x33\x34\x35\x36\x37\x38\x10\x54\x00\x08\x00"
  303. "\x06\x00\x50\xf2\x04\x00\x01\x10\x11\x00\x09\x52\x61\x6c\x69\x6e"
  304. "\x6b\x41\x50\x53\x10\x08\x00\x02\x00\x00\x10\x3c\x00\x01\x01\x10"
  305. "\x49\x00\x06\x00\x37\x2a\x00\x01\x20"
  306. "\xdd\xa7\x00\x50\xf2\x04\x10\x4a\x00\x01\x10\x10\x44\x00\x01\x02"
  307. "\x10\x3b\x00\x01\x03\x10\x47\x00\x10\x30\xb6\x0e\x80\x1d\xd2\x11"
  308. "\xb2\x86\x01\x3c\x49\xa0\x1a\x4b\x49\x10\x21\x00\x18\x52\x61\x6c"
  309. "\x69\x6e\x6b\x20\x54\x65\x63\x68\x6e\x6f\x6c\x6f\x67\x79\x2c\x20"
  310. "\x43\x6f\x72\x70\x2e\x10\x23\x00\x1c\x52\x61\x6c\x69\x6e\x6b\x20"
  311. "\x57\x69\x72\x65\x6c\x65\x73\x73\x20\x41\x63\x63\x65\x73\x73\x20"
  312. "\x50\x6f\x69\x6e\x74\x10\x24\x00\x06\x52\x54\x32\x38\x36\x30\x10"
  313. "\x42\x00\x08\x31\x32\x33\x34\x35\x36\x37\x38\x10\x54\x00\x08\x00"
  314. "\x06\x00\x50\xf2\x04\x00\x01\x10\x11\x00\x09\x52\x61\x6c\x69\x6e"
  315. "\x6b\x41\x50\x53\x10\x08\x00\x02\x00\x00\x10\x3c\x00\x01\x01\x10"
  316. "\x49\x00\x06\x00\x37\x2a\x00\x01\x20"
  317. "\xdd\xa7\x00\x50\xf2\x04\x10\x4a\x00\x01\x10\x10\x44\x00\x01\x02"
  318. "\x10\x3b\x00\x01\x03\x10\x47\x00\x10\x30\xb6\x0e\x80\x1d\xd2\x11"
  319. "\xb2\x86\x01\x3c\x49\xa0\x1a\x4b\x49\x10\x21\x00\x18\x52\x61\x6c"
  320. "\x69\x6e\x6b\x20\x54\x65\x63\x68\x6e\x6f\x6c\x6f\x67\x79\x2c\x20"
  321. "\x43\x6f\x72\x70\x2e\x10\x23\x00\x1c\x52\x61\x6c\x69\x6e\x6b\x20"
  322. "\x57\x69\x72\x65\x6c\x65\x73\x73\x20\x41\x63\x63\x65\x73\x73\x20"
  323. "\x50\x6f\x69\x6e\x74\x10\x24\x00\x06\x52\x54\x32\x38\x36\x30\x10"
  324. "\x42\x00\x08\x31\x32\x33\x34\x35\x36\x37\x38\x10\x54\x00\x08\x00"
  325. "\x06\x00\x50\xf2\x04\x00\x01\x10\x11\x00\x09\x52\x61\x6c\x69\x6e"
  326. "\x6b\x41\x50\x53\x10\x08\x00\x02\x00\x00\x10\x3c\x00\x01\x01\x10"
  327. "\x49\x00\x06\x00\x37\x2a\x00\x01\x20"
  328. "\xdd\xa7\x00\x50\xf2\x04\x10\x4a\x00\x01\x10\x10\x44\x00\x01\x02"
  329. "\x10\x3b\x00\x01\x03\x10\x47\x00\x10\x30\xb6\x0e\x80\x1d\xd2\x11"
  330. "\xb2\x86\x01\x3c\x49\xa0\x1a\x4b\x49\x10\x21\x00\x18\x52\x61\x6c"
  331. "\x69\x6e\x6b\x20\x54\x65\x63\x68\x6e\x6f\x6c\x6f\x67\x79\x2c\x20"
  332. "\x43\x6f\x72\x70\x2e\x10\x23\x00\x1c\x52\x61\x6c\x69\x6e\x6b\x20"
  333. "\x57\x69\x72\x65\x6c\x65\x73\x73\x20\x41\x63\x63\x65\x73\x73\x20"
  334. "\x50\x6f\x69\x6e\x74\x10\x24\x00\x06\x52\x54\x32\x38\x36\x30\x10"
  335. "\x42\x00\x08\x31\x32\x33\x34\x35\x36\x37\x38\x10\x54\x00\x08\x00"
  336. "\x06\x00\x50\xf2\x04\x00\x01\x10\x11\x00\x09\x52\x61\x6c\x69\x6e"
  337. "\x6b\x41\x50\x53\x10\x08\x00\x02\x00\x00\x10\x3c\x00\x01\x01\x10"
  338. "\x49\x00\x06\x00\x37\x2a\x00\x01\x20"
  339. ;
  340. break;
  341. }
  342. case 11:
  343. {
  344. dups.id = 1;
  345. dups.len = 7;
  346. dups.len_data = 7;
  347. dups.data =
  348. "\x96\x18\x24\x30\x48\x60\x6c"
  349. ;
  350. break;
  351. }
  352. case 12:
  353. {
  354. dups.id = 1;
  355. dups.len = 7;
  356. dups.len_data = 7 + 9*6;
  357. dups.data =
  358. "\x96\x18\x24\x30\x48\x60\x6c"
  359. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  360. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  361. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  362. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  363. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  364. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  365. ;
  366. break;
  367. }
  368. case 13:
  369. {
  370. dups.id = 1;
  371. dups.len = 7;
  372. dups.len_data = 7 + 9*30;
  373. dups.data =
  374. "\x96\x18\x24\x30\x48\x60\x6c"
  375. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  376. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  377. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  378. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  379. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  380. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  381. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  382. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  383. ;
  384. break;
  385. }
  386. case 14:
  387. {
  388. dups.id = 1;
  389. dups.len = 7;
  390. dups.len_data = 7 + 9*126;
  391. dups.data =
  392. "\x96\x18\x24\x30\x48\x60\x6c"
  393. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  394. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  395. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  396. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  397. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  398. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  399. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  400. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  401. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  402. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  403. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  404. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  405. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  406. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  407. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  408. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  409. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  410. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  411. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  412. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  413. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  414. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  415. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  416. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  417. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  418. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  419. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  420. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  421. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  422. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  423. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  424. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  425. ;
  426. break;
  427. }
  428. case 15:
  429. {
  430. dups.id = 45;
  431. dups.len = 26;
  432. dups.len_data = 26 + (28*50) - 28;
  433. dups.data = "\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  434. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  435. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  436. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  437. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  438. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  439. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  440. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  441. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  442. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  443. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  444. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  445. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  446. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  447. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  448. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  449. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  450. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  451. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  452. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  453. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  454. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  455. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  456. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  457. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  458. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  459. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  460. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  461. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  462. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  463. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  464. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  465. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  466. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  467. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  468. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  469. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  470. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  471. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  472. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  473. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  474. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  475. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  476. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  477. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  478. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  479. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  480. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  481. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  482. "\x2d\x1a\xfc\x18\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
  483. ;
  484. break;
  485. }
  486. }
  487. //create array of information elements
  488. infoElem taggedParams[AssduplicateIES] = {
  489. suppRates, dups
  490. };
  491. //length of all info elements, including id and len field
  492. int len_taggedParams = 0;
  493. for(int i = 0; i < AssduplicateIES; i++)
  494. {
  495. if (taggedParams[i].len_data != -1) //do not include when len_data == -1
  496. {
  497. //+2 to include id and len field size
  498. len_taggedParams = len_taggedParams + taggedParams[i].len_data+2;
  499. }
  500. }
  501. //fill in struct
  502. assResponse assResp = {
  503. 36, radioTapHeader, //RadioTap hdr
  504. 1, "\x10", //Type
  505. 1, "\x00", //Flags
  506. 2, "\x40\x01", //Duration
  507. 6, dstAddress, //DST addr
  508. 6, myMAC, //Source addr
  509. 6, myMAC, //BSS addr
  510. 2, "\x00\x00", //Seq nr (overwritten by firmware)
  511. 2, "\x01\x00", //Capab info
  512. 2, "\x00\x00", //Status code
  513. 2, "\x01\xc0", //Association id
  514. len_taggedParams,
  515. taggedParams, //Information elements
  516. 4, "\x00\x00\x00\x00" //FSC (overwritten by firmware)
  517. };
  518. //calculate size of final packet
  519. *packetSize = assResp.len_radioTapHdr
  520. + assResp.len_type
  521. + assResp.len_flags
  522. + assResp.len_duration
  523. + assResp.len_destAddr
  524. + assResp.len_sourceAddr
  525. + assResp.len_bssAddr
  526. + assResp.len_seqNr
  527. + assResp.len_capabInfo
  528. + assResp.len_status
  529. + assResp.len_assId
  530. + assResp.len_taggedParams
  531. + assResp.len_fsc;
  532. //define packet
  533. u_char *assRespPacket = malloc(*packetSize);
  534. if(!assRespPacket)
  535. {
  536. printf("Memory allocation error!\n");
  537. exit(-1);
  538. }
  539. //copy all struct fields into packet
  540. int copyOffset = 0;
  541. memcpy(assRespPacket + copyOffset, assResp.radioTapHdr, assResp.len_radioTapHdr);
  542. copyOffset = copyOffset + assResp.len_radioTapHdr;
  543. memcpy(assRespPacket + copyOffset, assResp.type, assResp.len_type);
  544. copyOffset = copyOffset + assResp.len_type;
  545. memcpy(assRespPacket + copyOffset, assResp.flags, assResp.len_flags);
  546. copyOffset = copyOffset + assResp.len_flags;
  547. memcpy(assRespPacket + copyOffset, assResp.duration, assResp.len_duration);
  548. copyOffset = copyOffset + assResp.len_duration;
  549. memcpy(assRespPacket + copyOffset, assResp.destAddr, assResp.len_destAddr);
  550. copyOffset = copyOffset + assResp.len_destAddr;
  551. memcpy(assRespPacket + copyOffset, assResp.sourceAddr, assResp.len_sourceAddr);
  552. copyOffset = copyOffset + assResp.len_sourceAddr;
  553. memcpy(assRespPacket + copyOffset, assResp.bssAddr, assResp.len_bssAddr);
  554. copyOffset = copyOffset + assResp.len_bssAddr;
  555. memcpy(assRespPacket + copyOffset, assResp.seqNr, assResp.len_seqNr);
  556. copyOffset = copyOffset + assResp.len_seqNr;
  557. memcpy(assRespPacket + copyOffset, assResp.capabInfo, assResp.len_capabInfo);
  558. copyOffset = copyOffset + assResp.len_capabInfo;
  559. memcpy(assRespPacket + copyOffset, assResp.status, assResp.len_status);
  560. copyOffset = copyOffset + assResp.len_status;
  561. memcpy(assRespPacket + copyOffset, assResp.assId, assResp.len_assId);
  562. copyOffset = copyOffset + assResp.len_assId;
  563. //copy all information elements
  564. for(int i = 0; i < AssduplicateIES; i++)
  565. {
  566. if (taggedParams[i].len_data != -1) //if id == -1, we do not want to include the information element
  567. {
  568. memcpy(assRespPacket + copyOffset, &taggedParams[i].id, 1);
  569. copyOffset = copyOffset + 1;
  570. memcpy(assRespPacket + copyOffset, &taggedParams[i].len, 1);
  571. copyOffset = copyOffset + 1;
  572. memcpy(assRespPacket + copyOffset, taggedParams[i].data, taggedParams[i].len_data);
  573. copyOffset = copyOffset + taggedParams[i].len_data;
  574. }
  575. }
  576. memcpy(assRespPacket + copyOffset, assResp.fsc, assResp.len_fsc);
  577. copyOffset = copyOffset + assResp.len_fsc;
  578. //send packet
  579. return assRespPacket;
  580. }