PRBduplicate.c 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631
  1. /*
  2. Fuzzes PrbResp 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 *Prbduplicate(u_char *dstAddress, int *packetSize, u_char * radioTapHeader, u_char *myMAC, int step)
  12. {
  13. #define PRBduplicateIES (4) //number of information elements
  14. //definition of all info elements
  15. infoElem ssid = {
  16. 0, //id
  17. 1, //len
  18. 1, //real length of data
  19. "\x43" //data
  20. };
  21. infoElem suppRates = {
  22. 1, //id
  23. 7, //len
  24. 7, //real length of data
  25. "\x96\x18\x24\x30\x48\x60\x6c" //data
  26. };
  27. infoElem ds = {
  28. 3, //id
  29. 1, //len
  30. 1, //real length of data
  31. "\x01" //data
  32. };
  33. infoElem dups;
  34. switch (step)
  35. {
  36. case 0:
  37. {
  38. dups.id = 0;
  39. dups.len = 1;
  40. dups.len_data = 1;
  41. dups.data =
  42. "\x43"
  43. ;
  44. break;
  45. }
  46. case 1:
  47. {
  48. dups.id = 0;
  49. dups.len = 1;
  50. dups.len_data = 22;
  51. dups.data =
  52. "\x43"
  53. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  54. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  55. ;
  56. break;
  57. }
  58. case 2:
  59. {
  60. dups.id = 0;
  61. dups.len = 1;
  62. dups.len_data = 94;
  63. dups.data =
  64. "\x43"
  65. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\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"
  69. ;
  70. break;
  71. }
  72. case 3:
  73. {
  74. dups.id = 0;
  75. dups.len = 1;
  76. dups.len_data = 190;
  77. dups.data =
  78. "\x43"
  79. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  80. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  81. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  82. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  83. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\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"
  87. ;
  88. break;
  89. }
  90. case 4:
  91. {
  92. dups.id = 0;
  93. dups.len = 1;
  94. dups.len_data = 382;
  95. dups.data =
  96. "\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" "\x00\x01\x43"
  100. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  101. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  102. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  103. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  104. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  105. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  106. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  107. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  108. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  109. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\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"
  113. ;
  114. break;
  115. }
  116. case 5:
  117. {
  118. dups.id = 0;
  119. dups.len = 1;
  120. dups.len_data = 766;
  121. dups.data =
  122. "\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" "\x00\x01\x43"
  142. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  143. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  144. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  145. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  146. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  147. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  148. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  149. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  150. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  151. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  152. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  153. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  154. "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43" "\x00\x01\x43"
  155. ;
  156. break;
  157. }
  158. case 6:
  159. {
  160. dups.id = 48;
  161. dups.len = 24;
  162. dups.len_data = 24 + 26;
  163. dups.data =
  164. "\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. ;
  167. break;
  168. }
  169. case 7:
  170. {
  171. dups.id = 48;
  172. dups.len = 24;
  173. dups.len_data = 24 + (26*8) - 26;
  174. dups.data =
  175. "\x01\x00\x00\x0f\xac\x02\x02\x00\x00\x0f\xac\x02\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x01\x00\x00"
  176. "\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"
  177. "\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"
  178. "\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"
  179. "\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"
  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. ;
  184. break;
  185. }
  186. case 8:
  187. {
  188. dups.id = 48;
  189. dups.len = 24;
  190. dups.len_data = 24 + (26*32) - 26;
  191. dups.data =
  192. "\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. "\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"
  212. "\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"
  213. "\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"
  214. "\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"
  215. "\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"
  216. "\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"
  217. "\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"
  218. "\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"
  219. "\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"
  220. "\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"
  221. "\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"
  222. "\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"
  223. "\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"
  224. ;
  225. break;
  226. }
  227. case 9:
  228. {
  229. dups.id = 221;
  230. dups.len = 167;
  231. dups.len_data = 167 + 169;
  232. dups.data =
  233. "\x00\x50\xf2\x04\x10\x4a\x00\x01\x10\x10\x44\x00\x01\x02"
  234. "\x10\x3b\x00\x01\x03\x10\x47\x00\x10\x30\xb6\x0e\x80\x1d\xd2\x11"
  235. "\xb2\x86\x01\x3c\x49\xa0\x1a\x4b\x49\x10\x21\x00\x18\x52\x61\x6c"
  236. "\x69\x6e\x6b\x20\x54\x65\x63\x68\x6e\x6f\x6c\x6f\x67\x79\x2c\x20"
  237. "\x43\x6f\x72\x70\x2e\x10\x23\x00\x1c\x52\x61\x6c\x69\x6e\x6b\x20"
  238. "\x57\x69\x72\x65\x6c\x65\x73\x73\x20\x41\x63\x63\x65\x73\x73\x20"
  239. "\x50\x6f\x69\x6e\x74\x10\x24\x00\x06\x52\x54\x32\x38\x36\x30\x10"
  240. "\x42\x00\x08\x31\x32\x33\x34\x35\x36\x37\x38\x10\x54\x00\x08\x00"
  241. "\x06\x00\x50\xf2\x04\x00\x01\x10\x11\x00\x09\x52\x61\x6c\x69\x6e"
  242. "\x6b\x41\x50\x53\x10\x08\x00\x02\x00\x00\x10\x3c\x00\x01\x01\x10"
  243. "\x49\x00\x06\x00\x37\x2a\x00\x01\x20"
  244. "\xdd\xa7\x00\x50\xf2\x04\x10\x4a\x00\x01\x10\x10\x44\x00\x01\x02"
  245. "\x10\x3b\x00\x01\x03\x10\x47\x00\x10\x30\xb6\x0e\x80\x1d\xd2\x11"
  246. "\xb2\x86\x01\x3c\x49\xa0\x1a\x4b\x49\x10\x21\x00\x18\x52\x61\x6c"
  247. "\x69\x6e\x6b\x20\x54\x65\x63\x68\x6e\x6f\x6c\x6f\x67\x79\x2c\x20"
  248. "\x43\x6f\x72\x70\x2e\x10\x23\x00\x1c\x52\x61\x6c\x69\x6e\x6b\x20"
  249. "\x57\x69\x72\x65\x6c\x65\x73\x73\x20\x41\x63\x63\x65\x73\x73\x20"
  250. "\x50\x6f\x69\x6e\x74\x10\x24\x00\x06\x52\x54\x32\x38\x36\x30\x10"
  251. "\x42\x00\x08\x31\x32\x33\x34\x35\x36\x37\x38\x10\x54\x00\x08\x00"
  252. "\x06\x00\x50\xf2\x04\x00\x01\x10\x11\x00\x09\x52\x61\x6c\x69\x6e"
  253. "\x6b\x41\x50\x53\x10\x08\x00\x02\x00\x00\x10\x3c\x00\x01\x01\x10"
  254. "\x49\x00\x06\x00\x37\x2a\x00\x01\x20"
  255. ;
  256. break;
  257. }
  258. case 10:
  259. {
  260. dups.id = 221;
  261. dups.len = 167;
  262. dups.len_data = 167 + (169*8) - 169;
  263. dups.data =
  264. "\x00\x50\xf2\x04\x10\x4a\x00\x01\x10\x10\x44\x00\x01\x02"
  265. "\x10\x3b\x00\x01\x03\x10\x47\x00\x10\x30\xb6\x0e\x80\x1d\xd2\x11"
  266. "\xb2\x86\x01\x3c\x49\xa0\x1a\x4b\x49\x10\x21\x00\x18\x52\x61\x6c"
  267. "\x69\x6e\x6b\x20\x54\x65\x63\x68\x6e\x6f\x6c\x6f\x67\x79\x2c\x20"
  268. "\x43\x6f\x72\x70\x2e\x10\x23\x00\x1c\x52\x61\x6c\x69\x6e\x6b\x20"
  269. "\x57\x69\x72\x65\x6c\x65\x73\x73\x20\x41\x63\x63\x65\x73\x73\x20"
  270. "\x50\x6f\x69\x6e\x74\x10\x24\x00\x06\x52\x54\x32\x38\x36\x30\x10"
  271. "\x42\x00\x08\x31\x32\x33\x34\x35\x36\x37\x38\x10\x54\x00\x08\x00"
  272. "\x06\x00\x50\xf2\x04\x00\x01\x10\x11\x00\x09\x52\x61\x6c\x69\x6e"
  273. "\x6b\x41\x50\x53\x10\x08\x00\x02\x00\x00\x10\x3c\x00\x01\x01\x10"
  274. "\x49\x00\x06\x00\x37\x2a\x00\x01\x20"
  275. "\xdd\xa7\x00\x50\xf2\x04\x10\x4a\x00\x01\x10\x10\x44\x00\x01\x02"
  276. "\x10\x3b\x00\x01\x03\x10\x47\x00\x10\x30\xb6\x0e\x80\x1d\xd2\x11"
  277. "\xb2\x86\x01\x3c\x49\xa0\x1a\x4b\x49\x10\x21\x00\x18\x52\x61\x6c"
  278. "\x69\x6e\x6b\x20\x54\x65\x63\x68\x6e\x6f\x6c\x6f\x67\x79\x2c\x20"
  279. "\x43\x6f\x72\x70\x2e\x10\x23\x00\x1c\x52\x61\x6c\x69\x6e\x6b\x20"
  280. "\x57\x69\x72\x65\x6c\x65\x73\x73\x20\x41\x63\x63\x65\x73\x73\x20"
  281. "\x50\x6f\x69\x6e\x74\x10\x24\x00\x06\x52\x54\x32\x38\x36\x30\x10"
  282. "\x42\x00\x08\x31\x32\x33\x34\x35\x36\x37\x38\x10\x54\x00\x08\x00"
  283. "\x06\x00\x50\xf2\x04\x00\x01\x10\x11\x00\x09\x52\x61\x6c\x69\x6e"
  284. "\x6b\x41\x50\x53\x10\x08\x00\x02\x00\x00\x10\x3c\x00\x01\x01\x10"
  285. "\x49\x00\x06\x00\x37\x2a\x00\x01\x20"
  286. "\xdd\xa7\x00\x50\xf2\x04\x10\x4a\x00\x01\x10\x10\x44\x00\x01\x02"
  287. "\x10\x3b\x00\x01\x03\x10\x47\x00\x10\x30\xb6\x0e\x80\x1d\xd2\x11"
  288. "\xb2\x86\x01\x3c\x49\xa0\x1a\x4b\x49\x10\x21\x00\x18\x52\x61\x6c"
  289. "\x69\x6e\x6b\x20\x54\x65\x63\x68\x6e\x6f\x6c\x6f\x67\x79\x2c\x20"
  290. "\x43\x6f\x72\x70\x2e\x10\x23\x00\x1c\x52\x61\x6c\x69\x6e\x6b\x20"
  291. "\x57\x69\x72\x65\x6c\x65\x73\x73\x20\x41\x63\x63\x65\x73\x73\x20"
  292. "\x50\x6f\x69\x6e\x74\x10\x24\x00\x06\x52\x54\x32\x38\x36\x30\x10"
  293. "\x42\x00\x08\x31\x32\x33\x34\x35\x36\x37\x38\x10\x54\x00\x08\x00"
  294. "\x06\x00\x50\xf2\x04\x00\x01\x10\x11\x00\x09\x52\x61\x6c\x69\x6e"
  295. "\x6b\x41\x50\x53\x10\x08\x00\x02\x00\x00\x10\x3c\x00\x01\x01\x10"
  296. "\x49\x00\x06\x00\x37\x2a\x00\x01\x20"
  297. "\xdd\xa7\x00\x50\xf2\x04\x10\x4a\x00\x01\x10\x10\x44\x00\x01\x02"
  298. "\x10\x3b\x00\x01\x03\x10\x47\x00\x10\x30\xb6\x0e\x80\x1d\xd2\x11"
  299. "\xb2\x86\x01\x3c\x49\xa0\x1a\x4b\x49\x10\x21\x00\x18\x52\x61\x6c"
  300. "\x69\x6e\x6b\x20\x54\x65\x63\x68\x6e\x6f\x6c\x6f\x67\x79\x2c\x20"
  301. "\x43\x6f\x72\x70\x2e\x10\x23\x00\x1c\x52\x61\x6c\x69\x6e\x6b\x20"
  302. "\x57\x69\x72\x65\x6c\x65\x73\x73\x20\x41\x63\x63\x65\x73\x73\x20"
  303. "\x50\x6f\x69\x6e\x74\x10\x24\x00\x06\x52\x54\x32\x38\x36\x30\x10"
  304. "\x42\x00\x08\x31\x32\x33\x34\x35\x36\x37\x38\x10\x54\x00\x08\x00"
  305. "\x06\x00\x50\xf2\x04\x00\x01\x10\x11\x00\x09\x52\x61\x6c\x69\x6e"
  306. "\x6b\x41\x50\x53\x10\x08\x00\x02\x00\x00\x10\x3c\x00\x01\x01\x10"
  307. "\x49\x00\x06\x00\x37\x2a\x00\x01\x20"
  308. "\xdd\xa7\x00\x50\xf2\x04\x10\x4a\x00\x01\x10\x10\x44\x00\x01\x02"
  309. "\x10\x3b\x00\x01\x03\x10\x47\x00\x10\x30\xb6\x0e\x80\x1d\xd2\x11"
  310. "\xb2\x86\x01\x3c\x49\xa0\x1a\x4b\x49\x10\x21\x00\x18\x52\x61\x6c"
  311. "\x69\x6e\x6b\x20\x54\x65\x63\x68\x6e\x6f\x6c\x6f\x67\x79\x2c\x20"
  312. "\x43\x6f\x72\x70\x2e\x10\x23\x00\x1c\x52\x61\x6c\x69\x6e\x6b\x20"
  313. "\x57\x69\x72\x65\x6c\x65\x73\x73\x20\x41\x63\x63\x65\x73\x73\x20"
  314. "\x50\x6f\x69\x6e\x74\x10\x24\x00\x06\x52\x54\x32\x38\x36\x30\x10"
  315. "\x42\x00\x08\x31\x32\x33\x34\x35\x36\x37\x38\x10\x54\x00\x08\x00"
  316. "\x06\x00\x50\xf2\x04\x00\x01\x10\x11\x00\x09\x52\x61\x6c\x69\x6e"
  317. "\x6b\x41\x50\x53\x10\x08\x00\x02\x00\x00\x10\x3c\x00\x01\x01\x10"
  318. "\x49\x00\x06\x00\x37\x2a\x00\x01\x20"
  319. "\xdd\xa7\x00\x50\xf2\x04\x10\x4a\x00\x01\x10\x10\x44\x00\x01\x02"
  320. "\x10\x3b\x00\x01\x03\x10\x47\x00\x10\x30\xb6\x0e\x80\x1d\xd2\x11"
  321. "\xb2\x86\x01\x3c\x49\xa0\x1a\x4b\x49\x10\x21\x00\x18\x52\x61\x6c"
  322. "\x69\x6e\x6b\x20\x54\x65\x63\x68\x6e\x6f\x6c\x6f\x67\x79\x2c\x20"
  323. "\x43\x6f\x72\x70\x2e\x10\x23\x00\x1c\x52\x61\x6c\x69\x6e\x6b\x20"
  324. "\x57\x69\x72\x65\x6c\x65\x73\x73\x20\x41\x63\x63\x65\x73\x73\x20"
  325. "\x50\x6f\x69\x6e\x74\x10\x24\x00\x06\x52\x54\x32\x38\x36\x30\x10"
  326. "\x42\x00\x08\x31\x32\x33\x34\x35\x36\x37\x38\x10\x54\x00\x08\x00"
  327. "\x06\x00\x50\xf2\x04\x00\x01\x10\x11\x00\x09\x52\x61\x6c\x69\x6e"
  328. "\x6b\x41\x50\x53\x10\x08\x00\x02\x00\x00\x10\x3c\x00\x01\x01\x10"
  329. "\x49\x00\x06\x00\x37\x2a\x00\x01\x20"
  330. "\xdd\xa7\x00\x50\xf2\x04\x10\x4a\x00\x01\x10\x10\x44\x00\x01\x02"
  331. "\x10\x3b\x00\x01\x03\x10\x47\x00\x10\x30\xb6\x0e\x80\x1d\xd2\x11"
  332. "\xb2\x86\x01\x3c\x49\xa0\x1a\x4b\x49\x10\x21\x00\x18\x52\x61\x6c"
  333. "\x69\x6e\x6b\x20\x54\x65\x63\x68\x6e\x6f\x6c\x6f\x67\x79\x2c\x20"
  334. "\x43\x6f\x72\x70\x2e\x10\x23\x00\x1c\x52\x61\x6c\x69\x6e\x6b\x20"
  335. "\x57\x69\x72\x65\x6c\x65\x73\x73\x20\x41\x63\x63\x65\x73\x73\x20"
  336. "\x50\x6f\x69\x6e\x74\x10\x24\x00\x06\x52\x54\x32\x38\x36\x30\x10"
  337. "\x42\x00\x08\x31\x32\x33\x34\x35\x36\x37\x38\x10\x54\x00\x08\x00"
  338. "\x06\x00\x50\xf2\x04\x00\x01\x10\x11\x00\x09\x52\x61\x6c\x69\x6e"
  339. "\x6b\x41\x50\x53\x10\x08\x00\x02\x00\x00\x10\x3c\x00\x01\x01\x10"
  340. "\x49\x00\x06\x00\x37\x2a\x00\x01\x20"
  341. "\xdd\xa7\x00\x50\xf2\x04\x10\x4a\x00\x01\x10\x10\x44\x00\x01\x02"
  342. "\x10\x3b\x00\x01\x03\x10\x47\x00\x10\x30\xb6\x0e\x80\x1d\xd2\x11"
  343. "\xb2\x86\x01\x3c\x49\xa0\x1a\x4b\x49\x10\x21\x00\x18\x52\x61\x6c"
  344. "\x69\x6e\x6b\x20\x54\x65\x63\x68\x6e\x6f\x6c\x6f\x67\x79\x2c\x20"
  345. "\x43\x6f\x72\x70\x2e\x10\x23\x00\x1c\x52\x61\x6c\x69\x6e\x6b\x20"
  346. "\x57\x69\x72\x65\x6c\x65\x73\x73\x20\x41\x63\x63\x65\x73\x73\x20"
  347. "\x50\x6f\x69\x6e\x74\x10\x24\x00\x06\x52\x54\x32\x38\x36\x30\x10"
  348. "\x42\x00\x08\x31\x32\x33\x34\x35\x36\x37\x38\x10\x54\x00\x08\x00"
  349. "\x06\x00\x50\xf2\x04\x00\x01\x10\x11\x00\x09\x52\x61\x6c\x69\x6e"
  350. "\x6b\x41\x50\x53\x10\x08\x00\x02\x00\x00\x10\x3c\x00\x01\x01\x10"
  351. "\x49\x00\x06\x00\x37\x2a\x00\x01\x20"
  352. ;
  353. break;
  354. }
  355. case 11:
  356. {
  357. dups.id = 1;
  358. dups.len = 7;
  359. dups.len_data = 7;
  360. dups.data =
  361. "\x96\x18\x24\x30\x48\x60\x6c"
  362. ;
  363. break;
  364. }
  365. case 12:
  366. {
  367. dups.id = 1;
  368. dups.len = 7;
  369. dups.len_data = 7 + 9*6;
  370. dups.data =
  371. "\x96\x18\x24\x30\x48\x60\x6c"
  372. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  373. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  374. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  375. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  376. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  377. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  378. ;
  379. break;
  380. }
  381. case 13:
  382. {
  383. dups.id = 1;
  384. dups.len = 7;
  385. dups.len_data = 7 + 9*30;
  386. dups.data =
  387. "\x96\x18\x24\x30\x48\x60\x6c"
  388. "\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"
  389. "\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"
  390. "\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"
  391. "\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"
  392. "\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"
  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"
  396. ;
  397. break;
  398. }
  399. case 14:
  400. {
  401. dups.id = 1;
  402. dups.len = 7;
  403. dups.len_data = 7 + 9*126;
  404. dups.data =
  405. "\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\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  425. "\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"
  426. "\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"
  427. "\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"
  428. "\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"
  429. "\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"
  430. "\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"
  431. "\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"
  432. "\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"
  433. "\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"
  434. "\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"
  435. "\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"
  436. "\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"
  437. "\x01\x07\x96\x18\x24\x30\x48\x60\x6c\x01\x07\x96\x18\x24\x30\x48\x60\x6c"
  438. ;
  439. break;
  440. }
  441. case 15:
  442. {
  443. dups.id = 45;
  444. dups.len = 26;
  445. dups.len_data = 26 + (28*50) - 28;
  446. 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"
  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. "\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"
  484. "\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"
  485. "\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"
  486. "\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"
  487. "\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"
  488. "\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"
  489. "\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"
  490. "\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"
  491. "\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"
  492. "\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"
  493. "\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"
  494. "\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"
  495. "\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"
  496. ;
  497. break;
  498. }
  499. }
  500. //create array of information elements
  501. infoElem taggedParams[PRBduplicateIES] = {
  502. ssid, suppRates, ds, dups
  503. };
  504. //length of all info elements, including id and len field
  505. int len_taggedParams = 0;
  506. for(int i = 0; i < PRBduplicateIES; i++)
  507. {
  508. if (taggedParams[i].len_data != -1) //do not include when len_data == -1
  509. {
  510. //+2 to include id and len field size
  511. len_taggedParams = len_taggedParams + taggedParams[i].len_data+2;
  512. }
  513. }
  514. //fill in struct
  515. probeResponse probeResp = {
  516. 36, radioTapHeader, //RadioTap hdr
  517. 1, "\x50", //Type
  518. 1, "\x00", //Flags
  519. 2, "\x3a\x01", //Duration
  520. 6, dstAddress, //DST addr
  521. 6, myMAC, //Source addr
  522. 6, myMAC, //BSS addr
  523. 2, "\x00\x00", //Seq nr (overwritten by firmware)
  524. 8, "\x00\x00\x00\x00\x00\x00\x00\x00", //Timestamp (overwritten by firmware)
  525. 2, "\x64\x00", //Beacon interval
  526. 2, "\x01\x00", //Capab info
  527. len_taggedParams,
  528. taggedParams, //Information elements
  529. 4, "\x00\x00\x00\x00" //FSC (overwritten by firmware)
  530. };
  531. //calculate size of final packet
  532. *packetSize = probeResp.len_radioTapHdr
  533. + probeResp.len_type
  534. + probeResp.len_flags
  535. + probeResp.len_duration
  536. + probeResp.len_destAddr
  537. + probeResp.len_sourceAddr
  538. + probeResp.len_bssAddr
  539. + probeResp.len_seqNr
  540. + probeResp.len_timeStamp
  541. + probeResp.len_beaconInterval
  542. + probeResp.len_capabInfo
  543. + probeResp.len_taggedParams
  544. + probeResp.len_fsc;
  545. //define packet
  546. u_char *probeRespPacket = malloc(*packetSize);
  547. if(!probeRespPacket)
  548. {
  549. printf("Memory allocation error!\n");
  550. exit(-1);
  551. }
  552. //copy all struct fields into packet
  553. int copyOffset = 0;
  554. memcpy(probeRespPacket + copyOffset, probeResp.radioTapHdr, probeResp.len_radioTapHdr);
  555. copyOffset = copyOffset + probeResp.len_radioTapHdr;
  556. memcpy(probeRespPacket + copyOffset, probeResp.type, probeResp.len_type);
  557. copyOffset = copyOffset + probeResp.len_type;
  558. memcpy(probeRespPacket + copyOffset, probeResp.flags, probeResp.len_flags);
  559. copyOffset = copyOffset + probeResp.len_flags;
  560. memcpy(probeRespPacket + copyOffset, probeResp.duration, probeResp.len_duration);
  561. copyOffset = copyOffset + probeResp.len_duration;
  562. memcpy(probeRespPacket + copyOffset, probeResp.destAddr, probeResp.len_destAddr);
  563. copyOffset = copyOffset + probeResp.len_destAddr;
  564. memcpy(probeRespPacket + copyOffset, probeResp.sourceAddr, probeResp.len_sourceAddr);
  565. copyOffset = copyOffset + probeResp.len_sourceAddr;
  566. memcpy(probeRespPacket + copyOffset, probeResp.bssAddr, probeResp.len_bssAddr);
  567. copyOffset = copyOffset + probeResp.len_bssAddr;
  568. memcpy(probeRespPacket + copyOffset, probeResp.seqNr, probeResp.len_seqNr);
  569. copyOffset = copyOffset + probeResp.len_seqNr;
  570. memcpy(probeRespPacket + copyOffset, probeResp.timeStamp, probeResp.len_timeStamp);
  571. copyOffset = copyOffset + probeResp.len_timeStamp;
  572. memcpy(probeRespPacket + copyOffset, probeResp.beaconInterval, probeResp.len_beaconInterval);
  573. copyOffset = copyOffset + probeResp.len_beaconInterval;
  574. memcpy(probeRespPacket + copyOffset, probeResp.capabInfo, probeResp.len_capabInfo);
  575. copyOffset = copyOffset + probeResp.len_capabInfo;
  576. //copy all information elements
  577. for(int i = 0; i < PRBduplicateIES; i++)
  578. {
  579. if (taggedParams[i].len_data != -1) //if id == -1, we do not want to include the information element
  580. {
  581. memcpy(probeRespPacket + copyOffset, &taggedParams[i].id, 1);
  582. copyOffset = copyOffset + 1;
  583. memcpy(probeRespPacket + copyOffset, &taggedParams[i].len, 1);
  584. copyOffset = copyOffset + 1;
  585. memcpy(probeRespPacket + copyOffset, taggedParams[i].data, taggedParams[i].len_data);
  586. copyOffset = copyOffset + taggedParams[i].len_data;
  587. }
  588. }
  589. memcpy(probeRespPacket + copyOffset, probeResp.fsc, probeResp.len_fsc);
  590. copyOffset = copyOffset + probeResp.len_fsc;
  591. //return packet
  592. return probeRespPacket;
  593. }