one_gadget 1.9.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (912) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +217 -0
  3. data/README.md +381 -118
  4. data/lib/one_gadget/abi.rb +49 -2
  5. data/lib/one_gadget/builds/libc-2.19-cf699a15caae64f50311fc4655b86dc39a479789.rb +269 -7
  6. data/lib/one_gadget/builds/libc-2.19-fd51b20e670e9a9f60dc3b06dc9761fb08c9358b.rb +118 -10
  7. data/lib/one_gadget/builds/libc-2.23-60131540dadc6796cab33388349e6e4e68692053.rb +230 -9
  8. data/lib/one_gadget/builds/libc-2.23-679ad41a6bc9e718a11a36cf9879cac97197e565.rb +82 -4
  9. data/lib/one_gadget/builds/libc-2.23-926eb99d49cab2e5622af38ab07395f5b32035e9.rb +147 -6
  10. data/lib/one_gadget/builds/libc-2.23-991d173c6b9056712812d98507cbe95f937db7cf.rb +133 -0
  11. data/lib/one_gadget/builds/libc-2.24-8cba3297f538691eb1875be62986993c004f3f4d.rb +120 -5
  12. data/lib/one_gadget/builds/libc-2.24-fd0655c4d2073eda4235084e1d0e558f0251be8a.rb +67 -7
  13. data/lib/one_gadget/builds/libc-2.26-2104f3d4ad5cf68603afbe7ba1a17f5ac99c5988.rb +192 -8
  14. data/lib/one_gadget/builds/libc-2.26-ddcc13122ddbfe5e5ef77d4ebe66d124ae5762c2.rb +246 -10
  15. data/lib/one_gadget/builds/libc-2.26-f65648a832414f2144ce795d75b6045a1ec2e252.rb +151 -4
  16. data/lib/one_gadget/builds/libc-2.27-53f40c1d2f3739ae017dcdcef1a17314786e3709.rb +134 -5
  17. data/lib/one_gadget/builds/libc-2.27-63b3d43ad45e1b0f601848c65b067f9e9b40528b.rb +154 -4
  18. data/lib/one_gadget/builds/libc-2.27-8c2d375f8d23a7b58de23a60b37bef2d80b23aef.rb +167 -0
  19. data/lib/one_gadget/builds/libc-2.27-b417c0ba7cc5cf06d1d1bed6652cedb9253c60d0.rb +198 -8
  20. data/lib/one_gadget/builds/libc-2.31-00537087f0a4c4381deb83f49cc19e6abfd47a12.rb +68 -0
  21. data/lib/one_gadget/builds/libc-2.31-5792732f783158c66fb4f3756458ca24e46e827d.rb +308 -0
  22. data/lib/one_gadget/builds/libc-2.31-749e6d13e587d608128a097381cd44b9aca59927.rb +416 -0
  23. data/lib/one_gadget/builds/libc-2.31-9fdb74e7b217d06c93172a8243f8547f947ee6d1.rb +217 -31
  24. data/lib/one_gadget/builds/libc-2.31-aa18dedb2aa800a743aac3bb546b8bd5816dbca6.rb +278 -0
  25. data/lib/one_gadget/builds/libc-2.35-1a0246cddde3e301e0cd5a85630aa26e89cb34b5.rb +83 -0
  26. data/lib/one_gadget/builds/libc-2.35-22ca0a83a4004122e30a69b597be96e134068616.rb +263 -0
  27. data/lib/one_gadget/builds/libc-2.35-4a81130bc30ded618f1edc030ecc5439e066dc68.rb +248 -0
  28. data/lib/one_gadget/builds/libc-2.35-a91d1bc05ce8f54989de1172c24b2b736378901f.rb +221 -0
  29. data/lib/one_gadget/builds/libc-2.39-328820b908de8ea1ef79afa8995e302e819163d7.rb +174 -0
  30. data/lib/one_gadget/builds/libc-2.39-54ae5337044aaabab70d65e0c3444f7e4735e059.rb +291 -0
  31. data/lib/one_gadget/builds/libc-2.39-70d6616bcfd43eaa73962220df98dd9c82ca6687.rb +282 -0
  32. data/lib/one_gadget/builds/libc-2.39-a7e93008cd7dad7a713e3eaf1f9dec78ce7c68a6.rb +66 -0
  33. data/lib/one_gadget/builds/libc-2.39-f5b510cd91b956148e885994f55a0e476462bf92.rb +282 -0
  34. data/lib/one_gadget/builds/libc-2.43-7a08e84aa7f1e0bd80a7da6227c3a006c3ff327d.rb +75 -0
  35. data/lib/one_gadget/builds/libc-2.43-8c7af7f227b3871d6afba752cbb617f317023de5.rb +279 -0
  36. data/lib/one_gadget/builds/libc-2.43-90ebd03ae9d9f42b23b4eb82fdf70352cf744198.rb +96 -0
  37. data/lib/one_gadget/builds/libc-2.43-b50ceafbd17dc6bceee344a66671c7eaa152bef4.rb +447 -0
  38. data/lib/one_gadget/cli.rb +50 -30
  39. data/lib/one_gadget/emulators/aarch64.rb +56 -77
  40. data/lib/one_gadget/emulators/amd64.rb +48 -2
  41. data/lib/one_gadget/emulators/arm.rb +306 -0
  42. data/lib/one_gadget/emulators/arm_family.rb +300 -0
  43. data/lib/one_gadget/emulators/conditional.rb +348 -0
  44. data/lib/one_gadget/emulators/i386.rb +2 -2
  45. data/lib/one_gadget/emulators/instruction.rb +6 -5
  46. data/lib/one_gadget/emulators/lambda.rb +58 -9
  47. data/lib/one_gadget/emulators/processor.rb +594 -29
  48. data/lib/one_gadget/emulators/register_file.rb +97 -0
  49. data/lib/one_gadget/emulators/safe_calls.rb +56 -0
  50. data/lib/one_gadget/emulators/x86.rb +165 -73
  51. data/lib/one_gadget/error.rb +12 -0
  52. data/lib/one_gadget/fetchers/aarch64.rb +42 -7
  53. data/lib/one_gadget/fetchers/amd64.rb +7 -34
  54. data/lib/one_gadget/fetchers/arm.rb +256 -0
  55. data/lib/one_gadget/fetchers/base.rb +727 -87
  56. data/lib/one_gadget/fetchers/i386.rb +27 -6
  57. data/lib/one_gadget/fetchers/objdump.rb +1 -1
  58. data/lib/one_gadget/fetchers/x86.rb +41 -4
  59. data/lib/one_gadget/fetchers.rb +99 -0
  60. data/lib/one_gadget/gadget.rb +344 -26
  61. data/lib/one_gadget/helper.rb +53 -39
  62. data/lib/one_gadget/logger.rb +4 -1
  63. data/lib/one_gadget/one_gadget.rb +20 -11
  64. data/lib/one_gadget/update.rb +2 -2
  65. data/lib/one_gadget/version.rb +1 -1
  66. metadata +53 -859
  67. data/lib/one_gadget/builds/libc-2.19-01e14462fc6097604edd54a2ee63664c65b2c12b.rb +0 -49
  68. data/lib/one_gadget/builds/libc-2.19-01e23c38126dad7db569b176808a7c54db64a086.rb +0 -47
  69. data/lib/one_gadget/builds/libc-2.19-02093f433808b294939b7a84c436c9eb4ec7f084.rb +0 -45
  70. data/lib/one_gadget/builds/libc-2.19-0301225d38bb881df8962a45d8c7f97449628511.rb +0 -50
  71. data/lib/one_gadget/builds/libc-2.19-036830b8f13a440ab4f419e46889b60e6e2b4211.rb +0 -49
  72. data/lib/one_gadget/builds/libc-2.19-03913aa050d557a99cc18f7b10e35f06e7c9265e.rb +0 -47
  73. data/lib/one_gadget/builds/libc-2.19-05438cea9c1f9b3bbca9d9718319ee3742937f2e.rb +0 -49
  74. data/lib/one_gadget/builds/libc-2.19-05d284a054b0c444fe40e91b25155a637b5cd35b.rb +0 -50
  75. data/lib/one_gadget/builds/libc-2.19-081d1ade5e735e7bbd0d2c1655a1eb7a0ab546ad.rb +0 -50
  76. data/lib/one_gadget/builds/libc-2.19-09aa28fd1054ee91085a7e13da58891c2d22058d.rb +0 -46
  77. data/lib/one_gadget/builds/libc-2.19-0b3a9eb5ffbd93527a046585e2eb0c8ae804498b.rb +0 -50
  78. data/lib/one_gadget/builds/libc-2.19-0ca781d9dae5d7689f112aa047b949ba253a1a24.rb +0 -50
  79. data/lib/one_gadget/builds/libc-2.19-0cfe51d12d5ffdc0b80469a74e6e5afb8130cafb.rb +0 -47
  80. data/lib/one_gadget/builds/libc-2.19-0dd7691bd47c4270c2ce9343dff1fbe0e27ad9f3.rb +0 -45
  81. data/lib/one_gadget/builds/libc-2.19-0e1a9dd2ea0a174b53ad15979b049628cb2d7fd0.rb +0 -50
  82. data/lib/one_gadget/builds/libc-2.19-0fe755222a275227e03414bf80fe98560038cf7e.rb +0 -50
  83. data/lib/one_gadget/builds/libc-2.19-10c913aa6554f3128781afb7846ac481b64c10b6.rb +0 -45
  84. data/lib/one_gadget/builds/libc-2.19-1142f4753ddff69c217e1e539272eaaf7d75da4c.rb +0 -50
  85. data/lib/one_gadget/builds/libc-2.19-12d7f074b08cab569614830552b5fe8a32707295.rb +0 -47
  86. data/lib/one_gadget/builds/libc-2.19-145bd51d758bf9c3e3b45949a2023cbaa0941e37.rb +0 -47
  87. data/lib/one_gadget/builds/libc-2.19-15b6f6d06e3435a22c15398ce99c3d649112f576.rb +0 -47
  88. data/lib/one_gadget/builds/libc-2.19-15c42742a61d7b2fe40dca9ca659a8f8f8ffea32.rb +0 -47
  89. data/lib/one_gadget/builds/libc-2.19-1606a4f3d8e807c5bf9b273ab202901115aa7a1e.rb +0 -49
  90. data/lib/one_gadget/builds/libc-2.19-17e8467dfe433c3622e6874d5795f6ac8edc8951.rb +0 -50
  91. data/lib/one_gadget/builds/libc-2.19-1d7ac0a26e8dd7a9b8443fe4a5f59e46ee16ce74.rb +0 -45
  92. data/lib/one_gadget/builds/libc-2.19-1dae2bc5818d22b565ed441211d0e2df6e942c25.rb +0 -45
  93. data/lib/one_gadget/builds/libc-2.19-1db2291c040579630f551b3568d0bc8758aa25d7.rb +0 -47
  94. data/lib/one_gadget/builds/libc-2.19-1dcad38451d0f4e339ac91079d6a20e40015d7f4.rb +0 -49
  95. data/lib/one_gadget/builds/libc-2.19-20f983ed5f4a8d177a9839b4abe44ffa35e1eade.rb +0 -49
  96. data/lib/one_gadget/builds/libc-2.19-21f20ffd821a693d32e258aa6a64e6bde5c5bdaf.rb +0 -45
  97. data/lib/one_gadget/builds/libc-2.19-22325505e6f257ab00ca32d46cd444c903d5dc89.rb +0 -50
  98. data/lib/one_gadget/builds/libc-2.19-22ea459c5bf13179544fc0bc92372ebe52792f53.rb +0 -49
  99. data/lib/one_gadget/builds/libc-2.19-267899ea9a83d7e5bd2ae3e53943cd57da6a01e7.rb +0 -47
  100. data/lib/one_gadget/builds/libc-2.19-26d70c7187d46c01bea7c22e8428fd6569d0f29c.rb +0 -50
  101. data/lib/one_gadget/builds/libc-2.19-27ae159e7958021d9c784daa60ac582aeb2e380c.rb +0 -50
  102. data/lib/one_gadget/builds/libc-2.19-286f68616b18ea86201b1bd81c4e39ab441a876f.rb +0 -50
  103. data/lib/one_gadget/builds/libc-2.19-29ad0fae22588909ae24075cf3d30123d3563a3c.rb +0 -46
  104. data/lib/one_gadget/builds/libc-2.19-29c9abe596db30c86fe28d30dc275485c7e3f240.rb +0 -50
  105. data/lib/one_gadget/builds/libc-2.19-2aebf61fd92ce11ccbc35f4f5e1da8843415ff2f.rb +0 -47
  106. data/lib/one_gadget/builds/libc-2.19-2b7794adc3efbe94dd7f17bb28382f42415ef32c.rb +0 -45
  107. data/lib/one_gadget/builds/libc-2.19-2bb9296b7b2843ef007f7de1b2995bc33ec8294d.rb +0 -50
  108. data/lib/one_gadget/builds/libc-2.19-2bba9d358bac63ff81597767b5bc229316bd12e0.rb +0 -47
  109. data/lib/one_gadget/builds/libc-2.19-2dad3f021a0e10d56a36a3e6e83c641013bb8d0d.rb +0 -47
  110. data/lib/one_gadget/builds/libc-2.19-2dc3a77a63a29cdfce5000c5e562da4574560802.rb +0 -49
  111. data/lib/one_gadget/builds/libc-2.19-2ee2c632ffc91afb8662573f6870c70a03fecaad.rb +0 -45
  112. data/lib/one_gadget/builds/libc-2.19-2fc2eb810e87cbb9d2a9c79bb1aa31c3b84330c0.rb +0 -49
  113. data/lib/one_gadget/builds/libc-2.19-309303fe5b44867525d535b4b8df1d9890128765.rb +0 -47
  114. data/lib/one_gadget/builds/libc-2.19-30c94dc66a1fe95180c3d68d2b89e576d5ae213c.rb +0 -50
  115. data/lib/one_gadget/builds/libc-2.19-30d456d1974436ca70141610c206bbd4e9ac127f.rb +0 -50
  116. data/lib/one_gadget/builds/libc-2.19-30dfa78b54091b3517212562fbe71c82031135df.rb +0 -50
  117. data/lib/one_gadget/builds/libc-2.19-319d6e67364b59468f00c62003e31f9698590885.rb +0 -50
  118. data/lib/one_gadget/builds/libc-2.19-325f373d48d6e3eb950fb4a1841cee80adf696e4.rb +0 -50
  119. data/lib/one_gadget/builds/libc-2.19-335b30edc15f874730295594b30528ba178aeca7.rb +0 -46
  120. data/lib/one_gadget/builds/libc-2.19-33adc3316a61d4db3e78e167be8f2d1c8b4a0474.rb +0 -50
  121. data/lib/one_gadget/builds/libc-2.19-34eca1b0e54755d19a70d3a74b744911f746902a.rb +0 -50
  122. data/lib/one_gadget/builds/libc-2.19-35597c5d9140178626b2989b0f3049c825f17249.rb +0 -49
  123. data/lib/one_gadget/builds/libc-2.19-3565b3bf199d386bd0188a3690135b2ef82a559e.rb +0 -45
  124. data/lib/one_gadget/builds/libc-2.19-365c74dde459303730e276b4d6022f1eacda06fd.rb +0 -49
  125. data/lib/one_gadget/builds/libc-2.19-3691e2c3b9f75fbaf99c93f201c86a2df07a98d2.rb +0 -50
  126. data/lib/one_gadget/builds/libc-2.19-3701aa1820d0a1dc12ac27ffde0ca8c63c50ab4a.rb +0 -50
  127. data/lib/one_gadget/builds/libc-2.19-3883c7733b2a0819e0c7c2dcbadfdac26e0e2b72.rb +0 -45
  128. data/lib/one_gadget/builds/libc-2.19-395c995bb2028f96efb60a6ebce75ed51d58c0b0.rb +0 -45
  129. data/lib/one_gadget/builds/libc-2.19-39612ce36adeb6f7e92658cd62c737bc3a260586.rb +0 -49
  130. data/lib/one_gadget/builds/libc-2.19-397c84e78c14cbffba39a48184db482211df9fb3.rb +0 -41
  131. data/lib/one_gadget/builds/libc-2.19-39f403e178f6c4db89f200bae5afd6c55f61e34b.rb +0 -49
  132. data/lib/one_gadget/builds/libc-2.19-3bbdc31d826a2bd8af0919d958620342c295c557.rb +0 -47
  133. data/lib/one_gadget/builds/libc-2.19-3ea89e2234c5203ef245cd4146b515794079ceac.rb +0 -50
  134. data/lib/one_gadget/builds/libc-2.19-3f8df0a32477b9b5c8521116e4d554f4dd784e9c.rb +0 -47
  135. data/lib/one_gadget/builds/libc-2.19-40410c37ab2b3867bcc1efa841c4bd990bbaced6.rb +0 -47
  136. data/lib/one_gadget/builds/libc-2.19-40443517ebed72833c0cea4364db0346c422be75.rb +0 -50
  137. data/lib/one_gadget/builds/libc-2.19-410c538cbb80e04ba67f8f93ead7c915cb8b151e.rb +0 -50
  138. data/lib/one_gadget/builds/libc-2.19-410c5d16e862678b3263a8250ad936b99554050c.rb +0 -50
  139. data/lib/one_gadget/builds/libc-2.19-42150628cea5ef0a4f7f48267f0d6fd206d7bef4.rb +0 -50
  140. data/lib/one_gadget/builds/libc-2.19-4315ee2103b2f1797d8d18ef03714dbdc4417095.rb +0 -45
  141. data/lib/one_gadget/builds/libc-2.19-4360063303905bf941489398b5601c5e2bc6c3a7.rb +0 -47
  142. data/lib/one_gadget/builds/libc-2.19-441d0bc3f372750187a7cc29528fca0f2fa4297d.rb +0 -45
  143. data/lib/one_gadget/builds/libc-2.19-444c5eaa7cb665ed9b90d3edc47e07c9eeb22c49.rb +0 -50
  144. data/lib/one_gadget/builds/libc-2.19-458c7913f032820ce7610496892f79a4779b0224.rb +0 -50
  145. data/lib/one_gadget/builds/libc-2.19-460355a265c134c0c801820ab5e80e37e2cd9b00.rb +0 -45
  146. data/lib/one_gadget/builds/libc-2.19-47411da31c1af33c897d1646f68d4443c3a156f2.rb +0 -47
  147. data/lib/one_gadget/builds/libc-2.19-482a813d828d5fe257838e679dff9b7be56bf4fb.rb +0 -47
  148. data/lib/one_gadget/builds/libc-2.19-484428905d6e138e0b88e97107732ace68c12752.rb +0 -45
  149. data/lib/one_gadget/builds/libc-2.19-4866fc3ad424dfb788e9ad11039b7759f3b51574.rb +0 -47
  150. data/lib/one_gadget/builds/libc-2.19-48b333aa64a86c31334714305379a6c1f1701c69.rb +0 -45
  151. data/lib/one_gadget/builds/libc-2.19-49f3ac15a25f78f0258283b3a207017e51ced583.rb +0 -49
  152. data/lib/one_gadget/builds/libc-2.19-4a384b8c751de6c0e2652261310104bf1b2127d5.rb +0 -50
  153. data/lib/one_gadget/builds/libc-2.19-4a5eeadb796e6dba8f289a90de2b53e71c8e8788.rb +0 -49
  154. data/lib/one_gadget/builds/libc-2.19-4daad26169c5c868b8ae90587fff76cc28e7b309.rb +0 -49
  155. data/lib/one_gadget/builds/libc-2.19-4e304f78f3cfb52dd521bd6fd8ae7a0c7400104e.rb +0 -50
  156. data/lib/one_gadget/builds/libc-2.19-4e9b0243eb28ea1a14539448a5317d6215fa13fa.rb +0 -49
  157. data/lib/one_gadget/builds/libc-2.19-4eda8ff01be3fba1c7bdd442a8690c3dc7397b6a.rb +0 -47
  158. data/lib/one_gadget/builds/libc-2.19-4f953c59dca85d439af86c6564c9fdb07cccafd5.rb +0 -50
  159. data/lib/one_gadget/builds/libc-2.19-509ee0c9616c4c3ed81951501a8950e1f529bbff.rb +0 -41
  160. data/lib/one_gadget/builds/libc-2.19-50c2ed4707152ba59bfacfd4e1fabc3b28ddc140.rb +0 -50
  161. data/lib/one_gadget/builds/libc-2.19-50e2c3560712d3d9f7af3d155cdeb69687045dd2.rb +0 -47
  162. data/lib/one_gadget/builds/libc-2.19-512993e1c66001e0ad11feea73ddfc22f9c0767b.rb +0 -50
  163. data/lib/one_gadget/builds/libc-2.19-515cd2920490d13129bbad0514c7c7c7e67c18bc.rb +0 -49
  164. data/lib/one_gadget/builds/libc-2.19-51a7763b217be74d9da6fd006c32f82ef82477b5.rb +0 -45
  165. data/lib/one_gadget/builds/libc-2.19-5382058b69031caa9b9996c11061cd164c9398ff.rb +0 -50
  166. data/lib/one_gadget/builds/libc-2.19-5455f3eafe22e7a085c3568bebc324a2ade811ea.rb +0 -49
  167. data/lib/one_gadget/builds/libc-2.19-54b97c45aa9ce58ba4dea4eda316f49927e51cff.rb +0 -50
  168. data/lib/one_gadget/builds/libc-2.19-54fe99efd891702e87da514403a2d3d8cae8032b.rb +0 -49
  169. data/lib/one_gadget/builds/libc-2.19-5537ab284321fdc6efd07276d6e4c524014bf069.rb +0 -50
  170. data/lib/one_gadget/builds/libc-2.19-55e62f166b419389a0de90ceab52c337946ba643.rb +0 -50
  171. data/lib/one_gadget/builds/libc-2.19-56338f83f1b656ee4395a8d3bddf810725151e91.rb +0 -49
  172. data/lib/one_gadget/builds/libc-2.19-58915015546da78c4116e45480be238bac4c59a7.rb +0 -45
  173. data/lib/one_gadget/builds/libc-2.19-58cabb8c6f68b05a1c1c9a707a43f22c3a55a3e9.rb +0 -45
  174. data/lib/one_gadget/builds/libc-2.19-5962ff0ec39da4ea3c572535d1da0c0d3b10cfe9.rb +0 -45
  175. data/lib/one_gadget/builds/libc-2.19-5a49bf8def435ac3fe9208df3c6b5622fe347a97.rb +0 -50
  176. data/lib/one_gadget/builds/libc-2.19-5a49ee56df5b5ab48a6f5607bb46a0b92a3d1c34.rb +0 -50
  177. data/lib/one_gadget/builds/libc-2.19-5a7a0413044f37bc4096c7bc4c33d1ea6880d856.rb +0 -47
  178. data/lib/one_gadget/builds/libc-2.19-5a968877a4a31019701f53ed38130c1313a5e0ad.rb +0 -50
  179. data/lib/one_gadget/builds/libc-2.19-5ab6a00d805f696b8aa6d0d2ee29d511b41499d1.rb +0 -50
  180. data/lib/one_gadget/builds/libc-2.19-5b344bb54cc929c6849371987107f587bd9e0d48.rb +0 -47
  181. data/lib/one_gadget/builds/libc-2.19-5b60e04aabbebdb248f5c03dad0ca1a9fab8be5f.rb +0 -49
  182. data/lib/one_gadget/builds/libc-2.19-5ba8f97e1beb7f068474d473e2db786c07df8561.rb +0 -50
  183. data/lib/one_gadget/builds/libc-2.19-5c02e6b0e80785f5944265c698dc811862018d21.rb +0 -49
  184. data/lib/one_gadget/builds/libc-2.19-5c14523f13f0fb9be3366f446e9e48165373ddf8.rb +0 -45
  185. data/lib/one_gadget/builds/libc-2.19-5e1e27a45fbd02cfa9a95bf657fc4aa53af75421.rb +0 -47
  186. data/lib/one_gadget/builds/libc-2.19-605a6d751871d12a83e34359ff4d73c895d6f4ce.rb +0 -50
  187. data/lib/one_gadget/builds/libc-2.19-60b315c3b5a4b7e4bf699cf79a137d19a9a13d89.rb +0 -47
  188. data/lib/one_gadget/builds/libc-2.19-60c7d280d7c8af6758a3a951524487641f349460.rb +0 -50
  189. data/lib/one_gadget/builds/libc-2.19-61eeda0c442c32c20f93008acbc978e28cca956d.rb +0 -45
  190. data/lib/one_gadget/builds/libc-2.19-63b04eb27336fd6c68f7bd8ba76ccbcc8df1b46c.rb +0 -49
  191. data/lib/one_gadget/builds/libc-2.19-6573062b2d3648b5970f82fbd63cd154c9d84661.rb +0 -49
  192. data/lib/one_gadget/builds/libc-2.19-6573e7dbcbb6179989e2308746f65b95c4117485.rb +0 -45
  193. data/lib/one_gadget/builds/libc-2.19-6850f318041a1a5a202ab0512dda55e80ff19ec8.rb +0 -45
  194. data/lib/one_gadget/builds/libc-2.19-68977b6661c8b646d7d88e32d81916937e346001.rb +0 -45
  195. data/lib/one_gadget/builds/libc-2.19-69673214041206e0eee5b9b5b47fd12d733127e1.rb +0 -46
  196. data/lib/one_gadget/builds/libc-2.19-6a6d6625087a1de6139a620795ef8b2360a06592.rb +0 -45
  197. data/lib/one_gadget/builds/libc-2.19-6abcb030391dbadd0fda38c3975ad6dcfe7fe20c.rb +0 -49
  198. data/lib/one_gadget/builds/libc-2.19-6aff6d091954955fe931bb720a17708513aabda7.rb +0 -50
  199. data/lib/one_gadget/builds/libc-2.19-6b536aa43eabd040e5117034f582d1c0374980cd.rb +0 -50
  200. data/lib/one_gadget/builds/libc-2.19-6d7e55c204d097c75f6b89717876c17f0dc1779a.rb +0 -45
  201. data/lib/one_gadget/builds/libc-2.19-6d8d0b8321b58b20d824cfa9d68d66769caa9b42.rb +0 -50
  202. data/lib/one_gadget/builds/libc-2.19-6ee0f980c1c75935d8802d0ea84e0a9f09874c51.rb +0 -47
  203. data/lib/one_gadget/builds/libc-2.19-700e2a19dfcc8e20b41145039b6c823123676696.rb +0 -45
  204. data/lib/one_gadget/builds/libc-2.19-705f27d45e46aeda2619beb62fc804d1c2fbe26c.rb +0 -50
  205. data/lib/one_gadget/builds/libc-2.19-707bc133809b86abab918bb8a8fc7791fe916765.rb +0 -50
  206. data/lib/one_gadget/builds/libc-2.19-74a3b58450e957c04e2cca3619695cb3d73bb68e.rb +0 -50
  207. data/lib/one_gadget/builds/libc-2.19-74bf136a60dee4fe2f7ca0d9b40fbdd6b0115496.rb +0 -45
  208. data/lib/one_gadget/builds/libc-2.19-7553121919b4b6bb1d86f8b1eb8eb152e6fb1218.rb +0 -47
  209. data/lib/one_gadget/builds/libc-2.19-77063a4c59e02c182d5afae288f450c7cdf5b6da.rb +0 -49
  210. data/lib/one_gadget/builds/libc-2.19-77504f0405a2d81d64310f262ac559cdc8375b04.rb +0 -47
  211. data/lib/one_gadget/builds/libc-2.19-77bcde9cd55f5ca93684b46705e0851585b94019.rb +0 -50
  212. data/lib/one_gadget/builds/libc-2.19-78c0362905c145cfc28aa2ff409962f3c8b2cb6b.rb +0 -50
  213. data/lib/one_gadget/builds/libc-2.19-7a02d454ba0e8af69e3a284c381318b55908deda.rb +0 -36
  214. data/lib/one_gadget/builds/libc-2.19-7a7914eec99efd40990d0b1978a01caf46612636.rb +0 -47
  215. data/lib/one_gadget/builds/libc-2.19-7ccbbd7f1713d8eebb6042a8da7e9f2ac1878d42.rb +0 -49
  216. data/lib/one_gadget/builds/libc-2.19-7cf04fce2326ced25e80c0d7972408574a0817e6.rb +0 -47
  217. data/lib/one_gadget/builds/libc-2.19-7d415bffb8dbc06c96e116d8e8f0d8deababbd9e.rb +0 -47
  218. data/lib/one_gadget/builds/libc-2.19-7e523a4a16878ad1fcb7844e93bdd4d474843f86.rb +0 -49
  219. data/lib/one_gadget/builds/libc-2.19-7e97512d5895e6d5e26dc5b26b31c575a80f0188.rb +0 -52
  220. data/lib/one_gadget/builds/libc-2.19-7f380884708f0bac5c779705562e01ccc7ecf223.rb +0 -45
  221. data/lib/one_gadget/builds/libc-2.19-7f6d04c0ad1b67e316c80cd606720675fc111b50.rb +0 -50
  222. data/lib/one_gadget/builds/libc-2.19-7fbf66aed8b38b67a1a5653e27e9e4d430b9ada6.rb +0 -49
  223. data/lib/one_gadget/builds/libc-2.19-80c8143bd0180bbeb21b7d8c12687d043ae81c7d.rb +0 -50
  224. data/lib/one_gadget/builds/libc-2.19-8131bf46e87501516970176f3f7e86762ffcc3bf.rb +0 -50
  225. data/lib/one_gadget/builds/libc-2.19-83aef0e751f3dddd4b56c5be57524239e39eecaa.rb +0 -45
  226. data/lib/one_gadget/builds/libc-2.19-83f3af43ecaf52a63801ea59ad113835dfb31d58.rb +0 -50
  227. data/lib/one_gadget/builds/libc-2.19-845104cd0116005c9b9569fe3c6d5afd3689a01e.rb +0 -50
  228. data/lib/one_gadget/builds/libc-2.19-8564abd306654cfc468a54117954244e1a2c9102.rb +0 -50
  229. data/lib/one_gadget/builds/libc-2.19-863b5d3db2ef5af0b32dba633dca439a3908c42e.rb +0 -47
  230. data/lib/one_gadget/builds/libc-2.19-866e18be92e8dcab711b7c1e3402065deff5df70.rb +0 -49
  231. data/lib/one_gadget/builds/libc-2.19-869f691faebbe08548ec64381e41acf5997c0fb0.rb +0 -49
  232. data/lib/one_gadget/builds/libc-2.19-87805ebef970b79b4a1fb5facb43719a26c335af.rb +0 -50
  233. data/lib/one_gadget/builds/libc-2.19-887a7db21e668f6153604d9e00d1026137f777ee.rb +0 -50
  234. data/lib/one_gadget/builds/libc-2.19-8b05579712ebaea7cae547f4fc461c0828e9c446.rb +0 -49
  235. data/lib/one_gadget/builds/libc-2.19-8c5d5643cd08bc078f22310103f7c6af4ed37921.rb +0 -47
  236. data/lib/one_gadget/builds/libc-2.19-8cb4573f8cc3764df7570800247a76dd63d847b4.rb +0 -47
  237. data/lib/one_gadget/builds/libc-2.19-8d935a42f2f2a1149aa52d3098b32b1d5012cb67.rb +0 -41
  238. data/lib/one_gadget/builds/libc-2.19-8dbcbca713ca58e2c7e4970e8218d536154bb64e.rb +0 -36
  239. data/lib/one_gadget/builds/libc-2.19-8e4150ea59c3a6fdc9f001ba17274f7c48e4be21.rb +0 -47
  240. data/lib/one_gadget/builds/libc-2.19-8fa762223d6b8ee6d47af7455c691a5e238c8209.rb +0 -49
  241. data/lib/one_gadget/builds/libc-2.19-90b068141be8b0f52ef8dc93e8327cda87a632bc.rb +0 -50
  242. data/lib/one_gadget/builds/libc-2.19-913a7e92e674593c7e1121b0013d81e20cebe85c.rb +0 -47
  243. data/lib/one_gadget/builds/libc-2.19-9356622cb19154bd2d3bb21e67f188e3cc3e2902.rb +0 -45
  244. data/lib/one_gadget/builds/libc-2.19-95287be8acccc7b5723f4306e6a5eca6dfe7bffd.rb +0 -50
  245. data/lib/one_gadget/builds/libc-2.19-9a970aa5f863d2ccecd63ceef8bb57d28e55be11.rb +0 -46
  246. data/lib/one_gadget/builds/libc-2.19-9bf807e100d6c152efd7e845c65ecfb92e2e202e.rb +0 -50
  247. data/lib/one_gadget/builds/libc-2.19-9d1dd2edd9ada4b73ddc73ea10ba1c9ef0810248.rb +0 -47
  248. data/lib/one_gadget/builds/libc-2.19-9e817f4c472417e94d161b392e13d6aeb76f0b5a.rb +0 -50
  249. data/lib/one_gadget/builds/libc-2.19-a13df1fb206f167af0eef4d438f3949d80f8bce3.rb +0 -47
  250. data/lib/one_gadget/builds/libc-2.19-a1818c2dd8e7c4a3d4f61270b4b29330d6b51391.rb +0 -49
  251. data/lib/one_gadget/builds/libc-2.19-a2d884479c5c8f73fbb82e6fefa5083623826cc1.rb +0 -49
  252. data/lib/one_gadget/builds/libc-2.19-a3386004b2a158b95ba4c26c01e421e6c2191a47.rb +0 -49
  253. data/lib/one_gadget/builds/libc-2.19-a3c88cff23421ec2e3c97860bdf28868592ed14c.rb +0 -47
  254. data/lib/one_gadget/builds/libc-2.19-a3ebc8ad2873288cbd2a510de65161c697310e5c.rb +0 -49
  255. data/lib/one_gadget/builds/libc-2.19-a4b13a91fc5d961be3e1a68a30938ba840ae4290.rb +0 -50
  256. data/lib/one_gadget/builds/libc-2.19-a6222959a65e5367ec3f2b54d7f114f6a2c8ce28.rb +0 -50
  257. data/lib/one_gadget/builds/libc-2.19-a62a3aed804ccd4faac1ae52ee39165dd1cf4ebe.rb +0 -45
  258. data/lib/one_gadget/builds/libc-2.19-a71e7ba2ffe12012ab7e5c0ff7d83d6f627a7548.rb +0 -45
  259. data/lib/one_gadget/builds/libc-2.19-a7204938a680127c01c9799462c3b33035f06358.rb +0 -49
  260. data/lib/one_gadget/builds/libc-2.19-a77581d3046ec7a2176ba4bebc222562668d9fd6.rb +0 -49
  261. data/lib/one_gadget/builds/libc-2.19-a77d09f3b8cbad4c430378157308f6cb71549a5a.rb +0 -50
  262. data/lib/one_gadget/builds/libc-2.19-a7e2264ecf52a64ea3ab55163132240c3142eafd.rb +0 -50
  263. data/lib/one_gadget/builds/libc-2.19-a820f849dda0b99ed06dd59bb88404969b3a5f88.rb +0 -50
  264. data/lib/one_gadget/builds/libc-2.19-a9f67b66e93e0abd79f1d8028188377397e4536b.rb +0 -50
  265. data/lib/one_gadget/builds/libc-2.19-ab474a836c41aed0f0bad2ddc66388253bfa75af.rb +0 -45
  266. data/lib/one_gadget/builds/libc-2.19-ad03e0bcbda2213489f10a6bf63a7f5fe3dd6558.rb +0 -47
  267. data/lib/one_gadget/builds/libc-2.19-ad0ce0a6b6e201c9a8195b2d55043afcd4f5db00.rb +0 -36
  268. data/lib/one_gadget/builds/libc-2.19-ad91c7db0fad11b03e3ce92eda28f673cb36db5d.rb +0 -50
  269. data/lib/one_gadget/builds/libc-2.19-adf7d21d8b442e6b601ad3dcc180608193d2d041.rb +0 -45
  270. data/lib/one_gadget/builds/libc-2.19-b166aefc9dff38869ad893bea2e9ce5e848628b1.rb +0 -50
  271. data/lib/one_gadget/builds/libc-2.19-b2c58c0aaead4cc02a5ad606edf4284ca598c0ef.rb +0 -50
  272. data/lib/one_gadget/builds/libc-2.19-b32788d3f2b080bd447b295cf59ace25fbfce313.rb +0 -46
  273. data/lib/one_gadget/builds/libc-2.19-b4fbe819a1dc946528b4added1887eb9ca130275.rb +0 -45
  274. data/lib/one_gadget/builds/libc-2.19-b571f83a8a6f5bb22d3558cddda9f943a2a67fd1.rb +0 -50
  275. data/lib/one_gadget/builds/libc-2.19-b700a5d57528fde5c441b020bcc4e19a9099e05b.rb +0 -50
  276. data/lib/one_gadget/builds/libc-2.19-b71ed2c38888a9d0e2c977877193e01a64e97a5d.rb +0 -49
  277. data/lib/one_gadget/builds/libc-2.19-b9082b0162f9d256c1ccf28b9d35d2cce9f6a6a4.rb +0 -50
  278. data/lib/one_gadget/builds/libc-2.19-ba1b1c588dbf0ebb80c646060af92e5a93825fee.rb +0 -49
  279. data/lib/one_gadget/builds/libc-2.19-bb34f13b7ae5fe42cdd14b96dc278f9726424cac.rb +0 -49
  280. data/lib/one_gadget/builds/libc-2.19-bb91233a6ef2a6c754a8ff20f7ba117d7d57707a.rb +0 -46
  281. data/lib/one_gadget/builds/libc-2.19-bd25bd030c2467d343581ee0d8d8aa7a32c7aa29.rb +0 -49
  282. data/lib/one_gadget/builds/libc-2.19-bd69ec1fafeef65209d9874025fd45e093b23144.rb +0 -49
  283. data/lib/one_gadget/builds/libc-2.19-be4425690f42dd1807770d974ff87b88c51d306d.rb +0 -49
  284. data/lib/one_gadget/builds/libc-2.19-bf368b38f238cfe2c12eac2b487ee8ae58a3a0d8.rb +0 -50
  285. data/lib/one_gadget/builds/libc-2.19-c00c9b70ba01f92a952474258bed608c3e7be6b9.rb +0 -50
  286. data/lib/one_gadget/builds/libc-2.19-c0ee9400445c93ecbc8562e006a8b95ed4d07834.rb +0 -49
  287. data/lib/one_gadget/builds/libc-2.19-c24f77af0c861079dbcbbdf09f4b8eee8eb7130c.rb +0 -50
  288. data/lib/one_gadget/builds/libc-2.19-c379cc4f4e8a55319c70e4d3ce4dc2a4c30f151a.rb +0 -49
  289. data/lib/one_gadget/builds/libc-2.19-c40027c0c6f76c27293f7570888b9d64e1a93285.rb +0 -50
  290. data/lib/one_gadget/builds/libc-2.19-c41ed0ae53a1a559a44a1140c77c3b274a38e442.rb +0 -50
  291. data/lib/one_gadget/builds/libc-2.19-c4278754b0c28c437e1e5bd195d82b6d9e4a6d73.rb +0 -47
  292. data/lib/one_gadget/builds/libc-2.19-c46746723526fa9feb3cdf4218ec24c9179131ad.rb +0 -45
  293. data/lib/one_gadget/builds/libc-2.19-c5affb5af2f506eb7d48c471160790d4c24e81ae.rb +0 -46
  294. data/lib/one_gadget/builds/libc-2.19-c5e45bf4881c526999786f4dd2718042b20e582c.rb +0 -49
  295. data/lib/one_gadget/builds/libc-2.19-c7cab037359898862b1584a1e3c3372683daad3f.rb +0 -47
  296. data/lib/one_gadget/builds/libc-2.19-c83833a5f5ca5636f8f914c2c9f1726860fce8b1.rb +0 -45
  297. data/lib/one_gadget/builds/libc-2.19-cad76dba04139f928612ee55bf9e14b74e1b7c3f.rb +0 -45
  298. data/lib/one_gadget/builds/libc-2.19-cafa8de523249f48aebec877e9f45f904e4d62a4.rb +0 -50
  299. data/lib/one_gadget/builds/libc-2.19-cb46f5139038116d66a73281a3aca373f8ac7428.rb +0 -49
  300. data/lib/one_gadget/builds/libc-2.19-cb6e2a7a6812e08f621a5c6b5b3372ab5126fc84.rb +0 -47
  301. data/lib/one_gadget/builds/libc-2.19-cb8c8a8edf5ff17d2df7e68e63f6cb242d85b524.rb +0 -49
  302. data/lib/one_gadget/builds/libc-2.19-cba6f22d1ee9163390664add53a9ef135c664903.rb +0 -45
  303. data/lib/one_gadget/builds/libc-2.19-ce25be66ee91861336df34413f53446cb41a2601.rb +0 -47
  304. data/lib/one_gadget/builds/libc-2.19-cf43a056242aa025a153e4a7b6698edd7497f305.rb +0 -45
  305. data/lib/one_gadget/builds/libc-2.19-d06fb2560475e149d6d2401eae955164eb8262fa.rb +0 -45
  306. data/lib/one_gadget/builds/libc-2.19-d11506d7facb213bd2c6063f010a42fa9d723879.rb +0 -45
  307. data/lib/one_gadget/builds/libc-2.19-d1c6ec21d9d74bb0d866a08635b1fc075c4a2e40.rb +0 -49
  308. data/lib/one_gadget/builds/libc-2.19-d2b9e70520a7dbf92895b3d08c9e6a92010571cf.rb +0 -50
  309. data/lib/one_gadget/builds/libc-2.19-d56aa9d47cf61192f75e28fef805c0ce20502157.rb +0 -46
  310. data/lib/one_gadget/builds/libc-2.19-d66b201cb2987a585890d4be28cf92dad14cb760.rb +0 -47
  311. data/lib/one_gadget/builds/libc-2.19-d6c3d9e55db8600672a2ef744f57aa84e6bea41a.rb +0 -49
  312. data/lib/one_gadget/builds/libc-2.19-d80f3b321f845a71f3c47d913dd3e65152565863.rb +0 -49
  313. data/lib/one_gadget/builds/libc-2.19-d8adddcd7476a6b09bdf02fe1e1d73bd393b6ed7.rb +0 -47
  314. data/lib/one_gadget/builds/libc-2.19-d9a10b8ef90300628dd0a3a535106967714d7328.rb +0 -50
  315. data/lib/one_gadget/builds/libc-2.19-db3fac1541a95bdab2d9ae20bdef3c2f1c13b7e0.rb +0 -50
  316. data/lib/one_gadget/builds/libc-2.19-dd1b1c22eae3c8f0faa0b355bbcdca8f7c0cd91d.rb +0 -49
  317. data/lib/one_gadget/builds/libc-2.19-df559a150829d9f3cdd0b5ce1e5b4d512d20f55f.rb +0 -52
  318. data/lib/one_gadget/builds/libc-2.19-e01fa6a6b4685ecaebc6756679c283c6572eb6f2.rb +0 -45
  319. data/lib/one_gadget/builds/libc-2.19-e10149c2a9bf0df3c9149b351168fcd32adb41c6.rb +0 -46
  320. data/lib/one_gadget/builds/libc-2.19-e13d310493f24ceb84f232c5f72469cbe516d57a.rb +0 -50
  321. data/lib/one_gadget/builds/libc-2.19-e2773917e0ca89ebc16787d8cbc96400088583ec.rb +0 -49
  322. data/lib/one_gadget/builds/libc-2.19-e4c3a6a564aeddbafa8be691efffc79e755fa8a4.rb +0 -49
  323. data/lib/one_gadget/builds/libc-2.19-e53d50e134c10f91f8cf52b1778f85b7926147cc.rb +0 -45
  324. data/lib/one_gadget/builds/libc-2.19-e540f810b37a33fab5b3116fdbf8bcaacc000c16.rb +0 -45
  325. data/lib/one_gadget/builds/libc-2.19-e5bd51e1eefbc5c3d96a3aba4dcb50a0cec162de.rb +0 -50
  326. data/lib/one_gadget/builds/libc-2.19-e6ac06f6c982d98a419cec51de313ea609f2b1f2.rb +0 -50
  327. data/lib/one_gadget/builds/libc-2.19-e6e4c4588d098e16d0fba7e15ba9c81f294074a4.rb +0 -49
  328. data/lib/one_gadget/builds/libc-2.19-e70d0551a6ce8feb294de6c138135b58d8763e85.rb +0 -47
  329. data/lib/one_gadget/builds/libc-2.19-e806961cc6bc18acfd55df2613b100a9e733cebd.rb +0 -47
  330. data/lib/one_gadget/builds/libc-2.19-e882a1c9195b6bc1a62b3aeda9b63733109abd2f.rb +0 -49
  331. data/lib/one_gadget/builds/libc-2.19-e892e2e9d5818511e2390e642edd1d4cf2331885.rb +0 -47
  332. data/lib/one_gadget/builds/libc-2.19-e89b2153fd6795f03d6cd1dd789241326a7ee458.rb +0 -49
  333. data/lib/one_gadget/builds/libc-2.19-ebc3c6d17edbddfdcb000366fae4e7cab6ba420c.rb +0 -45
  334. data/lib/one_gadget/builds/libc-2.19-ecc10e3f1443d65007126bef8184ac84bfdf6b7c.rb +0 -47
  335. data/lib/one_gadget/builds/libc-2.19-edc2302cd47e8eedfc2e45da9fddecbdb07b4f21.rb +0 -50
  336. data/lib/one_gadget/builds/libc-2.19-edd5ba629053d507cb963d5269db6e7ae5bde36e.rb +0 -47
  337. data/lib/one_gadget/builds/libc-2.19-f3a1e60201c31bb9fef972279d08dfc33dbb3ce9.rb +0 -50
  338. data/lib/one_gadget/builds/libc-2.19-f5c375701c2c4406306201e19b42521f504175ec.rb +0 -49
  339. data/lib/one_gadget/builds/libc-2.19-f5e1349016d93661914069bcc7254e702434e445.rb +0 -49
  340. data/lib/one_gadget/builds/libc-2.19-f6248141094bb965d660fd2ce31d8534593c1003.rb +0 -50
  341. data/lib/one_gadget/builds/libc-2.19-f6ba6844f5bba0603e13b577328b9f326d4fef8a.rb +0 -45
  342. data/lib/one_gadget/builds/libc-2.19-f8cc1a32de8229e21b61215844be0462c6ac49a6.rb +0 -45
  343. data/lib/one_gadget/builds/libc-2.19-f9b5531180de2f0ce620bc03b5fc4d7f8570fd18.rb +0 -50
  344. data/lib/one_gadget/builds/libc-2.19-fb899b514fa6763ad006688efb32ecf9ca691ff3.rb +0 -49
  345. data/lib/one_gadget/builds/libc-2.19-fd5df0d8007d692d1c00226f81ba04b4f734b5b2.rb +0 -50
  346. data/lib/one_gadget/builds/libc-2.19-fe493bf9ecadc1f26aa36d4a95c718e9f227ad3a.rb +0 -50
  347. data/lib/one_gadget/builds/libc-2.19-fe76e177d397e9bdccf270232cc7e3a06e84aeb1.rb +0 -49
  348. data/lib/one_gadget/builds/libc-2.20-024df4febc9c789a8eeb052385d5e780b98a379f.rb +0 -48
  349. data/lib/one_gadget/builds/libc-2.20-074a896d13132ebfb22b89fd4d026b8608b84d01.rb +0 -46
  350. data/lib/one_gadget/builds/libc-2.20-0a1de0cc524dacd5b00c678daf50dde4d4539203.rb +0 -46
  351. data/lib/one_gadget/builds/libc-2.20-22fcfb6d820fec1bd07ebc3506236a1c10d2a74e.rb +0 -46
  352. data/lib/one_gadget/builds/libc-2.20-317589ae8050581abdfc414151c4655abc3cdfcd.rb +0 -48
  353. data/lib/one_gadget/builds/libc-2.20-370ce0ece788e8e73d938f2fb3ce6adb890eb417.rb +0 -48
  354. data/lib/one_gadget/builds/libc-2.20-389e645d86ab23c5f6acd039caacb18a02c3cfa2.rb +0 -46
  355. data/lib/one_gadget/builds/libc-2.20-398115bd423958b1769317a6f7e4928df141eb57.rb +0 -46
  356. data/lib/one_gadget/builds/libc-2.20-62fa1628ae33cc45efe8313a24ec8c475c9dffa6.rb +0 -46
  357. data/lib/one_gadget/builds/libc-2.20-6daaba13e3623d964ca116f91948afc5231732a8.rb +0 -48
  358. data/lib/one_gadget/builds/libc-2.20-765f172661014a4db8bb05b203bbc07c8686aa25.rb +0 -46
  359. data/lib/one_gadget/builds/libc-2.20-8bb8c78658cc612de895ec59a8026a08c86662e5.rb +0 -46
  360. data/lib/one_gadget/builds/libc-2.20-a8e57776dcdd5da9b7c9f60e65d28eaeb5b8173f.rb +0 -46
  361. data/lib/one_gadget/builds/libc-2.20-ad272c3f76f36f4fe1357514d4b207a06f7f536c.rb +0 -46
  362. data/lib/one_gadget/builds/libc-2.20-aefe2d045393dbe3e0a2acef88b6f31a78d3a27c.rb +0 -46
  363. data/lib/one_gadget/builds/libc-2.20-b1217615db4b7a86b90436982610bf86a03ca881.rb +0 -46
  364. data/lib/one_gadget/builds/libc-2.20-f3063b7115d5a383189937852ce356f4c60fd190.rb +0 -46
  365. data/lib/one_gadget/builds/libc-2.20-f53b8ad377a1988dcf6329bbdfa7b1201431656e.rb +0 -46
  366. data/lib/one_gadget/builds/libc-2.21-04f18629ef42b062ed0c8f60d5bfaa40a7d28ef7.rb +0 -52
  367. data/lib/one_gadget/builds/libc-2.21-092fa8483d177952f4b38a4b9be8305baef60466.rb +0 -46
  368. data/lib/one_gadget/builds/libc-2.21-096d4c9ce21618defe0b3e4694dc5380e0189009.rb +0 -51
  369. data/lib/one_gadget/builds/libc-2.21-13495a0bf9fc076d41056041922792ddb58ac456.rb +0 -46
  370. data/lib/one_gadget/builds/libc-2.21-169a143e9c40cfd9d09695333e45fd67743cd2d6.rb +0 -46
  371. data/lib/one_gadget/builds/libc-2.21-1800fb8ed39680604091e8268cd21cb8ee6f747f.rb +0 -46
  372. data/lib/one_gadget/builds/libc-2.21-185ab573783653be4ea1784a59be3a1499ca64c7.rb +0 -46
  373. data/lib/one_gadget/builds/libc-2.21-1a266f551f39283eff85f4ab8913d8b6d57fb290.rb +0 -46
  374. data/lib/one_gadget/builds/libc-2.21-1dfdbdb3ed58b70e07e1a94ff3e95d84652cb0f1.rb +0 -46
  375. data/lib/one_gadget/builds/libc-2.21-1ee253f6aeaec7a001984e257b86ad7224e46469.rb +0 -46
  376. data/lib/one_gadget/builds/libc-2.21-20b088455f100a9a72e94a69e843b6e0831cbedb.rb +0 -46
  377. data/lib/one_gadget/builds/libc-2.21-2466292818ad2b41c64ea7107123fe96010e1b96.rb +0 -46
  378. data/lib/one_gadget/builds/libc-2.21-24c3f01054f36f8184ba673743310b5178354334.rb +0 -46
  379. data/lib/one_gadget/builds/libc-2.21-25dd428fb4c350c16dfee20491f1a06484a2bfa3.rb +0 -46
  380. data/lib/one_gadget/builds/libc-2.21-2c092eb4091e8d3a20313a09194418595efca9db.rb +0 -46
  381. data/lib/one_gadget/builds/libc-2.21-2e9718e58257bda1dc0d751665a3ee233bf606f2.rb +0 -46
  382. data/lib/one_gadget/builds/libc-2.21-3141017330a2057c655dcb61bd3d9b2c98399181.rb +0 -46
  383. data/lib/one_gadget/builds/libc-2.21-39f1a0bc7f66ea42f3341c0d629bae8caef2346d.rb +0 -46
  384. data/lib/one_gadget/builds/libc-2.21-3af67b618c87a9cfadcf4be33331e34f77f5c842.rb +0 -46
  385. data/lib/one_gadget/builds/libc-2.21-3b9bef61c919475929cfcc3608bdadb86c3b1c6e.rb +0 -46
  386. data/lib/one_gadget/builds/libc-2.21-3c9e3250b31dfe4b5e139cda266e7beabc47e504.rb +0 -46
  387. data/lib/one_gadget/builds/libc-2.21-3eab56f86f3ee1745baa9e6fa771e652340487cc.rb +0 -46
  388. data/lib/one_gadget/builds/libc-2.21-3f08a19432b31835c71ea7d5b3687562cef053e3.rb +0 -46
  389. data/lib/one_gadget/builds/libc-2.21-3faf7b9bab86ba7024b62d99c859136333b8a70d.rb +0 -42
  390. data/lib/one_gadget/builds/libc-2.21-3fc95a6cdd31b66c550d64d90d0431f68ed43571.rb +0 -46
  391. data/lib/one_gadget/builds/libc-2.21-41530fe252a0d5854827649ddf6e2c8fba9d1653.rb +0 -46
  392. data/lib/one_gadget/builds/libc-2.21-4a0864552f6b027689c7a69efa12e277009c5999.rb +0 -46
  393. data/lib/one_gadget/builds/libc-2.21-4b7de972132a4762898ccb1210ffb7cfc0e6f14e.rb +0 -46
  394. data/lib/one_gadget/builds/libc-2.21-4ce84d266a07230287b230ac4ce8ba2d2f3f854e.rb +0 -46
  395. data/lib/one_gadget/builds/libc-2.21-4dec520cda38e785c80e30db8fcd5428cee0f324.rb +0 -42
  396. data/lib/one_gadget/builds/libc-2.21-4f14eb66c408453973042c95d25f4e014bf4e364.rb +0 -46
  397. data/lib/one_gadget/builds/libc-2.21-503c5dd98cc9529359e601c1595c995cf359df30.rb +0 -46
  398. data/lib/one_gadget/builds/libc-2.21-505a88bc8f93a7ba339895ce27dc4ad8331cad7d.rb +0 -46
  399. data/lib/one_gadget/builds/libc-2.21-53377f31675a81af793df0c63b40e193a4a6999b.rb +0 -46
  400. data/lib/one_gadget/builds/libc-2.21-53b6f3047638b0703bf1091fe4c3afe79445d546.rb +0 -46
  401. data/lib/one_gadget/builds/libc-2.21-570c7051e379d909016cb81933bc5701daecd428.rb +0 -46
  402. data/lib/one_gadget/builds/libc-2.21-591e5a56f9d466a7c70baf6684d99843ab8c45d1.rb +0 -46
  403. data/lib/one_gadget/builds/libc-2.21-59b7200857a55acdfa5de730a573eed0cfec0962.rb +0 -46
  404. data/lib/one_gadget/builds/libc-2.21-59c981c8e0e729ae7c562daa00be2cdb8e0c090a.rb +0 -46
  405. data/lib/one_gadget/builds/libc-2.21-59eae8a903584dcbc14cf07c719cd23b9f65e230.rb +0 -49
  406. data/lib/one_gadget/builds/libc-2.21-5a22b7ec63fd7c5dc6a92875046515f4beac727d.rb +0 -42
  407. data/lib/one_gadget/builds/libc-2.21-5c9f149296e581c181529723f7eb44bf10a7d746.rb +0 -46
  408. data/lib/one_gadget/builds/libc-2.21-5ccd94c4e3483df05be240ff1fb8a3f53794cc6f.rb +0 -49
  409. data/lib/one_gadget/builds/libc-2.21-5f977df2af6a6a25e48e60dd867680d79dc6da8e.rb +0 -46
  410. data/lib/one_gadget/builds/libc-2.21-60e1d8111d5fec5580da9105670e78a63287732e.rb +0 -46
  411. data/lib/one_gadget/builds/libc-2.21-629ae1554ea01c67fdedb7874de4686f6c30b6e3.rb +0 -46
  412. data/lib/one_gadget/builds/libc-2.21-63c3d4b45af73dff54258c5a5cab9e3d828cc766.rb +0 -46
  413. data/lib/one_gadget/builds/libc-2.21-64125575d05a0aedbfe187ef0f95431229c5aac8.rb +0 -42
  414. data/lib/one_gadget/builds/libc-2.21-6980ac7f9370d2bbb2aade5ceeedc8afc4f02f3e.rb +0 -46
  415. data/lib/one_gadget/builds/libc-2.21-7b173624b62ee3bd8049bdeaaff990839eb4cb36.rb +0 -46
  416. data/lib/one_gadget/builds/libc-2.21-7d672538d6a08ce14e4bd6e931392bf63156f490.rb +0 -46
  417. data/lib/one_gadget/builds/libc-2.21-7f4a3fabc90bc1e410fe6377e2a1826d426c8f57.rb +0 -46
  418. data/lib/one_gadget/builds/libc-2.21-80e8cfbc6550fde842cfb72ba97d916827d462df.rb +0 -46
  419. data/lib/one_gadget/builds/libc-2.21-82d7d2a5db69a59c01ca5d2a63250ca6a6bd08a3.rb +0 -52
  420. data/lib/one_gadget/builds/libc-2.21-834a46faae116cb9500c57d6c06e701f98a52e2e.rb +0 -42
  421. data/lib/one_gadget/builds/libc-2.21-83d46f5dc4d7894ea923bf566f6b38bfceedc6e1.rb +0 -46
  422. data/lib/one_gadget/builds/libc-2.21-847fa75888ee989393032f4ae5a133902df3e2cb.rb +0 -46
  423. data/lib/one_gadget/builds/libc-2.21-8626995277c9a0db7fec384061c564c3ea50eeae.rb +0 -46
  424. data/lib/one_gadget/builds/libc-2.21-86d752d92fbf1e8b558018e4b122dab52b304ab6.rb +0 -46
  425. data/lib/one_gadget/builds/libc-2.21-879c9c4ffc5aabfd0a9c9d1b1c73d5f1df969aac.rb +0 -46
  426. data/lib/one_gadget/builds/libc-2.21-87ded6f6ac3f40a59e17170307d0b15c1170552c.rb +0 -46
  427. data/lib/one_gadget/builds/libc-2.21-8acd43cf74a9756cd727b8516b08679ee071a92d.rb +0 -49
  428. data/lib/one_gadget/builds/libc-2.21-8e845b188299cb419b70cf5de27c22a50f776fce.rb +0 -46
  429. data/lib/one_gadget/builds/libc-2.21-924acd9c6de558f26574bdc2eaa3048b597f2e5e.rb +0 -46
  430. data/lib/one_gadget/builds/libc-2.21-93d704dff1ec8dceb660b58863d2a36afd52b66e.rb +0 -46
  431. data/lib/one_gadget/builds/libc-2.21-9595d37f80a7925dc75efa522c839df34edb4b46.rb +0 -46
  432. data/lib/one_gadget/builds/libc-2.21-9ac81172d5ff96f40d984fe7c10073a98f1a6b2e.rb +0 -46
  433. data/lib/one_gadget/builds/libc-2.21-9c764e8fb2df1bccb33ffedd92cd8659aab98e33.rb +0 -46
  434. data/lib/one_gadget/builds/libc-2.21-9cf342a68f1a7b4b6ba4df62667c5f4ee8cf7687.rb +0 -46
  435. data/lib/one_gadget/builds/libc-2.21-9d0884395161c74567d7fea747e15c9a31785e06.rb +0 -46
  436. data/lib/one_gadget/builds/libc-2.21-a0ccdc12ed6ad0d67778aff9b49abc3c8eb30b9a.rb +0 -46
  437. data/lib/one_gadget/builds/libc-2.21-a167f5367b27f9493cefac9b23e68f180239e96c.rb +0 -46
  438. data/lib/one_gadget/builds/libc-2.21-a1f20771562e9a58f6d2746d38a09694d4cbc345.rb +0 -46
  439. data/lib/one_gadget/builds/libc-2.21-a235f288513fa6064a856c499e0453f9f4a44f8a.rb +0 -46
  440. data/lib/one_gadget/builds/libc-2.21-a5c1de4517ba044d2f7cfa479e69f29bbc673c6a.rb +0 -46
  441. data/lib/one_gadget/builds/libc-2.21-a890a8ee268f8ae36ae0810b6eea7c45766b4133.rb +0 -46
  442. data/lib/one_gadget/builds/libc-2.21-a9274e5d52fbb32ba32bae055f69ba1741771e79.rb +0 -46
  443. data/lib/one_gadget/builds/libc-2.21-ab066cff9171d55efb0dd884d31c18682ae6922b.rb +0 -46
  444. data/lib/one_gadget/builds/libc-2.21-af2daffab6880d8bc68db4143643c132164dc7ca.rb +0 -46
  445. data/lib/one_gadget/builds/libc-2.21-b180bd3047be9b4b70fb28455365546001b76e85.rb +0 -42
  446. data/lib/one_gadget/builds/libc-2.21-b440183d6aefac5a9259f6e2de824e43e85ed341.rb +0 -46
  447. data/lib/one_gadget/builds/libc-2.21-b551bf2740c7e79d1722776a6e0d35d65885d037.rb +0 -46
  448. data/lib/one_gadget/builds/libc-2.21-b7ac9e99f0fc2fb83f98b6a01615c0508de638a8.rb +0 -46
  449. data/lib/one_gadget/builds/libc-2.21-b8c6428b947bad767595961d6cb907493073183c.rb +0 -46
  450. data/lib/one_gadget/builds/libc-2.21-b8daa3ddab3acf64323b47fee32338d5c9591c4d.rb +0 -46
  451. data/lib/one_gadget/builds/libc-2.21-bbfccd958f34a2292058d60a0ddf19e1fcd4ec1e.rb +0 -46
  452. data/lib/one_gadget/builds/libc-2.21-bda2fd9acb85c5de61a1d4c7e2098fce25f3199f.rb +0 -46
  453. data/lib/one_gadget/builds/libc-2.21-c164b79c008a3ad0c2f0277688274a0c3c98e79b.rb +0 -46
  454. data/lib/one_gadget/builds/libc-2.21-c2f12c8aed093770731d57b19dc039c32423246b.rb +0 -46
  455. data/lib/one_gadget/builds/libc-2.21-c3318940121036465913d946fa62fef61459b68a.rb +0 -46
  456. data/lib/one_gadget/builds/libc-2.21-c4969c549a0d0099304108e50a77ff68602ed922.rb +0 -46
  457. data/lib/one_gadget/builds/libc-2.21-c51ca19ec6c53db97a15c67eea8ed00761570689.rb +0 -46
  458. data/lib/one_gadget/builds/libc-2.21-c601601a621be82612e36dd2a981121c141c72c9.rb +0 -46
  459. data/lib/one_gadget/builds/libc-2.21-c6654d8229ff494d5b5c067e8a1dbf184fcdd57d.rb +0 -46
  460. data/lib/one_gadget/builds/libc-2.21-c91d043eaeb023885cdd80a3c0872d9fde9867bb.rb +0 -46
  461. data/lib/one_gadget/builds/libc-2.21-cb732feec2d8bae5ebb5d072a86cd31aca65f89b.rb +0 -46
  462. data/lib/one_gadget/builds/libc-2.21-cf580407d98ed9bec9c92c1ae2241eca8604e4d5.rb +0 -46
  463. data/lib/one_gadget/builds/libc-2.21-d0cbed817be7f8947339e1796d1964567e9dfe96.rb +0 -46
  464. data/lib/one_gadget/builds/libc-2.21-d1c4dd44416a5a2781b37f7d9111961c8dc58583.rb +0 -46
  465. data/lib/one_gadget/builds/libc-2.21-dc53884306f13d86e310d893433556d93ef7facc.rb +0 -49
  466. data/lib/one_gadget/builds/libc-2.21-dc70ee31ce02e89d989cb38dc885438e19dc5919.rb +0 -49
  467. data/lib/one_gadget/builds/libc-2.21-e174b9dc46c7d38d1f153f2a4f9c059484042cdc.rb +0 -46
  468. data/lib/one_gadget/builds/libc-2.21-e3a06c9d90272ed9dd49863667de02579971fefd.rb +0 -46
  469. data/lib/one_gadget/builds/libc-2.21-e6f442dc2d29e0e16cd34dc787d3c95fafeb90cc.rb +0 -46
  470. data/lib/one_gadget/builds/libc-2.21-e91a3a679d219196e597358caa46469961c471fd.rb +0 -42
  471. data/lib/one_gadget/builds/libc-2.21-f08b44317fec610d418f62d5d24fafaec0510353.rb +0 -46
  472. data/lib/one_gadget/builds/libc-2.21-f0c24219cbba0605e39e02123398437c5dbbb104.rb +0 -51
  473. data/lib/one_gadget/builds/libc-2.21-f233903e448d3ae08e72a23b0e742ecfc8b6ccc1.rb +0 -46
  474. data/lib/one_gadget/builds/libc-2.21-f5043f1299e2b98ddf8a1ba08f731f260492601a.rb +0 -46
  475. data/lib/one_gadget/builds/libc-2.21-f9e9b2f3225a520c823f0d81aea92a3dacfd621f.rb +0 -46
  476. data/lib/one_gadget/builds/libc-2.21-fe668be19c2dadb3cef5e6eafb6796acabf0b8f1.rb +0 -49
  477. data/lib/one_gadget/builds/libc-2.21.90-d8785e62882096798b9a47645c401e2db0c3da87.rb +0 -54
  478. data/lib/one_gadget/builds/libc-2.21.90-ec2edee6fe6141b914f74b6d3541e986c1995420.rb +0 -54
  479. data/lib/one_gadget/builds/libc-2.22-056b23405739592e947a92cb210791fbfe9d9938.rb +0 -52
  480. data/lib/one_gadget/builds/libc-2.22-057feedce849edba19d94bf3920903b4c297e249.rb +0 -52
  481. data/lib/one_gadget/builds/libc-2.22-06a01f4986991b8605b775bd21c3829c071c7e01.rb +0 -46
  482. data/lib/one_gadget/builds/libc-2.22-07627a0a76d4347858dc9b2533aac197920feb67.rb +0 -42
  483. data/lib/one_gadget/builds/libc-2.22-079d0ce21fe81c5c95f687db4b944d28c121a849.rb +0 -52
  484. data/lib/one_gadget/builds/libc-2.22-0f1e39397cbf59f35018306725336d275b33fad6.rb +0 -46
  485. data/lib/one_gadget/builds/libc-2.22-111a78efce1a05c176c84381f9a8687564c124dd.rb +0 -46
  486. data/lib/one_gadget/builds/libc-2.22-11c38e8940f7cd6be485bf6903fdb169d71617dd.rb +0 -46
  487. data/lib/one_gadget/builds/libc-2.22-121137de182d11744ae6be8683de568a64edca7f.rb +0 -46
  488. data/lib/one_gadget/builds/libc-2.22-124cbcd567a508befc4d08238d209749a6f81ef6.rb +0 -46
  489. data/lib/one_gadget/builds/libc-2.22-13fbe87df7583cb37d64da775d5298d139d6c645.rb +0 -46
  490. data/lib/one_gadget/builds/libc-2.22-142110382cc91407cee827f639c811fa41aad081.rb +0 -46
  491. data/lib/one_gadget/builds/libc-2.22-157a6d46c53ff9cd3176239d342644bd34cc9e6a.rb +0 -46
  492. data/lib/one_gadget/builds/libc-2.22-172387e0713d81467e907f48691fd8a3a9d9b745.rb +0 -46
  493. data/lib/one_gadget/builds/libc-2.22-1853ca84fd72235c89ca6c71dc2fd586035fb508.rb +0 -52
  494. data/lib/one_gadget/builds/libc-2.22-18c9fd18d79dce6408c752dc974b0b895286f861.rb +0 -46
  495. data/lib/one_gadget/builds/libc-2.22-190d9018168d767820b7fc6fac5cb62d1a40d819.rb +0 -52
  496. data/lib/one_gadget/builds/libc-2.22-1c3905611074ae1c586d90e5312e49817dfb1454.rb +0 -46
  497. data/lib/one_gadget/builds/libc-2.22-1ef0e3b0b75b086f54c2fb8ad958db46c199de28.rb +0 -52
  498. data/lib/one_gadget/builds/libc-2.22-20d1cd3333f60c045ee0d71cd32ac74a6b721b85.rb +0 -46
  499. data/lib/one_gadget/builds/libc-2.22-22585efc70794668f1b7f01f4392daef49f476e0.rb +0 -46
  500. data/lib/one_gadget/builds/libc-2.22-263aaed35e720148fbc396f8311138d46d099d7e.rb +0 -46
  501. data/lib/one_gadget/builds/libc-2.22-26ce2dab7bee96ee1c9d290100ffae593a644ddf.rb +0 -42
  502. data/lib/one_gadget/builds/libc-2.22-2881424e7394f45d7b7e4b9d7bee0ac3336fb53c.rb +0 -42
  503. data/lib/one_gadget/builds/libc-2.22-291a696d50e945b55f27ad1b7055adb4d94d611e.rb +0 -52
  504. data/lib/one_gadget/builds/libc-2.22-2da1c94523e9778bedccac2922cdb5582b3bab99.rb +0 -52
  505. data/lib/one_gadget/builds/libc-2.22-34701c7aa9501f113595ba20117d03fbab4a7edf.rb +0 -46
  506. data/lib/one_gadget/builds/libc-2.22-34a1e432068988d1d05ded9a1ff3a5a4d9ba957d.rb +0 -46
  507. data/lib/one_gadget/builds/libc-2.22-35dad9bbfda68f466fdb0784359dfa8be8f2e636.rb +0 -46
  508. data/lib/one_gadget/builds/libc-2.22-372f377ce426f864bf68f2a32cd703d595664885.rb +0 -46
  509. data/lib/one_gadget/builds/libc-2.22-37acef3594b4fbe5bdb37cfab88155ea223bac9d.rb +0 -46
  510. data/lib/one_gadget/builds/libc-2.22-3d8a83ac6553abcf5e18c10a39e5020352cf1fb2.rb +0 -52
  511. data/lib/one_gadget/builds/libc-2.22-3e86d1920edbc9fb506c499301164f3920a3e141.rb +0 -46
  512. data/lib/one_gadget/builds/libc-2.22-461f342f6e88de1977eb60aecd9554335b3602be.rb +0 -46
  513. data/lib/one_gadget/builds/libc-2.22-49c585626bc777823124cce965150be221723855.rb +0 -52
  514. data/lib/one_gadget/builds/libc-2.22-4bccfeb62282482e2bb5fe47523cc26cc9891d9d.rb +0 -52
  515. data/lib/one_gadget/builds/libc-2.22-4e7b4e6104632c48765f27c7e53ce073c73b03c2.rb +0 -46
  516. data/lib/one_gadget/builds/libc-2.22-515163d8d5ee351c62d0ef6438b1cb492b882128.rb +0 -46
  517. data/lib/one_gadget/builds/libc-2.22-53e3e8ce017c356969e16f4bb329fc45e948a045.rb +0 -46
  518. data/lib/one_gadget/builds/libc-2.22-5f40eb5a5f32b9824ba0cb2547ffb2b6964f6414.rb +0 -46
  519. data/lib/one_gadget/builds/libc-2.22-6281300a16a309db14773233ab085dadc65f0081.rb +0 -52
  520. data/lib/one_gadget/builds/libc-2.22-6293d42412b9a87b7233bcb5f5cbf4496c8c90dd.rb +0 -52
  521. data/lib/one_gadget/builds/libc-2.22-661a81563d20e7823c63828ff38348ec1b80adcc.rb +0 -46
  522. data/lib/one_gadget/builds/libc-2.22-6670937bc44571ec34ab812a7a7d2ce839a382ad.rb +0 -46
  523. data/lib/one_gadget/builds/libc-2.22-669abe13c2975dbdc59eb4cf3a6e9bd28ecd376c.rb +0 -52
  524. data/lib/one_gadget/builds/libc-2.22-66b3470fd1603fc11a54f8f1c69b81d85f2f0074.rb +0 -46
  525. data/lib/one_gadget/builds/libc-2.22-67222017b4ae03b81a41387cb81b0814654e2dd6.rb +0 -46
  526. data/lib/one_gadget/builds/libc-2.22-6758f608b9326b54464784a72149d9991ce839d1.rb +0 -46
  527. data/lib/one_gadget/builds/libc-2.22-68afe0b2e7d234d495d38ec6bf35257a42f229de.rb +0 -52
  528. data/lib/one_gadget/builds/libc-2.22-695c07ac1193aad1d8ee9871ee425e5653408a4d.rb +0 -46
  529. data/lib/one_gadget/builds/libc-2.22-6c9019c65a7a835172e1e88ca2f88d1f14fb23e1.rb +0 -52
  530. data/lib/one_gadget/builds/libc-2.22-765dbc5efb8e378d36cd0742b6e5a65bd9046168.rb +0 -46
  531. data/lib/one_gadget/builds/libc-2.22-775336aa55e307ff5c730b375f8220b85ede2e34.rb +0 -52
  532. data/lib/one_gadget/builds/libc-2.22-7d3f57aba43d34ae3cfab2df04a3050efbd1dfed.rb +0 -46
  533. data/lib/one_gadget/builds/libc-2.22-84681ac612616253b2eb8e99e1b68836b7d68cac.rb +0 -46
  534. data/lib/one_gadget/builds/libc-2.22-87066f8392926c00ab4a5969f52aade616c1e314.rb +0 -52
  535. data/lib/one_gadget/builds/libc-2.22-871cd1cac63b0dcd8f2cdd231291f9f89fe7c099.rb +0 -52
  536. data/lib/one_gadget/builds/libc-2.22-87e1ed146ef347cf326650e230524a6c8d4ed43d.rb +0 -46
  537. data/lib/one_gadget/builds/libc-2.22-8c48d3a9f8dea201de2948aa7f78c6a42ffa47cf.rb +0 -46
  538. data/lib/one_gadget/builds/libc-2.22-916b3d65c4f43150dea643a905c1a2a68efc3fb6.rb +0 -52
  539. data/lib/one_gadget/builds/libc-2.22-91dee95c3183246a5332357b814a08ba9c05d999.rb +0 -46
  540. data/lib/one_gadget/builds/libc-2.22-91fcf48a9dd99f320b205a2feef18c2edfdbaeba.rb +0 -42
  541. data/lib/one_gadget/builds/libc-2.22-92f57ef98cf5dc8e4d6b5df5cd1b9260b7e9975a.rb +0 -46
  542. data/lib/one_gadget/builds/libc-2.22-94075f4ca5cff8f90934c9e1706db8022e7d4ba1.rb +0 -46
  543. data/lib/one_gadget/builds/libc-2.22-94140487ddd020e65cb6c3f9ae09275ca91dc47c.rb +0 -46
  544. data/lib/one_gadget/builds/libc-2.22-94b271ac2dedc103ec8d042bb40a418a042dceb9.rb +0 -42
  545. data/lib/one_gadget/builds/libc-2.22-9686e55d792fbbcc0ae8589a69c8b15d2444ac65.rb +0 -46
  546. data/lib/one_gadget/builds/libc-2.22-a352f9564e9d19391f222c67e5c64e09f949df4e.rb +0 -42
  547. data/lib/one_gadget/builds/libc-2.22-a506f6e38353adbb19bd22872b2fa8831c32c63d.rb +0 -52
  548. data/lib/one_gadget/builds/libc-2.22-a5a6daa9eb710b5fc311bdd17696bb25e98d9dab.rb +0 -46
  549. data/lib/one_gadget/builds/libc-2.22-a61e9f882f22a77b803a1fa28912b2636913ea56.rb +0 -52
  550. data/lib/one_gadget/builds/libc-2.22-ac771fb8769897775bb6df04fe982d7a79684c8a.rb +0 -46
  551. data/lib/one_gadget/builds/libc-2.22-b213a4604fc2c8fd113ae890a97c3c2ad4022ceb.rb +0 -46
  552. data/lib/one_gadget/builds/libc-2.22-b916e3c1d80069d0209f6376b33e42b75ec49eda.rb +0 -52
  553. data/lib/one_gadget/builds/libc-2.22-b941d9b157b159697c7cbfa154c410b23be1a7af.rb +0 -42
  554. data/lib/one_gadget/builds/libc-2.22-bdbc01430dbd0c80011dea9852f3ae257bcf3138.rb +0 -46
  555. data/lib/one_gadget/builds/libc-2.22-bfdfa3833107e0041ab896c1dbfd0a4f1c4fec77.rb +0 -52
  556. data/lib/one_gadget/builds/libc-2.22-c2931cdba68412c1b871f960b4005f70847b29c3.rb +0 -52
  557. data/lib/one_gadget/builds/libc-2.22-c65d9bac0e2687bd08337088466a686c40479e5d.rb +0 -46
  558. data/lib/one_gadget/builds/libc-2.22-c6799f7a3df15cf4c4b5c273686e7cb3283e0337.rb +0 -52
  559. data/lib/one_gadget/builds/libc-2.22-cb354ede0283a824c81183b1ffb6add90255edb6.rb +0 -52
  560. data/lib/one_gadget/builds/libc-2.22-cee6e82b12f7c94f715fc96dcd4544a44997dbb5.rb +0 -46
  561. data/lib/one_gadget/builds/libc-2.22-d0516d4ba12ccc659906a5f122f8637279970bf4.rb +0 -52
  562. data/lib/one_gadget/builds/libc-2.22-d088eee45f6cbd649b53ae99b68a91823d86c6d6.rb +0 -46
  563. data/lib/one_gadget/builds/libc-2.22-dcc06a908986f225fded745f7f884bf50fd5b434.rb +0 -42
  564. data/lib/one_gadget/builds/libc-2.22-dd900e0adc14d176fe33f2b6e5d8dbe2bacb48d0.rb +0 -46
  565. data/lib/one_gadget/builds/libc-2.22-e1d7f9459324fd489e82a931f9bbe3b10cfc4436.rb +0 -42
  566. data/lib/one_gadget/builds/libc-2.22-e259f9732c7269eccd67dc7f8bbceded2a909972.rb +0 -52
  567. data/lib/one_gadget/builds/libc-2.22-e7e6d42611b69819d39439c2ee93305f6305ed90.rb +0 -46
  568. data/lib/one_gadget/builds/libc-2.22-eb0fe6bc985d025bfeeb207924823e7c2c7a77e6.rb +0 -46
  569. data/lib/one_gadget/builds/libc-2.22-eb2c0cc31e0d158b487d1010b30fa7ed358fcbd7.rb +0 -42
  570. data/lib/one_gadget/builds/libc-2.22-ee60bf5cd327f0aa534fd8c37a8733e942707a0a.rb +0 -46
  571. data/lib/one_gadget/builds/libc-2.22-efd6084786349d5763237b1caeb3d5d9f61dce75.rb +0 -46
  572. data/lib/one_gadget/builds/libc-2.22-f21f4b63fbd354522a1c37a982da46973b6a95ef.rb +0 -52
  573. data/lib/one_gadget/builds/libc-2.22-f43f58b45b8c7fe20d3c3c9f812f50a7755615d3.rb +0 -46
  574. data/lib/one_gadget/builds/libc-2.22-fa6cf8c4105217d0cf2609ab83ec3c9d4d3c5d41.rb +0 -46
  575. data/lib/one_gadget/builds/libc-2.22-faef9af5a88432766d76d7da2cf961c75b6e0e0b.rb +0 -52
  576. data/lib/one_gadget/builds/libc-2.22-ff7fbdaaef014460825b4ef5848e86834aa3880c.rb +0 -42
  577. data/lib/one_gadget/builds/libc-2.23-012683a92d161c37d51d89711c4870ba30904c3d.rb +0 -46
  578. data/lib/one_gadget/builds/libc-2.23-088165fba081e659b7ea6463eab7bcac70363656.rb +0 -46
  579. data/lib/one_gadget/builds/libc-2.23-088a6e00a1814622219f346b41e775b8dd46c518.rb +0 -46
  580. data/lib/one_gadget/builds/libc-2.23-0ae3de55854513a2a7d4979337176c0717efce8a.rb +0 -46
  581. data/lib/one_gadget/builds/libc-2.23-0c23056feb23daf0cb1d2f90e153b5f892df83c6.rb +0 -46
  582. data/lib/one_gadget/builds/libc-2.23-11ae3441756e6c2ebf5c962434bf9f07b3ea3deb.rb +0 -46
  583. data/lib/one_gadget/builds/libc-2.23-131c254aed46e6a24cb08f3abe802ea0ef50e5f9.rb +0 -46
  584. data/lib/one_gadget/builds/libc-2.23-1800a4bdb0c42a7bb7a570ed90724fa04de8a4fe.rb +0 -46
  585. data/lib/one_gadget/builds/libc-2.23-18f761287ed46e213bec29c2e440e73fd72373be.rb +0 -46
  586. data/lib/one_gadget/builds/libc-2.23-1b1d19add6d861e16e04e4b8e9864a7bc16c1327.rb +0 -46
  587. data/lib/one_gadget/builds/libc-2.23-1ca54a6e0d76188105b12e49fe6b8019bf08803a.rb +0 -46
  588. data/lib/one_gadget/builds/libc-2.23-1e80992437b5e1cb76bf56605ee8991e76e85f69.rb +0 -42
  589. data/lib/one_gadget/builds/libc-2.23-1f1cf1c7ff279aa37add352423fd850e06be1098.rb +0 -46
  590. data/lib/one_gadget/builds/libc-2.23-2052ef79d1bb69a8f5c5340eee984f2659b75e39.rb +0 -46
  591. data/lib/one_gadget/builds/libc-2.23-233dde1d38ecdc54bef352f1b5ee4e007ec9df26.rb +0 -46
  592. data/lib/one_gadget/builds/libc-2.23-2891dc7656eed3d8d4f255c41ca6a28caf532079.rb +0 -46
  593. data/lib/one_gadget/builds/libc-2.23-29e38445a740bba5a77b86691e3c51a7e48dc79b.rb +0 -46
  594. data/lib/one_gadget/builds/libc-2.23-2aedae2bb27ac85cf14c36da79747dd88bb2b633.rb +0 -46
  595. data/lib/one_gadget/builds/libc-2.23-2c4ed1bebc9ede033fbbb422f84da9a93cacd88e.rb +0 -46
  596. data/lib/one_gadget/builds/libc-2.23-30773be8cf5bfed9d910c8473dd44eaab2e705ab.rb +0 -49
  597. data/lib/one_gadget/builds/libc-2.23-336976f90c600be7c95a68be6c2f0652cc22347c.rb +0 -46
  598. data/lib/one_gadget/builds/libc-2.23-3612e20f3e2705dcf8fd81ac494a0e20b9e16764.rb +0 -46
  599. data/lib/one_gadget/builds/libc-2.23-369de0e1d833caa693af17f17c83ba937f0a4dad.rb +0 -49
  600. data/lib/one_gadget/builds/libc-2.23-39fa51127c50ad10c32a19e0a1a587a05b8d450b.rb +0 -46
  601. data/lib/one_gadget/builds/libc-2.23-408d0e9e7720923def88a5aea9988cbaa0142b64.rb +0 -46
  602. data/lib/one_gadget/builds/libc-2.23-414c35398dffe74ac9ed945e176d8fd99446d9de.rb +0 -46
  603. data/lib/one_gadget/builds/libc-2.23-49bd3f83d9b34b9f043e68624271c5ef90820021.rb +0 -46
  604. data/lib/one_gadget/builds/libc-2.23-4df2711ee6c911fe238cf10f43b08099201e57ec.rb +0 -40
  605. data/lib/one_gadget/builds/libc-2.23-54128118082b61b311247f8fa6672b8df938748a.rb +0 -46
  606. data/lib/one_gadget/builds/libc-2.23-5d45b750d14b7b6ea11c2b57c73746b61592437b.rb +0 -46
  607. data/lib/one_gadget/builds/libc-2.23-5d511bfe32efcb567933d13ab9dc87f0a02d3651.rb +0 -42
  608. data/lib/one_gadget/builds/libc-2.23-60ea46dff84c256650d44c1a32ca609168bee1a6.rb +0 -46
  609. data/lib/one_gadget/builds/libc-2.23-635101aec7213fdc442419bf65a92047a862ff32.rb +0 -46
  610. data/lib/one_gadget/builds/libc-2.23-6462f7cc95a34bd03f42ad150211db68fcf27d44.rb +0 -46
  611. data/lib/one_gadget/builds/libc-2.23-697f7d05a70ecde852a2eed480bea6a6779b4a27.rb +0 -46
  612. data/lib/one_gadget/builds/libc-2.23-72ac40020fbf2b0b6a16b5ff4e0efdff1e71fa92.rb +0 -29
  613. data/lib/one_gadget/builds/libc-2.23-7598dcdd3567efa7befebc6d97977e83d758c649.rb +0 -46
  614. data/lib/one_gadget/builds/libc-2.23-78e2b4f1945abc8f1db6d82acf6d1ef593d01e06.rb +0 -46
  615. data/lib/one_gadget/builds/libc-2.23-89cc3bb9361ad139a1967462175759416c9dc82b.rb +0 -46
  616. data/lib/one_gadget/builds/libc-2.23-8b51f0e99fae7170859f393ba0118cc955c337b9.rb +0 -46
  617. data/lib/one_gadget/builds/libc-2.23-8c436e0b35bb19702fba4b5effb3f94edecc3c46.rb +0 -45
  618. data/lib/one_gadget/builds/libc-2.23-8ccf267bc9d0f4706559d85cbeb704782dae9ede.rb +0 -46
  619. data/lib/one_gadget/builds/libc-2.23-946025a5cad7b5f2dfbaebc6ebd1fcc004349b48.rb +0 -40
  620. data/lib/one_gadget/builds/libc-2.23-94ab3e046784e5da65532a9aded8555c3bdc3778.rb +0 -46
  621. data/lib/one_gadget/builds/libc-2.23-9600225be309ec27d01385dd52df9196e86ed3c0.rb +0 -46
  622. data/lib/one_gadget/builds/libc-2.23-961068caa1dcd5005b27c7c6abe32e94102eae3f.rb +0 -46
  623. data/lib/one_gadget/builds/libc-2.23-96f8c796364693379a2a0c753133fecbd1c52434.rb +0 -46
  624. data/lib/one_gadget/builds/libc-2.23-99de357f509368d89f95b0e92b0d5227e8b8addc.rb +0 -46
  625. data/lib/one_gadget/builds/libc-2.23-9a6b57c7a4f93d7e54e61bccb7df996c8bc58141.rb +0 -46
  626. data/lib/one_gadget/builds/libc-2.23-9e85392b0c4e3e2c8fdc063dfda4c3d0e0156e54.rb +0 -46
  627. data/lib/one_gadget/builds/libc-2.23-a594a9c73a6067ab00a0f8db78d665be147acdc1.rb +0 -38
  628. data/lib/one_gadget/builds/libc-2.23-a6fe771348e04d552fa1e6dcaf610699719bdd0e.rb +0 -46
  629. data/lib/one_gadget/builds/libc-2.23-a71b122dbcd9503767b6f176d7745749fb4aaf89.rb +0 -46
  630. data/lib/one_gadget/builds/libc-2.23-ac333186c6b532511a68d16aca4c61422eb772da.rb +0 -46
  631. data/lib/one_gadget/builds/libc-2.23-b078f2c07ab3751dbcbc3fbd2a11a8a162c35576.rb +0 -42
  632. data/lib/one_gadget/builds/libc-2.23-b2994712adbb4db7b768554149443ddee829cb91.rb +0 -46
  633. data/lib/one_gadget/builds/libc-2.23-b5381a457906d279073822a5ceb24c4bfef94ddb.rb +0 -49
  634. data/lib/one_gadget/builds/libc-2.23-b8aaf9d529588ee96e6e399ab8a15cbd58ab8b54.rb +0 -46
  635. data/lib/one_gadget/builds/libc-2.23-b978afd6ca2cf3f8768d6055581ece3c3e7d7b27.rb +0 -46
  636. data/lib/one_gadget/builds/libc-2.23-bde4e8b0230b1b474cd8a1ca6e9f81bb2b438914.rb +0 -46
  637. data/lib/one_gadget/builds/libc-2.23-c0a199289365088782dcaceab6a81721d0d8ae0c.rb +0 -46
  638. data/lib/one_gadget/builds/libc-2.23-c0cc47b9f732f8150eb2bbfb18d0d60a7b3564a9.rb +0 -46
  639. data/lib/one_gadget/builds/libc-2.23-c4fd86ec1eed57a09c79ce601f6c6e3796f574df.rb +0 -49
  640. data/lib/one_gadget/builds/libc-2.23-cbfa941a8eb7a11e4f90e81b66fcd5a820995d7c.rb +0 -38
  641. data/lib/one_gadget/builds/libc-2.23-d10743a8f3a9a7a2e9807b1af78026c0b5363f6b.rb +0 -46
  642. data/lib/one_gadget/builds/libc-2.23-d10fbfd9328f5ffaca50aa93562cb3bfb618fbcc.rb +0 -46
  643. data/lib/one_gadget/builds/libc-2.23-d1df77a9cc06ba60c213852b01bc24282e49696a.rb +0 -46
  644. data/lib/one_gadget/builds/libc-2.23-d26149b8dc15c0c3ea8a5316583757f69b39e037.rb +0 -29
  645. data/lib/one_gadget/builds/libc-2.23-d2be9dbf540a6ca8b559ddfbd17f47b53e84ba8d.rb +0 -46
  646. data/lib/one_gadget/builds/libc-2.23-d61f734abbd95e2ddeab19046141020d00aa2aaf.rb +0 -42
  647. data/lib/one_gadget/builds/libc-2.23-d67449e7e9672f074e72fd37ffa9335c6c483bc8.rb +0 -43
  648. data/lib/one_gadget/builds/libc-2.23-dcd02728e55c40d4a4b0d1482abe75cf2b853c2e.rb +0 -46
  649. data/lib/one_gadget/builds/libc-2.23-dd5192a769e33ed6ca68a6ab5740ff9e8ec678a7.rb +0 -46
  650. data/lib/one_gadget/builds/libc-2.23-e388b883ef50189a2eb5e6c7931c52e03761a7fd.rb +0 -46
  651. data/lib/one_gadget/builds/libc-2.23-e7b96675bca2ca2e2e746ebcb706d9236178564c.rb +0 -40
  652. data/lib/one_gadget/builds/libc-2.23-e7c57c7dc7a4d8ca964993f19fd8b0fc4f72b617.rb +0 -46
  653. data/lib/one_gadget/builds/libc-2.23-e8df4c3d58e99c87f9b22655e9180c7ac31cb44f.rb +0 -46
  654. data/lib/one_gadget/builds/libc-2.23-edceed30099baad51871c5fc277daf9b74dc726a.rb +0 -46
  655. data/lib/one_gadget/builds/libc-2.23-ee0b5a0f65e25f536a868d84e1d912403b56e742.rb +0 -46
  656. data/lib/one_gadget/builds/libc-2.23-ee525f6c9b018c094beedd17b87a4573d7ea7e2e.rb +0 -46
  657. data/lib/one_gadget/builds/libc-2.23-f0c2e03955a845c9a7f9c85228b12c9700d66c50.rb +0 -46
  658. data/lib/one_gadget/builds/libc-2.23-f202f01f10e845e14e7d8ca44cf5d9e4742fca6a.rb +0 -40
  659. data/lib/one_gadget/builds/libc-2.23-f2f2f2af4f3e8597cca1fdff1008a834c78de42b.rb +0 -46
  660. data/lib/one_gadget/builds/libc-2.23-f303ce47c562225a4f3475170333494965760a6a.rb +0 -46
  661. data/lib/one_gadget/builds/libc-2.23-f33f3937b8f458ffd96cf10a22deea1bd85ac61a.rb +0 -46
  662. data/lib/one_gadget/builds/libc-2.23-f4490657edfef482025fff60e85acd5928e0d05b.rb +0 -46
  663. data/lib/one_gadget/builds/libc-2.23-ffb3662a7bc5e136fa8f464fc14ec23efb8d1817.rb +0 -40
  664. data/lib/one_gadget/builds/libc-2.23.90-203feaf8a7e40cef8a75568a406a22fdeda94f8b.rb +0 -40
  665. data/lib/one_gadget/builds/libc-2.23.90-392b643118f919a1827477e978d9cea2b09a34fc.rb +0 -46
  666. data/lib/one_gadget/builds/libc-2.23.90-52e411aed4443fbbcb9706fffa2362e4a108f28f.rb +0 -46
  667. data/lib/one_gadget/builds/libc-2.23.90-604d873b711edeb971328656c4c17bbc15c7427f.rb +0 -46
  668. data/lib/one_gadget/builds/libc-2.23.90-63fbdf3e3928f6dc2bcac10e28aa233a625a3d27.rb +0 -46
  669. data/lib/one_gadget/builds/libc-2.23.90-7439c4311f0dd7307f78c1b5530f52a590230e45.rb +0 -46
  670. data/lib/one_gadget/builds/libc-2.23.90-b23fcdbc7bead3c59600e0a6acfe9220c42e1b93.rb +0 -46
  671. data/lib/one_gadget/builds/libc-2.23.90-c5238226a11b5538d56c713c97db1a36722e6322.rb +0 -40
  672. data/lib/one_gadget/builds/libc-2.23.90-e1b43c632d35649e9b128528994426e34ae40d1a.rb +0 -46
  673. data/lib/one_gadget/builds/libc-2.23.90-e9ab765fb32204de2215d6117dcbc1fb92f26b9a.rb +0 -40
  674. data/lib/one_gadget/builds/libc-2.23.90-ef3765f1e2595771cefa96291c647d0eff8a81e0.rb +0 -40
  675. data/lib/one_gadget/builds/libc-2.23.90-f149edaf4dee34b38f831bf0914af2ecf0a1a317.rb +0 -46
  676. data/lib/one_gadget/builds/libc-2.24-024385baa7aaf9c62ae336e896bcf245dda0fc01.rb +0 -46
  677. data/lib/one_gadget/builds/libc-2.24-04b6f2a9e244a36a9f107febf832bbadea9f252c.rb +0 -46
  678. data/lib/one_gadget/builds/libc-2.24-0b88546716e2f1924986596ee7cc9215df89c6f5.rb +0 -46
  679. data/lib/one_gadget/builds/libc-2.24-0c11fd6524ef7a7da877f940fba181ed746edb0a.rb +0 -46
  680. data/lib/one_gadget/builds/libc-2.24-0f523a27b7460f50befd3d281238c6f189c92d84.rb +0 -46
  681. data/lib/one_gadget/builds/libc-2.24-1c3ec3a011b1005cb1c2c32fc6dbc4e6e9cef4bb.rb +0 -45
  682. data/lib/one_gadget/builds/libc-2.24-1da8c8ac3c71c30040cf58b563ae48e39bbae86f.rb +0 -40
  683. data/lib/one_gadget/builds/libc-2.24-1ddd6fca9cd87c66e6a19df018f5992e9fa6453d.rb +0 -46
  684. data/lib/one_gadget/builds/libc-2.24-1f253610e390e5237eb7949212e08166fba3ca4b.rb +0 -46
  685. data/lib/one_gadget/builds/libc-2.24-1f7bdfb9a24714835cee6e6597ea7aa782821371.rb +0 -46
  686. data/lib/one_gadget/builds/libc-2.24-206b2bb216b6cdb6b1be565a6fcd29f3862db060.rb +0 -52
  687. data/lib/one_gadget/builds/libc-2.24-20cbb98b62f46ee16b182d1b357146577c40ebb7.rb +0 -40
  688. data/lib/one_gadget/builds/libc-2.24-236e52c7896f5403d8065cf3965fdb2d31d56891.rb +0 -46
  689. data/lib/one_gadget/builds/libc-2.24-24b1296687d36e24bd48b8c412157d94f074ecc2.rb +0 -40
  690. data/lib/one_gadget/builds/libc-2.24-253debb34a7d493c0b8e2d6db2079e3d680459f5.rb +0 -40
  691. data/lib/one_gadget/builds/libc-2.24-26e84118fee5788eb5d8dda66b7e7f029d2c7800.rb +0 -52
  692. data/lib/one_gadget/builds/libc-2.24-2ee9e1740da616757f2e6d5ba58576c0c7302fff.rb +0 -40
  693. data/lib/one_gadget/builds/libc-2.24-30acfe88fed30ad3f8cb88425b80ea96899655aa.rb +0 -46
  694. data/lib/one_gadget/builds/libc-2.24-33801a6f55c5c3cdf7d83590b433adcbab08a688.rb +0 -40
  695. data/lib/one_gadget/builds/libc-2.24-349119af9e223829ea24f6b7226bdff0182e73f2.rb +0 -52
  696. data/lib/one_gadget/builds/libc-2.24-35764bd71c58942e9131e3547b7c343098212d03.rb +0 -46
  697. data/lib/one_gadget/builds/libc-2.24-389260a6758c3f1dbc741c197e747341ed277cd2.rb +0 -46
  698. data/lib/one_gadget/builds/libc-2.24-3b24749bb184473f81819312e3d86903915eaf65.rb +0 -46
  699. data/lib/one_gadget/builds/libc-2.24-3ea4c67e60e49b8164b692166115bbf927e521db.rb +0 -45
  700. data/lib/one_gadget/builds/libc-2.24-3f89db5baa7e88162377fab6a1590f732a355401.rb +0 -45
  701. data/lib/one_gadget/builds/libc-2.24-3fce81d490804af9759c70bf197380bc05a584c2.rb +0 -46
  702. data/lib/one_gadget/builds/libc-2.24-43adbb1e7368c94fba1ba9020d8ef0808bff5bc4.rb +0 -40
  703. data/lib/one_gadget/builds/libc-2.24-43faee19af5e1d20163c6492862fca1a4146b668.rb +0 -40
  704. data/lib/one_gadget/builds/libc-2.24-45adab2b0ad8604e35eeea0b30d6ec1ad11642af.rb +0 -40
  705. data/lib/one_gadget/builds/libc-2.24-46bb6303e03d21ec9b79334370e1b39a51f883b1.rb +0 -46
  706. data/lib/one_gadget/builds/libc-2.24-497931f8d2346a6d0e300a65d8fc6106c6c88c15.rb +0 -46
  707. data/lib/one_gadget/builds/libc-2.24-4d0bb76f378375d584a373929f6d5b695f53db99.rb +0 -40
  708. data/lib/one_gadget/builds/libc-2.24-4dac034d41342a93593b3e18aa05f4b69c2909c9.rb +0 -45
  709. data/lib/one_gadget/builds/libc-2.24-4fa7401566d6b3e2c7ee5df3b4d85a01f85b595c.rb +0 -46
  710. data/lib/one_gadget/builds/libc-2.24-5284cbfbd543755c2fa4df64a20ccb14e7ded30c.rb +0 -46
  711. data/lib/one_gadget/builds/libc-2.24-53bab59259db20458dc7d753dd2950916f6e47de.rb +0 -46
  712. data/lib/one_gadget/builds/libc-2.24-568d20b7e0d08bc282fb42ae405c7054e4209ede.rb +0 -40
  713. data/lib/one_gadget/builds/libc-2.24-595aeaf311d354bbcd3f311e218f6b40fe711046.rb +0 -46
  714. data/lib/one_gadget/builds/libc-2.24-5a75868ead9dbb03eb4d668ff2918f341f949387.rb +0 -46
  715. data/lib/one_gadget/builds/libc-2.24-5b72576ff331e93852355123afecdec70fd247b5.rb +0 -52
  716. data/lib/one_gadget/builds/libc-2.24-6194e9b483a157d38ab633a5bf3c37f9ed6b7e04.rb +0 -40
  717. data/lib/one_gadget/builds/libc-2.24-6a5885d005a0e25074da79038453af3c1bbd16a1.rb +0 -40
  718. data/lib/one_gadget/builds/libc-2.24-6a6d4ead4f4d511091e34c8baebaab04b97913e0.rb +0 -46
  719. data/lib/one_gadget/builds/libc-2.24-6d3ffad6407f2ea71f9121d761426f3a917f4216.rb +0 -46
  720. data/lib/one_gadget/builds/libc-2.24-6dd40dc4bc5ee908b857c00c1b2a00c58ebc1596.rb +0 -45
  721. data/lib/one_gadget/builds/libc-2.24-756da9d194e16bccf2c342a12d8ea01e677fcba7.rb +0 -40
  722. data/lib/one_gadget/builds/libc-2.24-7a7fafb866f1680656f7343e9d38fa76986bcfff.rb +0 -45
  723. data/lib/one_gadget/builds/libc-2.24-7e0f1b3a8efe3adcf3080b20447ac4bd47aaf489.rb +0 -40
  724. data/lib/one_gadget/builds/libc-2.24-805005b60c0c3e63eb593a5041fc9f7803e3b87d.rb +0 -46
  725. data/lib/one_gadget/builds/libc-2.24-856e263a6c8431b34f1ab69b55abbe453a135c52.rb +0 -45
  726. data/lib/one_gadget/builds/libc-2.24-8a683c08dbc27e1ceab72d87cd00b5d6208f7620.rb +0 -40
  727. data/lib/one_gadget/builds/libc-2.24-8eb1e49d70f349433d3d4a712b4746c73481012d.rb +0 -46
  728. data/lib/one_gadget/builds/libc-2.24-91b0020fb992b67e3c368576943fde81e4ec7ec9.rb +0 -40
  729. data/lib/one_gadget/builds/libc-2.24-9378343c5442ef04933110045638b2daafa16098.rb +0 -46
  730. data/lib/one_gadget/builds/libc-2.24-976f2a94a6a1db73c935bce8db1e5a28a46d8535.rb +0 -46
  731. data/lib/one_gadget/builds/libc-2.24-980296526a2060e4e53dfa8ded76917c3f9b851c.rb +0 -46
  732. data/lib/one_gadget/builds/libc-2.24-9a006ea92b333aa035fdecc8dc0b28e1d04edd37.rb +0 -46
  733. data/lib/one_gadget/builds/libc-2.24-9ae48d5843f29af366655a00fb0636db91328abb.rb +0 -40
  734. data/lib/one_gadget/builds/libc-2.24-9b7db6636c9f2f03c9523b02db229741e2250550.rb +0 -40
  735. data/lib/one_gadget/builds/libc-2.24-9e638553dc7a08748d03c42455ecd6bb9bd8f8cd.rb +0 -46
  736. data/lib/one_gadget/builds/libc-2.24-a4c01d397b6584f7040ef266b16a5d4da0b7a087.rb +0 -52
  737. data/lib/one_gadget/builds/libc-2.24-a51ace667ccae6a8887837efb18259a906704bed.rb +0 -46
  738. data/lib/one_gadget/builds/libc-2.24-a822e789c3428254f309f81600b9e5ae551a3461.rb +0 -46
  739. data/lib/one_gadget/builds/libc-2.24-aad7dbe330f23ea00ca63daf793b766b51aceb5d.rb +0 -52
  740. data/lib/one_gadget/builds/libc-2.24-acd08eb60d44e32e85530f0537d46f8cd422403e.rb +0 -46
  741. data/lib/one_gadget/builds/libc-2.24-b81a06f0ac241c4aa8860602d9abcc903adbb675.rb +0 -46
  742. data/lib/one_gadget/builds/libc-2.24-b8a944084a03aec90d871ca8a5fac48801cc064d.rb +0 -46
  743. data/lib/one_gadget/builds/libc-2.24-b95a6603e6113924f82409ff65e6ed1514afd3db.rb +0 -40
  744. data/lib/one_gadget/builds/libc-2.24-bb0d156759d9bdfec06f5decd1c03785bcbc0ba1.rb +0 -46
  745. data/lib/one_gadget/builds/libc-2.24-bccffaa4c34e166b9c09e8802ce09989d1e8f46a.rb +0 -40
  746. data/lib/one_gadget/builds/libc-2.24-be6d412ecc4816c46eb49e750b02f714a9131c4e.rb +0 -46
  747. data/lib/one_gadget/builds/libc-2.24-c116abd24efe14f6dc2f98cef3d673934f6d66d0.rb +0 -42
  748. data/lib/one_gadget/builds/libc-2.24-c1fd7dc1c8a6915e5f7a7f24a5901a239d473f08.rb +0 -46
  749. data/lib/one_gadget/builds/libc-2.24-c451b072ff6aa62ba6e054c06e633fa297a3a7eb.rb +0 -40
  750. data/lib/one_gadget/builds/libc-2.24-c5a0679981d0258465ddba6b975c9340cbf20d22.rb +0 -40
  751. data/lib/one_gadget/builds/libc-2.24-c62f8c5ce9f5304f054922d39d0c0fa94d9e9531.rb +0 -46
  752. data/lib/one_gadget/builds/libc-2.24-c7d3ac73ddd0865d350bd570771cf3a964a1ddbd.rb +0 -46
  753. data/lib/one_gadget/builds/libc-2.24-c9133ae8d86b5d469422e0c51a19e7910ebeae41.rb +0 -40
  754. data/lib/one_gadget/builds/libc-2.24-cc7e13208dfc283e75a9491f8507429f647eac05.rb +0 -40
  755. data/lib/one_gadget/builds/libc-2.24-d2a8a8ac188a6c3bafa4813a3d2789240ee49489.rb +0 -46
  756. data/lib/one_gadget/builds/libc-2.24-d67af93d54c07bbe5d252ef6f176ec77b866c786.rb +0 -46
  757. data/lib/one_gadget/builds/libc-2.24-d8ba284042773fed1189bcf927960999f4c1de55.rb +0 -45
  758. data/lib/one_gadget/builds/libc-2.24-da518391ad926bb7535f2095df0be265180eeed5.rb +0 -40
  759. data/lib/one_gadget/builds/libc-2.24-dab413a7e3b33dde527af308a09a55ade6b41e84.rb +0 -40
  760. data/lib/one_gadget/builds/libc-2.24-dc799b9197929f88cebc6aa72e3be388cacfb1df.rb +0 -46
  761. data/lib/one_gadget/builds/libc-2.24-deefae132c5a39ba892bc189edd91f73c1ea1f14.rb +0 -40
  762. data/lib/one_gadget/builds/libc-2.24-dff06414a29b97b865ef938e06a7751fe8b1b2d0.rb +0 -46
  763. data/lib/one_gadget/builds/libc-2.24-e0206d9b8d7ad3abc39a94dbc37bb3b42c9f1345.rb +0 -46
  764. data/lib/one_gadget/builds/libc-2.24-e5dc6c0caa39828fa10ed37e642723a581acdb6d.rb +0 -40
  765. data/lib/one_gadget/builds/libc-2.24-e7de387eec0b57da248cc4e74edefcfcb55bd204.rb +0 -45
  766. data/lib/one_gadget/builds/libc-2.24-eaadebbded05e24bc9853c39b2241436f96d41ef.rb +0 -46
  767. data/lib/one_gadget/builds/libc-2.24-eb6b0b1e1c5cf4579e66eadb083885884dc0b648.rb +0 -40
  768. data/lib/one_gadget/builds/libc-2.24-f5ffc1b2b1282d79097f4ce84b519d326dce1247.rb +0 -40
  769. data/lib/one_gadget/builds/libc-2.24-fb431a54ddae802fd1c59850cbbc408a05d3deb8.rb +0 -46
  770. data/lib/one_gadget/builds/libc-2.24-fc121fe8b1eaa6ea0babbc3b8ce6e12adfcc3719.rb +0 -45
  771. data/lib/one_gadget/builds/libc-2.24-fe976940471b3f683eeebb268f095b7ff1c898c1.rb +0 -46
  772. data/lib/one_gadget/builds/libc-2.25-58c735bc7b19b0aeb395cce70cf63bd62ac75e4a.rb +0 -52
  773. data/lib/one_gadget/builds/libc-2.25-912fc00c0da67045111928bd5c8a350e5be18c41.rb +0 -52
  774. data/lib/one_gadget/builds/libc-2.25-e5eb6347f0629b37bf698200022a683b7efb10ed.rb +0 -46
  775. data/lib/one_gadget/builds/libc-2.25-eae5038c2b9ae67d9eda345aa9fbe0a7185ab436.rb +0 -52
  776. data/lib/one_gadget/builds/libc-2.26-1c39b3b3faa2a2cbb0fa0b6845b29332562262d3.rb +0 -52
  777. data/lib/one_gadget/builds/libc-2.26-3b850bf60461afbdd83317b248b3f687e52ff18e.rb +0 -52
  778. data/lib/one_gadget/builds/libc-2.26-499b381aaf00ce85ee5d4a12770ea369b30d2a41.rb +0 -52
  779. data/lib/one_gadget/builds/libc-2.26-4cc84abfe1fd26a485fc2b1b954c281ce9d358fd.rb +0 -52
  780. data/lib/one_gadget/builds/libc-2.26-4ea852c9d6a5084b8b58509b3b3d37d3d8cddb90.rb +0 -52
  781. data/lib/one_gadget/builds/libc-2.26-6d2b609f0c8e7b338f767b08c5ac712fac809d31.rb +0 -64
  782. data/lib/one_gadget/builds/libc-2.26-d4dd444f86cfc66c97c5e3eecb69fc5b86ea6539.rb +0 -52
  783. data/lib/one_gadget/builds/libc-2.26-fb587bc4429e7d1b0de31a3b9ee8ae78ee797eb0.rb +0 -52
  784. data/lib/one_gadget/builds/libc-2.27-06a8004be6e10c4aeabbe0db74423ace392a2d6b.rb +0 -47
  785. data/lib/one_gadget/builds/libc-2.27-0e188ec5f09c187a7a92784d4b97aa251b15a93c.rb +0 -47
  786. data/lib/one_gadget/builds/libc-2.27-14cd15d2eb0bc25c89045873cf807f7533e4788d.rb +0 -47
  787. data/lib/one_gadget/builds/libc-2.27-2d1c5e0b85cb06ff47fa6fa088ec22cb6e06074e.rb +0 -47
  788. data/lib/one_gadget/builds/libc-2.27-4b06dfe2c46f5e537b3d0a310ab0bda11bcbd681.rb +0 -32
  789. data/lib/one_gadget/builds/libc-2.27-71f0f3074a929e519e85f6a5c03a7d1fd976bfe4.rb +0 -47
  790. data/lib/one_gadget/builds/libc-2.27-73cd526a553b3b47c6dd0d6dc62175263cdc646e.rb +0 -41
  791. data/lib/one_gadget/builds/libc-2.27-9dd0bb57f81671704475d1e5163405f7b4d4b454.rb +0 -41
  792. data/lib/one_gadget/builds/libc-2.27-a5e88eb34369fb48113b9eda7a92e07b372f3cb7.rb +0 -41
  793. data/lib/one_gadget/builds/libc-2.27-afdabd83c53f0fc60a059c3305c4f3b57198e51b.rb +0 -47
  794. data/lib/one_gadget/builds/libc-2.27-ba63c4a5f5c2b51e6e7e5df94017dc98b20e397a.rb +0 -47
  795. data/lib/one_gadget/builds/libc-2.27-cc6dd208d3af4bc505f599a90ef8af52f16116e4.rb +0 -41
  796. data/lib/one_gadget/builds/libc-2.27-ce450eb01a5e5acc7ce7b8c2633b02cc1093339e.rb +0 -47
  797. data/lib/one_gadget/builds/libc-2.27-cf1599aa8b3cb35f79dcaea7a8b48704ecf42a19.rb +0 -47
  798. data/lib/one_gadget/builds/libc-2.27-d1237c55f6778f53b369cf22ff81979b2fe340bb.rb +0 -41
  799. data/lib/one_gadget/builds/libc-2.27-d3cf764b2f97ac3efe366ddd07ad902fb6928fd7.rb +0 -47
  800. data/lib/one_gadget/builds/libc-2.27-d831493b564a8632d1da5cc0fe44af45713cfeb6.rb +0 -47
  801. data/lib/one_gadget/builds/libc-2.27-f4929d2a8af4629477103af6f1cfb3bebce80883.rb +0 -47
  802. data/lib/one_gadget/builds/libc-2.28-26b3c1a40c8a0bd026975a262774bf52aec55107.rb +0 -44
  803. data/lib/one_gadget/builds/libc-2.28-44f5a3efb0e5733fa9d97e690cb36cd4c682bcdb.rb +0 -41
  804. data/lib/one_gadget/builds/libc-2.28-5784a31a1c26f6d2157e585205ebb63dd19ff90f.rb +0 -41
  805. data/lib/one_gadget/builds/libc-2.28-5b157f49586a3ca84d55837f97ff466767dd3445.rb +0 -59
  806. data/lib/one_gadget/builds/libc-2.28-65ed813688b116fdce9e866ad2fef2e734167337.rb +0 -50
  807. data/lib/one_gadget/builds/libc-2.28-6ee9454b96efa9e343f9e8105f2fa4529265ea05.rb +0 -50
  808. data/lib/one_gadget/builds/libc-2.29-2195ff86b0ddead43a7c08f46b95b0887cdb96fa.rb +0 -32
  809. data/lib/one_gadget/builds/libc-2.29-5b7203920d3d786ac40af8e0d5104683335f11be.rb +0 -74
  810. data/lib/one_gadget/builds/libc-2.29-6d8abbab5b004d65bfdf909fd4982103499cd1c9.rb +0 -23
  811. data/lib/one_gadget/builds/libc-2.29-85d5020664b11fd2708859275de41d5ab9d104cf.rb +0 -74
  812. data/lib/one_gadget/builds/libc-2.29-9a1100ebab15d22bbc31836b0656d2fa5a6a1252.rb +0 -23
  813. data/lib/one_gadget/builds/libc-2.29-a8af6c81cb28a37bf3a546970bf64224402f8bd4.rb +0 -74
  814. data/lib/one_gadget/builds/libc-2.29-c19c88c33b60742ca906e0f9f96fe31b8b79ea9c.rb +0 -74
  815. data/lib/one_gadget/builds/libc-2.29-d389232dd725501db38f08e2aca0b44ab3af314f.rb +0 -23
  816. data/lib/one_gadget/builds/libc-2.29-d561ec515222887a1e004555981169199d841024.rb +0 -83
  817. data/lib/one_gadget/builds/libc-2.30-00854a16b9b4b73893627ccb730d97907837e320.rb +0 -26
  818. data/lib/one_gadget/builds/libc-2.30-135c0b4a030ec9b6306ed6b621e1e0dedfd614a3.rb +0 -23
  819. data/lib/one_gadget/builds/libc-2.30-2155f455ad56bd871c8225bcca85ee25c1c197c4.rb +0 -107
  820. data/lib/one_gadget/builds/libc-2.30-33d1f350f13728651d74dd2a56bad1e4e4648f5e.rb +0 -74
  821. data/lib/one_gadget/builds/libc-2.30-3f72ae987c135c35f2e721c61991ec46df8816ab.rb +0 -32
  822. data/lib/one_gadget/builds/libc-2.30-4ab6143b59defc12c3d50d176c78b4e6e5a2c179.rb +0 -23
  823. data/lib/one_gadget/builds/libc-2.30-71373fd43ed6a83e0aab983c3a971e32d459e15f.rb +0 -38
  824. data/lib/one_gadget/builds/libc-2.30-75e3e2d9596aae251330ae7ef3f91a847fc62641.rb +0 -38
  825. data/lib/one_gadget/builds/libc-2.30-7a1e2ae26cef50584af2c60a5ad3a7ae3e9b1446.rb +0 -74
  826. data/lib/one_gadget/builds/libc-2.30-884362aa891ab565e4cf904cd60be984a7941acd.rb +0 -26
  827. data/lib/one_gadget/builds/libc-2.30-93abe093a13b9b10f83b5e6de4a63a0d29175c89.rb +0 -32
  828. data/lib/one_gadget/builds/libc-2.30-bef538440d5b4b0ac6b4575acb3aac4a65316061.rb +0 -26
  829. data/lib/one_gadget/builds/libc-2.30-c0a4471ee8f24f2ecc0ad1ccbd4633fa6fa36654.rb +0 -26
  830. data/lib/one_gadget/builds/libc-2.30-c60a7605ae87b9b40426e3123b12a91bfe2036f3.rb +0 -26
  831. data/lib/one_gadget/builds/libc-2.30-c841931c41e7affad89dfe70a45f01afafa9a37a.rb +0 -32
  832. data/lib/one_gadget/builds/libc-2.30-cbe9cff3c43b979739af1681b61a3d585725577b.rb +0 -107
  833. data/lib/one_gadget/builds/libc-2.30-cd779a06a5df37cdad8dfcfa12cb2c8db36f62f4.rb +0 -26
  834. data/lib/one_gadget/builds/libc-2.30-dc43d2c2d727158000c9bef6d47e17722d41ec2d.rb +0 -26
  835. data/lib/one_gadget/builds/libc-2.30-e3e238714a7998a958651faa0a5e97fafa229ec3.rb +0 -26
  836. data/lib/one_gadget/builds/libc-2.30-f07144cc3d0ac50415f3a2e061be6da672c914ba.rb +0 -74
  837. data/lib/one_gadget/builds/libc-2.30-f44469d65b4efd2e5951513ed7cbf773657f1283.rb +0 -74
  838. data/lib/one_gadget/builds/libc-2.31-012f3f1e614cb9c829b8d1590d228cc6a9506a03.rb +0 -26
  839. data/lib/one_gadget/builds/libc-2.31-05dd8f45f3f82869e5ca8cb214475816e41f469a.rb +0 -26
  840. data/lib/one_gadget/builds/libc-2.31-099b9225bcb0d019d9d60884be583eb31bb5f44e.rb +0 -122
  841. data/lib/one_gadget/builds/libc-2.31-0d1b3211736c4ca528a32ea0d565d41a2ede3b58.rb +0 -80
  842. data/lib/one_gadget/builds/libc-2.31-0df979b8b244294bbc29bbe8f7f6dd6bf89c6820.rb +0 -26
  843. data/lib/one_gadget/builds/libc-2.31-12e412d1938ec3ff79751f0e85f31bc52f7e3722.rb +0 -80
  844. data/lib/one_gadget/builds/libc-2.31-2886817dc06a87bdeef50544c0d6c12de13a8148.rb +0 -80
  845. data/lib/one_gadget/builds/libc-2.31-4d4d0853eb075b8b0cfaee0aee7cdf4254a3e877.rb +0 -80
  846. data/lib/one_gadget/builds/libc-2.31-58a58f2fcdafddacb4a08439ea2ee163ff645d1d.rb +0 -26
  847. data/lib/one_gadget/builds/libc-2.31-634252e0c5f8b03957a2e529719d4101699a894a.rb +0 -122
  848. data/lib/one_gadget/builds/libc-2.31-6b143503744b9d6c22e479941488d6a9e6e3f1c5.rb +0 -26
  849. data/lib/one_gadget/builds/libc-2.31-6c6ea8a57519f219a10c9d6a6d199dd813680226.rb +0 -26
  850. data/lib/one_gadget/builds/libc-2.31-6dbad1709854c527793f6401666e45a791b7c793.rb +0 -80
  851. data/lib/one_gadget/builds/libc-2.31-6fe07009bc57e6917030d052370d8bed414dd7c0.rb +0 -32
  852. data/lib/one_gadget/builds/libc-2.31-78702aff0796336ccdd432310ba6f84c728c9b3c.rb +0 -26
  853. data/lib/one_gadget/builds/libc-2.31-85d7bb2dad0f8172d1c02c0311a00c4695933beb.rb +0 -26
  854. data/lib/one_gadget/builds/libc-2.31-8614995a8f0152ad4b1b45e28070588546ca7ac8.rb +0 -26
  855. data/lib/one_gadget/builds/libc-2.31-8629fa2eea681f639a0c18305d4548850dde3450.rb +0 -26
  856. data/lib/one_gadget/builds/libc-2.31-94761ae31db09ce9140ca55cb6986a5ea9110abc.rb +0 -80
  857. data/lib/one_gadget/builds/libc-2.31-a9053cb60c51ead85c68c941ca4d02f9381844f9.rb +0 -26
  858. data/lib/one_gadget/builds/libc-2.31-b61d34c10e608722a90d339bd9a7ff28b18cd501.rb +0 -23
  859. data/lib/one_gadget/builds/libc-2.31-c9d56de82ddd00d822d6100034f3075ef1709cd2.rb +0 -122
  860. data/lib/one_gadget/builds/libc-2.31-cdaf4c7a78acdea7ede78ea0240a3d8d5833110f.rb +0 -26
  861. data/lib/one_gadget/builds/libc-2.31-e67e80e70619717709e3180e552a11a285036a54.rb +0 -80
  862. data/lib/one_gadget/builds/libc-2.31-eb3c5cf73a0a6b7f2b3895a56dbc443806700971.rb +0 -80
  863. data/lib/one_gadget/builds/libc-2.31-f3aa1ef59e51e64ff8438f46d225e4ae256c1b03.rb +0 -26
  864. data/lib/one_gadget/builds/libc-2.31-f3ff3fda80b817c464a56eed59ff09dc864eaeb0.rb +0 -32
  865. data/lib/one_gadget/builds/libc-2.31-fb7626dd8b8a50f7685920487e992528834f6775.rb +0 -26
  866. data/lib/one_gadget/builds/libc-2.32-0e5c8d8738927eb715941480b3726fa764cc50ed.rb +0 -29
  867. data/lib/one_gadget/builds/libc-2.32-1e3fb06b8c86b5e282e3e11bd207d399fb4952e2.rb +0 -122
  868. data/lib/one_gadget/builds/libc-2.32-7ec3e74da842ca3c6a9ba20b21303ce1bc7a45af.rb +0 -122
  869. data/lib/one_gadget/builds/libc-2.32-7fba7abef941659c229c2636aa0905c28652ee3f.rb +0 -80
  870. data/lib/one_gadget/builds/libc-2.32-82f6b69e698bb579baefb35a3fb0346632fa2c4d.rb +0 -122
  871. data/lib/one_gadget/builds/libc-2.32-87f011a7e4cc3fc60a54d0d3dd690e7438decc8d.rb +0 -80
  872. data/lib/one_gadget/builds/libc-2.32-92199dd358616182fb49c992330fb05e42eaa423.rb +0 -29
  873. data/lib/one_gadget/builds/libc-2.32-9d60d4bd625a7fe2439db781a5fc91bb69684903.rb +0 -29
  874. data/lib/one_gadget/builds/libc-2.32-a75b0c335a4987f12d17d3b4adb8dc430432b082.rb +0 -29
  875. data/lib/one_gadget/builds/libc-2.32-ac287babd169c70013b752da2713dfb96d9a503f.rb +0 -122
  876. data/lib/one_gadget/builds/libc-2.32-aebd80372a00285a5c486ef72917f935eb8f91be.rb +0 -29
  877. data/lib/one_gadget/builds/libc-2.32-bd0e9dc4e27475b5ab7dc59141daaa2626b8a760.rb +0 -29
  878. data/lib/one_gadget/builds/libc-2.32-bddeb6374fc99723cef3b3baafe48ac78fce13b4.rb +0 -29
  879. data/lib/one_gadget/builds/libc-2.32-cb91dd613d38b806a16bed1b364c084ad63d1a1f.rb +0 -80
  880. data/lib/one_gadget/builds/libc-2.32-d3f1cf7f55b985fd6d989880ec3599724fe40a26.rb +0 -29
  881. data/lib/one_gadget/builds/libc-2.32-e13b24f94b260dd6394bdb2433d2a78e37078d5c.rb +0 -80
  882. data/lib/one_gadget/builds/libc-2.32-e1596c76d0d93d8a36378ba976f034f140618d59.rb +0 -80
  883. data/lib/one_gadget/builds/libc-2.32-f45b67ab28af1581cba8e4713e0fd3b2bc004b2e.rb +0 -80
  884. data/lib/one_gadget/builds/libc-2.33-18edf6b683a2f9768cc0ee9cc64ae6fbb545deb2.rb +0 -122
  885. data/lib/one_gadget/builds/libc-2.33-1c943bf313b5b4546e47b830e70de6bbd6a0ba57.rb +0 -29
  886. data/lib/one_gadget/builds/libc-2.33-2b48299781548c9bc452eac6df39902547c884ed.rb +0 -122
  887. data/lib/one_gadget/builds/libc-2.33-37169e68b33cad12e272bb4896d71fd0d4fd98bb.rb +0 -80
  888. data/lib/one_gadget/builds/libc-2.33-54a6e404e7dc1de7c1434a00b7b1ad325b81f22a.rb +0 -80
  889. data/lib/one_gadget/builds/libc-2.33-7983d313db4a441a3762c8861ca405aa0331c0c8.rb +0 -80
  890. data/lib/one_gadget/builds/libc-2.33-8fdc2b2c65f3d782e52c01b546399eee8aa466dc.rb +0 -29
  891. data/lib/one_gadget/builds/libc-2.33-9143da129b44b931a1c180e2b103e993dd2474fd.rb +0 -29
  892. data/lib/one_gadget/builds/libc-2.33-97c8d90bd86bc698d156630e8803de433a640090.rb +0 -122
  893. data/lib/one_gadget/builds/libc-2.33-9bf4c513db255ab7248cef9f0f96b4403df29852.rb +0 -80
  894. data/lib/one_gadget/builds/libc-2.33-9e592d3efa165bc2bab8b40426370bd50cb0b027.rb +0 -80
  895. data/lib/one_gadget/builds/libc-2.33-abf3b2a9815c0cd6e4280cd99474d34102804eb2.rb +0 -80
  896. data/lib/one_gadget/builds/libc-2.33-b046eecd056a0c30995703f6cfca7a8e3a9ef5fa.rb +0 -80
  897. data/lib/one_gadget/builds/libc-2.33-b2262bfa6f1bffd1e9ddc845276dfaebb7c8f0b9.rb +0 -29
  898. data/lib/one_gadget/builds/libc-2.33-f462ab2b79c7f29fb866da6e087e45261570a09c.rb +0 -29
  899. data/lib/one_gadget/builds/libc-2.33-f4af69206091c7f14a941f2dd77a79a7682a1184.rb +0 -29
  900. data/lib/one_gadget/builds/libc-2.34-140609514178a4bb96a3cd44ffdfede398a77610.rb +0 -29
  901. data/lib/one_gadget/builds/libc-2.34-25594d4b6cbecda86ec968fa940c6c09937db70f.rb +0 -83
  902. data/lib/one_gadget/builds/libc-2.34-387920279e1c7892042ff27d76315d55e4651db9.rb +0 -29
  903. data/lib/one_gadget/builds/libc-2.34-7e46fbc4d85f5df8b6f18630787ad281786a3512.rb +0 -29
  904. data/lib/one_gadget/builds/libc-2.34-8d631c824a37b236d1dc9686b224a573fd6048b4.rb +0 -29
  905. data/lib/one_gadget/builds/libc-2.34-b8037b6260865346802321dd2256b8ad1d857e63.rb +0 -119
  906. data/lib/one_gadget/builds/libc-2.34-ba4777827fe1fb729ca35acd99c8013936172a0d.rb +0 -83
  907. data/lib/one_gadget/builds/libc-2.34-f0fc29165cbe6088c0e1adf03b0048fbecbc003a.rb +0 -119
  908. data/lib/one_gadget/builds/libc-2.35-89c3cb85f9e55046776471fed05ec441581d1969.rb +0 -104
  909. data/lib/one_gadget/builds/libc-2.35-ab265082cac9486923c709d48ee5dde080e243ff.rb +0 -68
  910. data/lib/one_gadget/builds/libc-2.35-c376d41cff4473142a97ac1ff1eab433859dc3d4.rb +0 -26
  911. data/lib/one_gadget/builds/libc-2.35-dfca8b65dd2d2ca67f70dc7a556a6cfa8ba96ed8.rb +0 -26
  912. data/lib/one_gadget/fetcher.rb +0 -58
@@ -1,17 +1,34 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'one_gadget/abi'
4
+ require 'one_gadget/emulators/conditional'
3
5
  require 'one_gadget/emulators/lambda'
6
+ require 'one_gadget/emulators/register_file'
7
+ require 'one_gadget/emulators/safe_calls'
4
8
  require 'one_gadget/error'
5
9
 
6
10
  module OneGadget
7
11
  # Instruction emulator to solve the constraint of gadgets.
8
12
  module Emulators
9
- # Base class of a processor.
13
+ # Base of the per-architecture instruction emulators, used to symbolically
14
+ # execute a candidate and solve its constraints. A subclass implements the
15
+ # arch's supported instructions, calling convention and stack model; the
16
+ # shared branch/compare machinery comes from {Conditional}.
17
+ #
18
+ # To add an architecture, see +docs/adding-an-architecture.md+.
10
19
  class Processor
11
- attr_reader :registers # @return [Hash{String => OneGadget::Emulators::Lambda}] The current registers' state.
12
- attr_reader :sp_based_stack # @return [Hash{Integer => OneGadget::Emulators::Lambda}] Stack content based on sp.
20
+ include Conditional
21
+
22
+ attr_reader :registers # @return [RegisterFile] The current registers' state.
13
23
  attr_reader :sp # @return [String] Stack pointer.
14
24
  attr_reader :pc # @return [String] Program counter.
25
+ attr_reader :bp # @return [String, nil] Frame pointer, or nil when this arch tracks none.
26
+
27
+ # @return [Hash{Integer => OneGadget::Emulators::Lambda}] Memory written through +sp+.
28
+ def sp_based_stack = get_corresponding_stack(sp)
29
+
30
+ # @return [Hash{Integer => Lambda}, nil] Memory written through {#bp}, or nil when the arch has none.
31
+ def bp_based_stack = bp && get_corresponding_stack(bp)
15
32
 
16
33
  # Instantiate a {Processor} object.
17
34
  # @param [Array<String>] registers
@@ -19,15 +36,51 @@ module OneGadget
19
36
  # @param [String] sp
20
37
  # The stack register.
21
38
  def initialize(registers, sp)
22
- @registers = registers.map { |reg| [reg, to_lambda(reg)] }.to_h
39
+ @registers = RegisterFile.build(registers, OneGadget::ABI::NARROW_VIEWS.fetch(arch_name, {})) do |reg|
40
+ to_lambda(reg)
41
+ end
23
42
  @sp = sp
24
43
  @constraints = []
25
- @sp_based_stack = Hash.new do |h, k|
26
- h[k] = OneGadget::Emulators::Lambda.new(sp).tap do |lmda|
27
- lmda.immi = k
28
- lmda.deref!
29
- end
30
- end
44
+ @deferred_reads = [] # pointer args of safe calls, resolved once emulation ends
45
+ @closed_fds = [] # where each descriptor closed before the terminal call comes from
46
+ @flags = nil # last compare, for a following conditional branch
47
+ @pending = nil # a conditional branch awaiting one-line-ahead resolution
48
+ end
49
+
50
+ # Enable frame-pointer stack tracking with +bp+ as the frame register, so a
51
+ # gadget staging data at +[bp+imm]+ (e.g. an argv array off the frame
52
+ # pointer) is recovered instead of collapsing to a bare +writable:+. A nil
53
+ # +bp+ leaves the arch +sp+-only. Call from the arch initializer after +super+.
54
+ # @return [void]
55
+ def setup_frame_pointer(bp)
56
+ @bp = bp
57
+ end
58
+
59
+ # Function names whose call ends a gadget: the real +exec*+ entry points.
60
+ # Deliberately excludes the +posix_spawn+ setup helpers
61
+ # (+posix_spawnattr_*+, +posix_spawn_file_actions_*+), which merely share the
62
+ # +posix_spawn+ prefix.
63
+ # @example matches +posix_spawn+, +execve+, +execveat+, +execlp+; not +posix_spawnattr_init+
64
+ TERMINAL_CALL_RE = /\A(?:posix_spawnp?|exec(?:ve|l|v)[a-z]*)\z/
65
+
66
+ # Whether +addr+ calls a terminal +exec*+ entry point (see
67
+ # {#reach_terminal_call}). Matches the resolved symbol name exactly so a
68
+ # setup helper isn't mistaken for the call it precedes.
69
+ # @param [String] addr The call target, e.g. +"10c7d0 <posix_spawn@@GLIBC_2.15>"+.
70
+ # @return [Boolean]
71
+ def terminal_call?(addr)
72
+ name = addr[/<([^@>]+)/, 1]
73
+ !name.nil? && TERMINAL_CALL_RE.match?(name)
74
+ end
75
+
76
+ # Record a reached terminal +exec*+ call as the gadget's effect and stop
77
+ # emulating: it is the gadget's goal, and any following instruction would
78
+ # clobber the argument registers that {#resolve} reads to describe it.
79
+ # @param [String] addr The call target.
80
+ # @return [Symbol] +:fail+, the sentinel {#process!} maps to "stop".
81
+ def reach_terminal_call(addr)
82
+ registers[pc] = addr
83
+ :fail
31
84
  end
32
85
 
33
86
  # Parse one command into instruction and arguments.
@@ -35,10 +88,41 @@ module OneGadget
35
88
  # @return [(Instruction, Array<String>)]
36
89
  # The parsing result.
37
90
  def parse(cmd)
38
- inst = instructions.find { |i| i.match?(cmd) }
39
- raise Error::UnsupportedInstructionError, "Not implemented instruction in #{cmd}" if inst.nil?
91
+ self.class.line_memo(:parse)[cmd] ||= begin
92
+ list, index = self.class.instruction_table { instructions }
93
+ mnem = cmd[/\A[0-9a-f]+:\s*(\S+)/, 1] || cmd[/\A\s*(\S+)/, 1]
94
+ inst = index[mnem]
95
+ # Fall back to the original scan for any mnemonic that isn't a bare word.
96
+ inst ||= list.find { |i| i.match?(cmd) }
97
+ raise Error::UnsupportedInstructionError, "Not implemented instruction in #{cmd}" if inst.nil?
98
+
99
+ [inst, inst.fetch_args(cmd)]
100
+ end
101
+ end
102
+
103
+ class << self
104
+ # What a line always reads as, remembered per architecture and +kind+ of
105
+ # reading: a candidate is emulated once for every window it yields, so the
106
+ # same line is read thousands of times, and nothing about how it reads
107
+ # depends on the state the emulator holds.
108
+ # @param [Symbol] kind
109
+ # @return [Hash]
110
+ def line_memo(kind)
111
+ (@line_memo ||= Hash.new { |memo, k| memo[k] = {} })[kind]
112
+ end
40
113
 
41
- [inst, inst.fetch_args(cmd)]
114
+ # The architecture's supported instructions, and the same set indexed by
115
+ # mnemonic, built on first use and shared by every emulator of that
116
+ # architecture: the set is fixed, while an emulator is made for each of the
117
+ # thousands of windows a candidate yields.
118
+ # @yieldreturn [Array<Instruction>] The table, asked for only on first use.
119
+ # @return [(Array<Instruction>, Hash{String => Instruction})]
120
+ def instruction_table
121
+ @instruction_table ||= begin
122
+ list = yield
123
+ [list, list.each_with_object({}) { |i, h| h[i.inst] ||= i }]
124
+ end
125
+ end
42
126
  end
43
127
 
44
128
  # Process one command, without raising any exceptions.
@@ -48,10 +132,20 @@ module OneGadget
48
132
  def process(cmd)
49
133
  process!(cmd)
50
134
  # rescue OneGadget::Error::UnsupportedError => e; p e # for debugging
135
+ rescue OneGadget::Error::UnsupportedInstructionError
136
+ @refused_line = cmd
137
+ false
51
138
  rescue OneGadget::Error::Error
52
139
  false
53
140
  end
54
141
 
142
+ # The line this emulator could not run at all: an instruction outside
143
+ # {#instructions}. Only what {#parse} reads decides that -- the mnemonic and
144
+ # the operands, never the state the emulator holds -- so the same line stops
145
+ # every emulation that reaches it.
146
+ # @return [String, nil]
147
+ attr_reader :refused_line
148
+
55
149
  # Method need to be implemented in inheritors.
56
150
  #
57
151
  # Process one command.
@@ -78,34 +172,184 @@ module OneGadget
78
172
  def argument(_idx); raise NotImplementedError
79
173
  end
80
174
 
175
+ # Marks a register holding whatever a call returned or left behind; see
176
+ # {#clobber_caller_saved}.
177
+ CLOBBERED = '$clobbered'
178
+
179
+ # Constraint types whose payload is an address {Lambda} asserting the target
180
+ # is mapped -- +:writable+ (a store target) and +:readable+ (an unconditional
181
+ # dereference, see {#finalize_deferred_reads}). Both are keyed, offset-
182
+ # normalised, and imply non-NULL identically; they differ only in how they
183
+ # render (see {#render_constraint}). The remaining type, +:raw+, carries a
184
+ # ready-made constraint string that keys on itself, and +:cmp+ a comparison
185
+ # recorded as its +[lhs, operator, rhs]+ parts (see {Conditional}), so it can
186
+ # be inspected rather than re-parsed from the rendered text.
187
+ ADDRESS_TYPES = %i[writable readable].freeze
188
+
189
+ # {SafeCalls} requirements naming what a callee does with a pointer argument,
190
+ # each recorded as something the caller must arrange (see {#record_pointer}),
191
+ # as opposed to a precondition read off the value as it stands.
192
+ POINTER_REQUIREMENTS = %i[writable deref nullable_deref null].freeze
193
+
194
+ # The {POINTER_REQUIREMENTS} a NULL argument already satisfies: both ask for
195
+ # a pointer the callee will leave alone, and NULL is how that is asked for.
196
+ NULLABLE_REQUIREMENTS = %i[nullable_deref null].freeze
197
+
198
+ # @return [Array<String>] Where each descriptor this candidate closes is read
199
+ # from, in the order they are closed, without repeats.
200
+ def closed_fds
201
+ @closed_fds.uniq
202
+ end
203
+
81
204
  # @return [Array<String>]
82
205
  # Extra constraints found during execution.
83
206
  def constraints
207
+ finalize_deferred_reads
84
208
  return [] if @constraints.empty?
85
209
 
86
- # we have these types:
87
- # * :writable
88
- # * :raw
89
- cons = @constraints.uniq do |type, obj|
90
- next obj unless type == :writable
210
+ # An address constraint is keyed by its base register (deref-0) or full
211
+ # expression (compound); several through one base (e.g. stores at reg+0x0
212
+ # and reg+0x8) impose the same requirement, so keep just the smallest
213
+ # offset (sort ascending, then uniq keeps that first).
214
+ cons = @constraints.sort_by { |type, obj| address_deref0?(type, obj) ? obj.immi : 0 }
215
+ .uniq { |type, obj| constraint_key(type, obj) }
216
+ cons = drop_restated_null(drop_implied_nonzero(cons))
217
+ cons.map { |type, obj| render_constraint(type, obj) }.sort
218
+ end
219
+
220
+ # Whether +(type, obj)+ is an address constraint on a bare (deref-0) target,
221
+ # i.e. one carrying a base register and offset to normalise.
222
+ def address_deref0?(type, obj)
223
+ ADDRESS_TYPES.include?(type) && obj.deref_count.zero?
224
+ end
225
+
226
+ # De-duplication key: an address constraint collapses per (type, base) so
227
+ # constraints of different types on the same register stay distinct; a raw
228
+ # constraint keys on its own text.
229
+ def constraint_key(type, obj)
230
+ return obj unless ADDRESS_TYPES.include?(type)
91
231
 
92
- obj.deref_count.zero? ? obj.obj.to_s : obj.to_s
232
+ [type, obj.deref_count.zero? ? obj.obj.to_s : obj.to_s]
233
+ end
234
+
235
+ # Render a constraint to its output string.
236
+ def render_constraint(type, obj)
237
+ case type
238
+ when :writable then "writable: #{obj}"
239
+ when :readable then "readable: #{obj}"
240
+ when :cmp then obj.join(' ')
241
+ else obj
93
242
  end
94
- cons.map { |type, obj| type == :writable ? "writable: #{obj}" : obj }.sort
95
243
  end
96
244
 
97
- # Method need to be implemented in inheritors.
245
+ # Drop a "<reg> != 0x0" branch constraint that another constraint already
246
+ # implies: an address constraint (+writable: <reg>+imm+ store target, or
247
+ # +readable: <reg>+) forces <reg> to be a valid (mapped, non-NULL) pointer,
248
+ # so a NULL-check branch on the same register adds nothing. Keeps the
249
+ # emitted set minimal.
250
+ # @param [Array<[Symbol, Object]>] cons The de-duplicated constraint list.
251
+ # @return [Array<[Symbol, Object]>]
252
+ def drop_implied_nonzero(cons)
253
+ nonzero_regs = cons.filter_map do |type, obj|
254
+ obj.obj.to_s if address_deref0?(type, obj)
255
+ end
256
+ return cons if nonzero_regs.empty?
257
+
258
+ cons.reject do |type, obj|
259
+ type == :cmp && obj[1] == '!=' && obj[2] == ZERO && nonzero_regs.include?(obj[0])
260
+ end
261
+ end
262
+
263
+ # Drop a "<X> == 0x0" branch constraint that a NULL requirement on the same
264
+ # value already states (see {#require_null}). Both ask for the same zero, and
265
+ # the one naming it NULL is the one that says what the zero is for.
266
+ # @param [Array<[Symbol, Object]>] cons The de-duplicated constraint list.
267
+ # @return [Array<[Symbol, Object]>]
268
+ def drop_restated_null(cons)
269
+ nulls = cons.filter_map { |type, obj| obj[/\A(.+) == NULL\z/, 1] if type == :raw }
270
+ return cons if nulls.empty?
271
+
272
+ cons.reject do |type, obj|
273
+ type == :cmp && obj[1] == '==' && obj[2] == ZERO && nulls.include?(obj[0])
274
+ end
275
+ end
276
+
277
+ # Where +address+ lands in the memory this emulator tracks: the stack it
278
+ # falls in and its offset within it. A load or store passes the address it
279
+ # dereferences, i.e. its operand with that dereference peeled off.
280
+ # @param [Lambda, String] address An address.
281
+ # @return [(Hash{Integer => Lambda}?, Integer)] The stack, +nil+ if none
282
+ # tracks this address, and the offset to index it at.
283
+ # @example an offset from a register
284
+ # resolve_address(Lambda.parse('rsp+0x10')) #=> [sp_based_stack, 0x10]
285
+ # @example an offset from a pointer no register names
286
+ # resolve_address(Lambda.parse('[rbp-0x48]+0x8')) #=> [the "[rbp-0x48]" stack, 0x8]
287
+ def resolve_address(address)
288
+ base, offset = address_base(address)
289
+ [get_corresponding_stack(base), offset]
290
+ end
291
+
292
+ # The memory +base+ addresses: what this candidate has written through it,
293
+ # keyed by offset. Every base gets one -- the stack pointer, the frame
294
+ # pointer, any other register, and a value no register names at all (a
295
+ # pointer the candidate derived and then built an array through).
98
296
  #
99
- # @param [String | Lambda] obj
100
- # A lambda object or its string.
101
- # @return [Hash{Integer => Lambda}, nil]
102
- # The corresponding stack that +obj+ used,
103
- # or nil if +obj+ doesn't use the stack.
104
- def get_corresponding_stack(obj); raise NotImplementedError
297
+ # Keyed by how the base renders, which is what makes one store enough: a
298
+ # register that gets reassigned addresses somewhere else and renders
299
+ # differently, so it lands on a different key without any invalidation to
300
+ # arrange. Only a store overwriting what the base itself reads from would
301
+ # break that, which a candidate short enough to be a gadget doesn't do.
302
+ # @example a register
303
+ # get_corresponding_stack('x21')
304
+ # @example a pointer rounded down before use
305
+ # get_corresponding_stack(Lambda.parse('(rsi & 0xfffffffffffffff0)'))
306
+ # @param [String, Lambda] base A base, as {#resolve_address} yields it --
307
+ # not an offset expression, whose offset belongs in the key it indexes.
308
+ # @return [Hash{Integer => Lambda}, nil] nil when +base+ names nothing this
309
+ # emulator tracks memory for.
310
+ def get_corresponding_stack(base)
311
+ return nil unless base.is_a?(OneGadget::Emulators::Lambda) || registers.key?(base.to_s)
312
+
313
+ tracked_memory[base.to_s]
105
314
  end
106
315
 
107
316
  private
108
317
 
318
+ # Every base this candidate has written through, each mapped to the memory
319
+ # it addresses. See {#get_corresponding_stack}, which is how it is reached.
320
+ # @return [Hash{String => Hash{Integer => Lambda}}]
321
+ def tracked_memory
322
+ @tracked_memory ||= Hash.new { |memory, base| memory[base] = tracked_stack(base) }
323
+ end
324
+
325
+ # Split +address+ into the base it is offset from and that offset, in the
326
+ # forms {#get_corresponding_stack} and a tracked stack expect.
327
+ # @param [Lambda, String] address See {#resolve_address}.
328
+ # @return [(String, Lambda), Integer]
329
+ def address_base(address)
330
+ return [address, 0] unless address.is_a?(OneGadget::Emulators::Lambda)
331
+ # Still a dereference deep, so the whole thing names one value rather than
332
+ # an offset from anything: its own immediate is part of that name.
333
+ return [address, 0] if address.deref_count.positive?
334
+ # An operation's +obj+ is only the value it operates on, which addresses
335
+ # somewhere else entirely -- a candidate building an array through
336
+ # +(rsi & ~0xf)+ is not writing through +rsi+.
337
+ return [address.dup.tap { |base| base.immi = 0 }, address.immi] if address.operation?
338
+
339
+ [address.obj, address.immi]
340
+ end
341
+
342
+ # An always-on tracked stack keyed by offset: a Hash that lazily materialises
343
+ # +[reg+off]+ as a one-deref {Lambda}. Used for the +sp+- and {#bp}-based stacks.
344
+ def tracked_stack(reg)
345
+ Hash.new do |h, k|
346
+ h[k] = OneGadget::Emulators::Lambda.new(reg).tap do |lmda|
347
+ lmda.immi = k
348
+ lmda.deref!
349
+ end
350
+ end
351
+ end
352
+
109
353
  def check_register!(reg)
110
354
  raise Error::InstructionArgumentError, "#{reg.inspect} is not a valid register" unless register?(reg)
111
355
  end
@@ -113,10 +357,307 @@ module OneGadget
113
357
  def check_argument(idx, expect)
114
358
  case expect
115
359
  when :global_var? then global_var?(argument(idx))
116
- when :zero? then argument(idx).is_a?(Integer) && argument(idx).zero?
117
360
  end
118
361
  end
119
362
 
363
+ # Accept a +call+ to a libc function the emulator treats as non-terminal
364
+ # (a syscall wrapper). {SafeCalls::COMMON} maps each function name to its
365
+ # per-argument requirements: an argument index paired with one of
366
+ # * +:global_var?+ - a precondition that must already hold, else the
367
+ # candidate is aborted (+:fail+).
368
+ # * +:closed_fd+ - the descriptor the callee closes. Nothing is required of
369
+ # it; it is recorded, because closing a standard descriptor changes what
370
+ # the spawned shell can still do (see {#note_closed_fd}).
371
+ # * +:null+ - the callee must be given NULL here, so +<arg> == NULL+ is
372
+ # recorded for the caller to arrange. A value that can never be NULL --
373
+ # a fixed address, or any other non-zero literal -- aborts the candidate.
374
+ # @example +__sigaction(sig, act, oldact)+ writes the old action through
375
+ # +oldact+ unless it is NULL
376
+ # * +:nullable_deref+ - the callee dereferences this argument *unless it is
377
+ # NULL*, which glibc guards with an explicit NULL check. When the pointer
378
+ # isn't already known to be mapped, +<arg> == NULL+ is recorded so the
379
+ # callee takes the skip-the-dereference path. Only tag an argument this way
380
+ # after confirming the callee both NULL-checks it and still reaches the
381
+ # terminal call on the NULL path.
382
+ # * +:deref+ - the callee dereferences this argument *unconditionally* (no
383
+ # NULL guard), so it can't be made safe by forcing it NULL. When the pointer
384
+ # isn't already known to be mapped, +readable: <arg>+ is recorded so the
385
+ # attacker knows it must reference readable memory.
386
+ # @example +posix_spawnattr_setsigmask(attr, set)+ runs +attr->__ss = *set+
387
+ # * +:writable+ - the callee *writes through* this argument (an out-param), so
388
+ # +writable: <arg>+ is recorded (via {#add_writable}, which drops the
389
+ # pc/+$base+/sp targets that are writable or fixed for free).
390
+ # @example +posix_spawnattr_init(attr)+ writes +*attr+
391
+ # Both deref checks are deferred to {#finalize_deferred_reads} because a
392
+ # +<reg>+<imm>+ pointer may only become known-mapped once a later store marks
393
+ # +<reg>+ writable.
394
+ # @return [nil, :fail] +nil+ = call accepted, +:fail+ = abort the candidate.
395
+ def dispatch_safe_call(addr)
396
+ func = SafeCalls::COMMON.keys.find { |n| addr.include?(n) }
397
+ return :fail unless func
398
+
399
+ SafeCalls::COMMON[func].each do |idx, req|
400
+ next note_closed_fd(argument(idx)) if req == :closed_fd
401
+
402
+ ok = POINTER_REQUIREMENTS.include?(req) ? record_pointer(argument(idx), req) : check_argument(idx, req)
403
+ return :fail unless ok
404
+ end
405
+ clobber_caller_saved
406
+ nil
407
+ end
408
+
409
+ # Forget the caller-saved registers, which the call it just accepted is free
410
+ # to leave in any state (see {OneGadget::ABI::CALLER_SAVED}). Keeping their
411
+ # entry values would let a later branch on one -- +call __close+ then
412
+ # +test eax, eax+ -- read as a condition on a value the caller chooses, when
413
+ # it is really the callee's return.
414
+ #
415
+ # The return register is set to zero rather than forgotten: these calls are
416
+ # accepted on the basis that they succeed, and success is what they all
417
+ # report that way, so a branch on the result resolves instead of ending the
418
+ # path. A path that needs the failing side then contradicts itself and drops.
419
+ #
420
+ # TODO: success is assumed, not required. A path that keeps going after the
421
+ # call fails can reach a terminal call just as well, and is dropped here
422
+ # only because the return is pinned. Modelling the result per function --
423
+ # which values it can return, and what each one requires -- would let both
424
+ # sides be walked, at the cost of a constraint describing the failing one.
425
+ # @return [void]
426
+ def clobber_caller_saved
427
+ caller_saved.each do |reg|
428
+ next unless registers.key?(reg)
429
+
430
+ # A vector register holds one value per lane; keep that shape.
431
+ current = registers[reg]
432
+ registers[reg] = current.is_a?(Array) ? Array.new(current.size) { clobbered_value } : clobbered_value
433
+ end
434
+ reg = return_register
435
+ registers[reg] = 0 if reg && registers.key?(reg)
436
+ end
437
+
438
+ # The register this architecture's calling convention returns a value in.
439
+ def return_register
440
+ OneGadget::ABI::RETURN_REGISTER[arch_name]
441
+ end
442
+
443
+ # Registers this architecture's calling convention lets a call destroy.
444
+ def caller_saved
445
+ @caller_saved ||= OneGadget::ABI::CALLER_SAVED.fetch(arch_name, [])
446
+ end
447
+
448
+ def arch_name
449
+ self.class.name.split('::').last.downcase.to_sym
450
+ end
451
+
452
+ # Stands for a value left by a call: unknowable, and not the caller's to pick.
453
+ def clobbered_value
454
+ OneGadget::Emulators::Lambda.new(CLOBBERED)
455
+ end
456
+
457
+ # Whether +value+ is one a call left behind. Nothing can be said about it, so
458
+ # reading one as a constraint operand abandons the path (see
459
+ # {Conditional#operand_str}).
460
+ def clobbered?(value)
461
+ return value.any? { |v| clobbered?(v) } if value.is_a?(Array)
462
+
463
+ value.is_a?(OneGadget::Emulators::Lambda) && value.obj == CLOBBERED
464
+ end
465
+
466
+ # Record a descriptor the gadget closes on its way to the terminal call, by
467
+ # where it is read from.
468
+ #
469
+ # Only one the caller chooses is worth recording, since which descriptor
470
+ # lands there decides whether the spawned shell keeps its I/O. One fixed in
471
+ # the code is nobody's to change, and no path that reaches a terminal call
472
+ # closes one, so it isn't modelled.
473
+ # @param [Object] fd The descriptor argument, as {#argument} returns it.
474
+ # @return [void]
475
+ def note_closed_fd(fd)
476
+ @closed_fds << fd.to_s unless fd.is_a?(Integer)
477
+ end
478
+
479
+ # Record what the callee does through a pointer argument.
480
+ #
481
+ # Only a symbolic value carries a precondition the caller can arrange: an
482
+ # address that arrived as a literal is either one nobody can make readable
483
+ # or writable, or NULL. The exception is the argument a callee leaves alone
484
+ # when it is NULL -- passing NULL is exactly how that is asked for, so it is
485
+ # accepted and needs nothing of the caller.
486
+ # @return [Boolean] false to abort the candidate.
487
+ def record_pointer(arg, req)
488
+ return NULLABLE_REQUIREMENTS.include?(req) if arg.is_a?(Integer) && arg.zero?
489
+ return false unless arg.is_a?(OneGadget::Emulators::Lambda)
490
+
491
+ case req
492
+ when :writable then add_writable(arg)
493
+ when :deref then @deferred_reads << [arg, :readable]
494
+ when :nullable_deref then @deferred_reads << [arg, :nullable]
495
+ when :null then return require_null(arg)
496
+ end
497
+ true
498
+ end
499
+
500
+ # Record that +arg+ has to be NULL. An address that is mapped by the time
501
+ # the gadget runs -- the stack, a libc global -- names real memory and so
502
+ # can't also be NULL, and no caller can arrange otherwise.
503
+ # @return [Boolean] false to abort the candidate.
504
+ def require_null(arg)
505
+ return false if mapped_nonnull_pointer?(arg)
506
+
507
+ @constraints << [:raw, "#{arg} == NULL"]
508
+ true
509
+ end
510
+
511
+ # Now that emulation is complete and the full writable set is known, record
512
+ # the residual constraint for each deferred pointer argument, unless it is
513
+ # already known to reference mapped memory. A +:nullable+ deref becomes a
514
+ # +:raw+ +<arg> == NULL+ (take the skip-the-dereference path); a +:readable+
515
+ # deref becomes a +:readable+ constraint (NULL can't satisfy an unconditional
516
+ # dereference) -- a typed address constraint handled like +:writable+ (see
517
+ # {#constraints}). Idempotent: the queue is cleared once resolved.
518
+ def finalize_deferred_reads
519
+ @deferred_reads.each do |arg, kind|
520
+ if kind == :readable
521
+ next if mapped_nonnull_pointer?(arg) || writable_pointer?(arg)
522
+
523
+ @constraints << [:readable, arg]
524
+ else
525
+ next if deref_safe_pointer?(arg) || writable_pointer?(arg)
526
+
527
+ @constraints << [:raw, "#{arg} == NULL"]
528
+ end
529
+ end
530
+ @deferred_reads = []
531
+ end
532
+
533
+ # Whether dereferencing +val+ is safe: it is NULL, or a pointer already known
534
+ # to reference mapped memory (see {#mapped_pointer?}).
535
+ def deref_safe_pointer?(val)
536
+ return true if val.is_a?(Integer) && val.zero?
537
+ return false unless val.is_a?(OneGadget::Emulators::Lambda) && val.deref_count.zero?
538
+
539
+ mapped_pointer?(val.obj.to_s)
540
+ end
541
+
542
+ # Whether +val+ is already known to be a non-NULL pointer into mapped memory
543
+ # -- the safety bar for an *unconditional* dereference, which (unlike
544
+ # {#deref_safe_pointer?}) NULL cannot clear.
545
+ def mapped_nonnull_pointer?(val)
546
+ return false unless val.is_a?(OneGadget::Emulators::Lambda) && val.deref_count.zero?
547
+
548
+ mapped_pointer?(val.obj.to_s)
549
+ end
550
+
551
+ # Whether +val+ points into memory already known mapped from a store
552
+ # through its base during emulation -- either an explicit +writable+
553
+ # constraint (a store {#get_corresponding_stack} couldn't place, e.g. a
554
+ # compound destination), or memory tracked against that base (a store it
555
+ # could place -- the same evidence, a different bookkeeping path).
556
+ def writable_pointer?(val)
557
+ return false unless val.is_a?(OneGadget::Emulators::Lambda) && val.deref_count.zero?
558
+
559
+ base = val.obj.to_s
560
+ return true if @constraints.any? { |type, obj| type == :writable && obj.obj.to_s == base }
561
+
562
+ stack = get_corresponding_stack(base)
563
+ !!stack && !stack.empty?
564
+ end
565
+
566
+ # Whether an address expression names memory known to be mapped: a stack slot,
567
+ # the libc base, or a libc global.
568
+ def mapped_pointer?(obj)
569
+ obj.include?(sp) || obj == libc_base.obj.to_s || global_var?(obj)
570
+ end
571
+
572
+ # The libc load base as a symbolic +$base+ lambda. Only the arches that
573
+ # concretize libc-relative operands (amd64's +rip+, arm's +pc+) ever produce
574
+ # it; elsewhere it never matches a real operand, so it's harmless.
575
+ # @example
576
+ # libc_base.to_s #=> '$base'
577
+ def libc_base
578
+ @libc_base ||= OneGadget::Emulators::Lambda.new('$base')
579
+ end
580
+
581
+ # Record a "must be writable" constraint for a store's target address.
582
+ # @param [OneGadget::Emulators::Lambda] lmda The destination address, zero-deref
583
+ # (already +ref!+'d by the caller).
584
+ def add_writable(lmda)
585
+ @constraints << [:writable, lmda] if needs_writable?(lmda)
586
+ end
587
+
588
+ # The value an instruction reads through +val+: what this candidate put at
589
+ # that address, when it is one the candidate has written, and the
590
+ # dereference itself otherwise (recording the read, see {#note_read}).
591
+ #
592
+ # A slot the gadget fills in reads back as what was put there, so a
593
+ # constraint on it names the value the caller has to arrange rather than
594
+ # whatever the slot held on entry -- which the gadget has already replaced.
595
+ # @param [Object] val The operand's value, as produced by {#arg_to_lambda}.
596
+ # @return [Object]
597
+ # @example (arm) +str r3, [sp, #4]+ then +ldr r0, [sp, #4]+ reads back r3
598
+ def read_value(val)
599
+ stored = stored_value(val)
600
+ return stored unless stored.nil?
601
+
602
+ note_read(val)
603
+ val
604
+ end
605
+
606
+ # What this candidate stored at the address +val+ dereferences, or +nil+ if
607
+ # it stored nothing there. Only a single dereference of an address this
608
+ # emulator tracks names a slot it can answer for (see {#resolve_address}).
609
+ # @param [Object] val
610
+ # @return [Object, nil]
611
+ def stored_value(val)
612
+ return nil unless val.is_a?(OneGadget::Emulators::Lambda) && val.deref_count.positive?
613
+
614
+ stack, offset = resolve_address(val.dup.ref!)
615
+ stack&.key?(offset) ? stack[offset] : nil
616
+ end
617
+
618
+ # Require +val+'s pointer be readable when a load dereferences an
619
+ # uncontrolled base -- one that doesn't root at mapped memory (see
620
+ # {#mapped_pointer?}), since a value read from the stack or a libc global is
621
+ # reliably valid. Deferred like a safe call's +:deref+ so a later store
622
+ # proving the base writable still discharges it.
623
+ # @param [Object] val The loaded value, as produced by {#arg_to_lambda}.
624
+ # @example note_read(arg_to_lambda('[x19+0xed8]')) records readable: x19+0xed8
625
+ def note_read(val)
626
+ return unless val.is_a?(OneGadget::Emulators::Lambda) && val.deref_count.positive?
627
+
628
+ ptr = val.dup.ref!
629
+ root = root_base(ptr)
630
+ return if root && mapped_pointer?(root.to_s)
631
+
632
+ @deferred_reads << [ptr, :readable]
633
+ end
634
+
635
+ # The innermost base name of a (possibly nested or dereferenced) address
636
+ # lambda, following +obj+ through any nested lambdas.
637
+ # @param [OneGadget::Emulators::Lambda] lmda
638
+ # @return [String, nil] The root base name, or +nil+ for an absolute address.
639
+ # @example
640
+ # root_base(arg_to_lambda('[[$base+0x10]+0x8]')) #=> '$base'
641
+ # root_base(arg_to_lambda('x19+0xed8')) #=> 'x19'
642
+ def root_base(lmda)
643
+ obj = lmda.obj
644
+ obj = obj.obj while obj.is_a?(OneGadget::Emulators::Lambda)
645
+ obj
646
+ end
647
+
648
+ # Whether a store through +lmda+ imposes a "must be writable" constraint. It
649
+ # lands on writable-or-fixed memory for free when the target is the stack
650
+ # pointer (the stack is always writable), the program counter, or the libc
651
+ # base (a fixed libc-internal address); a frame pointer or attacker register
652
+ # still needs the constraint.
653
+ # @example (sp is +rsp+, pc is +rip+)
654
+ # needs_writable?(arg_to_lambda('rax')) #=> true # an attacker register
655
+ # needs_writable?(arg_to_lambda('[rsp+0x8]')) #=> false # the stack is writable
656
+ # needs_writable?(arg_to_lambda('$base+0x10')) #=> false # a fixed libc global
657
+ def needs_writable?(lmda)
658
+ ![sp, pc, libc_base.obj.to_s].include?(lmda.obj.to_s)
659
+ end
660
+
120
661
  def register?(reg)
121
662
  registers.include?(reg)
122
663
  end
@@ -133,12 +674,36 @@ module OneGadget
133
674
  OneGadget::Emulators::Lambda.parse(arg, predefined: registers)
134
675
  end
135
676
 
677
+ # The value +op+ produces from +lhs+ and +rhs+: folded when both are
678
+ # concrete, and otherwise named as the operation itself, since no
679
+ # base+offset expresses it (see {Lambda.operation}). +nil+ when it is
680
+ # neither -- an operation on something this emulator cannot name, which the
681
+ # caller reports against its own mnemonic.
682
+ # @param [Symbol] op A Ruby operator that doubles as how the operation renders.
683
+ # @param [Lambda, Integer] lhs The value operated on.
684
+ # @param [Lambda, Integer] rhs The value it is operated on with.
685
+ # @return [Lambda, Integer, nil] The result, or nil when it is not one this
686
+ # emulator can name.
687
+ # @example (amd64) +and rax, 0xf+ with rax unknown leaves +(rax & 0xf)+
688
+ # operation_result(:&, registers['rax'], 0xf)
689
+ def operation_result(op, lhs, rhs)
690
+ return lhs.send(op, rhs) if lhs.is_a?(Integer) && rhs.is_a?(Integer)
691
+ return nil unless lhs.is_a?(OneGadget::Emulators::Lambda)
692
+
693
+ # Exclusive-or of a value with itself is zero whether or not the value is
694
+ # known -- how every arch spells "zero this register".
695
+ return 0 if op == :^ && lhs.to_s == rhs.to_s
696
+
697
+ OneGadget::Emulators::Lambda.operation(lhs, op.to_s, rhs)
698
+ end
699
+
136
700
  def raise_unsupported(inst, *args)
137
701
  raise OneGadget::Error::UnsupportedInstructionArgumentError, "#{inst} #{args.join(', ')}"
138
702
  end
139
703
 
704
+ # Resolve +sp+- and (when tracked) {#bp}-relative operands to their offset.
140
705
  def eval_dict
141
- { sp => 0 }
706
+ bp ? { sp => 0, bp => 0 } : { sp => 0 }
142
707
  end
143
708
 
144
709
  def size_t