one_gadget 1.10.0 → 2.1.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +349 -0
- data/README.md +386 -248
- data/lib/one_gadget/abi.rb +86 -3
- data/lib/one_gadget/builds/libc-2.19-cf699a15caae64f50311fc4655b86dc39a479789.rb +269 -7
- data/lib/one_gadget/builds/libc-2.19-fd51b20e670e9a9f60dc3b06dc9761fb08c9358b.rb +118 -10
- data/lib/one_gadget/builds/libc-2.23-60131540dadc6796cab33388349e6e4e68692053.rb +230 -9
- data/lib/one_gadget/builds/libc-2.23-679ad41a6bc9e718a11a36cf9879cac97197e565.rb +82 -4
- data/lib/one_gadget/builds/libc-2.23-926eb99d49cab2e5622af38ab07395f5b32035e9.rb +147 -6
- data/lib/one_gadget/builds/libc-2.23-991d173c6b9056712812d98507cbe95f937db7cf.rb +133 -0
- data/lib/one_gadget/builds/libc-2.24-8cba3297f538691eb1875be62986993c004f3f4d.rb +120 -5
- data/lib/one_gadget/builds/libc-2.24-fd0655c4d2073eda4235084e1d0e558f0251be8a.rb +67 -7
- data/lib/one_gadget/builds/libc-2.27-53f40c1d2f3739ae017dcdcef1a17314786e3709.rb +134 -5
- data/lib/one_gadget/builds/libc-2.27-63b3d43ad45e1b0f601848c65b067f9e9b40528b.rb +154 -4
- data/lib/one_gadget/builds/libc-2.27-8c2d375f8d23a7b58de23a60b37bef2d80b23aef.rb +167 -0
- data/lib/one_gadget/builds/libc-2.27-b417c0ba7cc5cf06d1d1bed6652cedb9253c60d0.rb +198 -8
- data/lib/one_gadget/builds/libc-2.31-00537087f0a4c4381deb83f49cc19e6abfd47a12.rb +68 -0
- data/lib/one_gadget/builds/libc-2.31-5792732f783158c66fb4f3756458ca24e46e827d.rb +308 -0
- data/lib/one_gadget/builds/libc-2.31-749e6d13e587d608128a097381cd44b9aca59927.rb +416 -0
- data/lib/one_gadget/builds/libc-2.31-93b46e0027747153e336c3fd9431ce9a5d82ad00.rb +563 -0
- data/lib/one_gadget/builds/libc-2.31-9fdb74e7b217d06c93172a8243f8547f947ee6d1.rb +217 -31
- data/lib/one_gadget/builds/libc-2.31-aa18dedb2aa800a743aac3bb546b8bd5816dbca6.rb +278 -0
- data/lib/one_gadget/builds/libc-2.35-1a0246cddde3e301e0cd5a85630aa26e89cb34b5.rb +83 -0
- data/lib/one_gadget/builds/libc-2.35-22ca0a83a4004122e30a69b597be96e134068616.rb +263 -0
- data/lib/one_gadget/builds/libc-2.35-4a81130bc30ded618f1edc030ecc5439e066dc68.rb +248 -0
- data/lib/one_gadget/builds/libc-2.35-891c1403437a4e30e684e0c8e34b87a09e4298e5.rb +434 -0
- data/lib/one_gadget/builds/libc-2.35-a91d1bc05ce8f54989de1172c24b2b736378901f.rb +221 -0
- data/lib/one_gadget/builds/libc-2.39-328820b908de8ea1ef79afa8995e302e819163d7.rb +174 -0
- data/lib/one_gadget/builds/libc-2.39-54ae5337044aaabab70d65e0c3444f7e4735e059.rb +291 -0
- data/lib/one_gadget/builds/libc-2.39-70d6616bcfd43eaa73962220df98dd9c82ca6687.rb +282 -0
- data/lib/one_gadget/builds/libc-2.39-a1d1cf4badf1f5dfe57ff1d17bd692ccc6fcd5c5.rb +531 -0
- data/lib/one_gadget/builds/libc-2.39-a7e93008cd7dad7a713e3eaf1f9dec78ce7c68a6.rb +66 -0
- data/lib/one_gadget/builds/libc-2.39-cd8f5a207dd67aea370d2b471a54c3e56f44ab18.rb +531 -0
- data/lib/one_gadget/builds/libc-2.39-f5b510cd91b956148e885994f55a0e476462bf92.rb +282 -0
- data/lib/one_gadget/builds/libc-2.43-7a08e84aa7f1e0bd80a7da6227c3a006c3ff327d.rb +75 -0
- data/lib/one_gadget/builds/libc-2.43-8c7af7f227b3871d6afba752cbb617f317023de5.rb +279 -0
- data/lib/one_gadget/builds/libc-2.43-90ebd03ae9d9f42b23b4eb82fdf70352cf744198.rb +96 -0
- data/lib/one_gadget/builds/libc-2.43-b50ceafbd17dc6bceee344a66671c7eaa152bef4.rb +462 -0
- data/lib/one_gadget/cli.rb +13 -12
- data/lib/one_gadget/emulators/aarch64.rb +60 -78
- data/lib/one_gadget/emulators/amd64.rb +49 -2
- data/lib/one_gadget/emulators/arm.rb +315 -0
- data/lib/one_gadget/emulators/arm_family.rb +175 -0
- data/lib/one_gadget/emulators/conditional.rb +354 -0
- data/lib/one_gadget/emulators/constraints.rb +269 -0
- data/lib/one_gadget/emulators/data_processing.rb +167 -0
- data/lib/one_gadget/emulators/i386.rb +6 -8
- data/lib/one_gadget/emulators/instruction.rb +29 -5
- data/lib/one_gadget/emulators/lambda.rb +59 -8
- data/lib/one_gadget/emulators/mips.rb +289 -0
- data/lib/one_gadget/emulators/processor.rb +187 -44
- data/lib/one_gadget/emulators/register_file.rb +106 -0
- data/lib/one_gadget/emulators/riscv64.rb +265 -0
- data/lib/one_gadget/emulators/safe_calls.rb +62 -0
- data/lib/one_gadget/emulators/tracked_memory.rb +209 -0
- data/lib/one_gadget/emulators/x86.rb +180 -78
- data/lib/one_gadget/error.rb +12 -0
- data/lib/one_gadget/fetchers/aarch64.rb +28 -20
- data/lib/one_gadget/fetchers/amd64.rb +2 -53
- data/lib/one_gadget/fetchers/argument_resolution.rb +340 -0
- data/lib/one_gadget/fetchers/arm.rb +311 -0
- data/lib/one_gadget/fetchers/base.rb +364 -223
- data/lib/one_gadget/fetchers/candidate_walk.rb +150 -0
- data/lib/one_gadget/fetchers/disassembly.rb +252 -0
- data/lib/one_gadget/fetchers/dynamic_symbols.rb +104 -0
- data/lib/one_gadget/fetchers/i386.rb +32 -14
- data/lib/one_gadget/fetchers/mips.rb +478 -0
- data/lib/one_gadget/fetchers/objdump.rb +25 -3
- data/lib/one_gadget/fetchers/riscv64.rb +78 -0
- data/lib/one_gadget/fetchers/x86.rb +60 -4
- data/lib/one_gadget/fetchers.rb +115 -0
- data/lib/one_gadget/gadget.rb +335 -42
- data/lib/one_gadget/helper.rb +68 -40
- data/lib/one_gadget/logger.rb +4 -1
- data/lib/one_gadget/one_gadget.rb +26 -11
- data/lib/one_gadget/version.rb +1 -1
- data/lib/one_gadget.rb +1 -1
- metadata +68 -862
- data/lib/one_gadget/builds/libc-2.19-01e14462fc6097604edd54a2ee63664c65b2c12b.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-01e23c38126dad7db569b176808a7c54db64a086.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-02093f433808b294939b7a84c436c9eb4ec7f084.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-0301225d38bb881df8962a45d8c7f97449628511.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-036830b8f13a440ab4f419e46889b60e6e2b4211.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-03913aa050d557a99cc18f7b10e35f06e7c9265e.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-05438cea9c1f9b3bbca9d9718319ee3742937f2e.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-05d284a054b0c444fe40e91b25155a637b5cd35b.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-081d1ade5e735e7bbd0d2c1655a1eb7a0ab546ad.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-09aa28fd1054ee91085a7e13da58891c2d22058d.rb +0 -46
- data/lib/one_gadget/builds/libc-2.19-0b3a9eb5ffbd93527a046585e2eb0c8ae804498b.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-0ca781d9dae5d7689f112aa047b949ba253a1a24.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-0cfe51d12d5ffdc0b80469a74e6e5afb8130cafb.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-0dd7691bd47c4270c2ce9343dff1fbe0e27ad9f3.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-0e1a9dd2ea0a174b53ad15979b049628cb2d7fd0.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-0fe755222a275227e03414bf80fe98560038cf7e.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-10c913aa6554f3128781afb7846ac481b64c10b6.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-1142f4753ddff69c217e1e539272eaaf7d75da4c.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-12d7f074b08cab569614830552b5fe8a32707295.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-145bd51d758bf9c3e3b45949a2023cbaa0941e37.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-15b6f6d06e3435a22c15398ce99c3d649112f576.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-15c42742a61d7b2fe40dca9ca659a8f8f8ffea32.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-1606a4f3d8e807c5bf9b273ab202901115aa7a1e.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-17e8467dfe433c3622e6874d5795f6ac8edc8951.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-1d7ac0a26e8dd7a9b8443fe4a5f59e46ee16ce74.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-1dae2bc5818d22b565ed441211d0e2df6e942c25.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-1db2291c040579630f551b3568d0bc8758aa25d7.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-1dcad38451d0f4e339ac91079d6a20e40015d7f4.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-20f983ed5f4a8d177a9839b4abe44ffa35e1eade.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-21f20ffd821a693d32e258aa6a64e6bde5c5bdaf.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-22325505e6f257ab00ca32d46cd444c903d5dc89.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-22ea459c5bf13179544fc0bc92372ebe52792f53.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-267899ea9a83d7e5bd2ae3e53943cd57da6a01e7.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-26d70c7187d46c01bea7c22e8428fd6569d0f29c.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-27ae159e7958021d9c784daa60ac582aeb2e380c.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-286f68616b18ea86201b1bd81c4e39ab441a876f.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-29ad0fae22588909ae24075cf3d30123d3563a3c.rb +0 -46
- data/lib/one_gadget/builds/libc-2.19-29c9abe596db30c86fe28d30dc275485c7e3f240.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-2aebf61fd92ce11ccbc35f4f5e1da8843415ff2f.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-2b7794adc3efbe94dd7f17bb28382f42415ef32c.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-2bb9296b7b2843ef007f7de1b2995bc33ec8294d.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-2bba9d358bac63ff81597767b5bc229316bd12e0.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-2dad3f021a0e10d56a36a3e6e83c641013bb8d0d.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-2dc3a77a63a29cdfce5000c5e562da4574560802.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-2ee2c632ffc91afb8662573f6870c70a03fecaad.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-2fc2eb810e87cbb9d2a9c79bb1aa31c3b84330c0.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-309303fe5b44867525d535b4b8df1d9890128765.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-30c94dc66a1fe95180c3d68d2b89e576d5ae213c.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-30d456d1974436ca70141610c206bbd4e9ac127f.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-30dfa78b54091b3517212562fbe71c82031135df.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-319d6e67364b59468f00c62003e31f9698590885.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-325f373d48d6e3eb950fb4a1841cee80adf696e4.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-335b30edc15f874730295594b30528ba178aeca7.rb +0 -46
- data/lib/one_gadget/builds/libc-2.19-33adc3316a61d4db3e78e167be8f2d1c8b4a0474.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-34eca1b0e54755d19a70d3a74b744911f746902a.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-35597c5d9140178626b2989b0f3049c825f17249.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-3565b3bf199d386bd0188a3690135b2ef82a559e.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-365c74dde459303730e276b4d6022f1eacda06fd.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-3691e2c3b9f75fbaf99c93f201c86a2df07a98d2.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-3701aa1820d0a1dc12ac27ffde0ca8c63c50ab4a.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-3883c7733b2a0819e0c7c2dcbadfdac26e0e2b72.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-395c995bb2028f96efb60a6ebce75ed51d58c0b0.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-39612ce36adeb6f7e92658cd62c737bc3a260586.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-397c84e78c14cbffba39a48184db482211df9fb3.rb +0 -41
- data/lib/one_gadget/builds/libc-2.19-39f403e178f6c4db89f200bae5afd6c55f61e34b.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-3bbdc31d826a2bd8af0919d958620342c295c557.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-3ea89e2234c5203ef245cd4146b515794079ceac.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-3f8df0a32477b9b5c8521116e4d554f4dd784e9c.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-40410c37ab2b3867bcc1efa841c4bd990bbaced6.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-40443517ebed72833c0cea4364db0346c422be75.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-410c538cbb80e04ba67f8f93ead7c915cb8b151e.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-410c5d16e862678b3263a8250ad936b99554050c.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-42150628cea5ef0a4f7f48267f0d6fd206d7bef4.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-4315ee2103b2f1797d8d18ef03714dbdc4417095.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-4360063303905bf941489398b5601c5e2bc6c3a7.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-441d0bc3f372750187a7cc29528fca0f2fa4297d.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-444c5eaa7cb665ed9b90d3edc47e07c9eeb22c49.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-458c7913f032820ce7610496892f79a4779b0224.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-460355a265c134c0c801820ab5e80e37e2cd9b00.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-47411da31c1af33c897d1646f68d4443c3a156f2.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-482a813d828d5fe257838e679dff9b7be56bf4fb.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-484428905d6e138e0b88e97107732ace68c12752.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-4866fc3ad424dfb788e9ad11039b7759f3b51574.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-48b333aa64a86c31334714305379a6c1f1701c69.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-49f3ac15a25f78f0258283b3a207017e51ced583.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-4a384b8c751de6c0e2652261310104bf1b2127d5.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-4a5eeadb796e6dba8f289a90de2b53e71c8e8788.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-4daad26169c5c868b8ae90587fff76cc28e7b309.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-4e304f78f3cfb52dd521bd6fd8ae7a0c7400104e.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-4e9b0243eb28ea1a14539448a5317d6215fa13fa.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-4eda8ff01be3fba1c7bdd442a8690c3dc7397b6a.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-4f953c59dca85d439af86c6564c9fdb07cccafd5.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-509ee0c9616c4c3ed81951501a8950e1f529bbff.rb +0 -41
- data/lib/one_gadget/builds/libc-2.19-50c2ed4707152ba59bfacfd4e1fabc3b28ddc140.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-50e2c3560712d3d9f7af3d155cdeb69687045dd2.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-512993e1c66001e0ad11feea73ddfc22f9c0767b.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-515cd2920490d13129bbad0514c7c7c7e67c18bc.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-51a7763b217be74d9da6fd006c32f82ef82477b5.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-5382058b69031caa9b9996c11061cd164c9398ff.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-5455f3eafe22e7a085c3568bebc324a2ade811ea.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-54b97c45aa9ce58ba4dea4eda316f49927e51cff.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-54fe99efd891702e87da514403a2d3d8cae8032b.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-5537ab284321fdc6efd07276d6e4c524014bf069.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-55e62f166b419389a0de90ceab52c337946ba643.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-56338f83f1b656ee4395a8d3bddf810725151e91.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-58915015546da78c4116e45480be238bac4c59a7.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-58cabb8c6f68b05a1c1c9a707a43f22c3a55a3e9.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-5962ff0ec39da4ea3c572535d1da0c0d3b10cfe9.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-5a49bf8def435ac3fe9208df3c6b5622fe347a97.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-5a49ee56df5b5ab48a6f5607bb46a0b92a3d1c34.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-5a7a0413044f37bc4096c7bc4c33d1ea6880d856.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-5a968877a4a31019701f53ed38130c1313a5e0ad.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-5ab6a00d805f696b8aa6d0d2ee29d511b41499d1.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-5b344bb54cc929c6849371987107f587bd9e0d48.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-5b60e04aabbebdb248f5c03dad0ca1a9fab8be5f.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-5ba8f97e1beb7f068474d473e2db786c07df8561.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-5c02e6b0e80785f5944265c698dc811862018d21.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-5c14523f13f0fb9be3366f446e9e48165373ddf8.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-5e1e27a45fbd02cfa9a95bf657fc4aa53af75421.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-605a6d751871d12a83e34359ff4d73c895d6f4ce.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-60b315c3b5a4b7e4bf699cf79a137d19a9a13d89.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-60c7d280d7c8af6758a3a951524487641f349460.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-61eeda0c442c32c20f93008acbc978e28cca956d.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-63b04eb27336fd6c68f7bd8ba76ccbcc8df1b46c.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-6573062b2d3648b5970f82fbd63cd154c9d84661.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-6573e7dbcbb6179989e2308746f65b95c4117485.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-6850f318041a1a5a202ab0512dda55e80ff19ec8.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-68977b6661c8b646d7d88e32d81916937e346001.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-69673214041206e0eee5b9b5b47fd12d733127e1.rb +0 -46
- data/lib/one_gadget/builds/libc-2.19-6a6d6625087a1de6139a620795ef8b2360a06592.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-6abcb030391dbadd0fda38c3975ad6dcfe7fe20c.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-6aff6d091954955fe931bb720a17708513aabda7.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-6b536aa43eabd040e5117034f582d1c0374980cd.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-6d7e55c204d097c75f6b89717876c17f0dc1779a.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-6d8d0b8321b58b20d824cfa9d68d66769caa9b42.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-6ee0f980c1c75935d8802d0ea84e0a9f09874c51.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-700e2a19dfcc8e20b41145039b6c823123676696.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-705f27d45e46aeda2619beb62fc804d1c2fbe26c.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-707bc133809b86abab918bb8a8fc7791fe916765.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-74a3b58450e957c04e2cca3619695cb3d73bb68e.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-74bf136a60dee4fe2f7ca0d9b40fbdd6b0115496.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-7553121919b4b6bb1d86f8b1eb8eb152e6fb1218.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-77063a4c59e02c182d5afae288f450c7cdf5b6da.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-77504f0405a2d81d64310f262ac559cdc8375b04.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-77bcde9cd55f5ca93684b46705e0851585b94019.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-78c0362905c145cfc28aa2ff409962f3c8b2cb6b.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-7a02d454ba0e8af69e3a284c381318b55908deda.rb +0 -36
- data/lib/one_gadget/builds/libc-2.19-7a7914eec99efd40990d0b1978a01caf46612636.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-7ccbbd7f1713d8eebb6042a8da7e9f2ac1878d42.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-7cf04fce2326ced25e80c0d7972408574a0817e6.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-7d415bffb8dbc06c96e116d8e8f0d8deababbd9e.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-7e523a4a16878ad1fcb7844e93bdd4d474843f86.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-7e97512d5895e6d5e26dc5b26b31c575a80f0188.rb +0 -52
- data/lib/one_gadget/builds/libc-2.19-7f380884708f0bac5c779705562e01ccc7ecf223.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-7f6d04c0ad1b67e316c80cd606720675fc111b50.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-7fbf66aed8b38b67a1a5653e27e9e4d430b9ada6.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-80c8143bd0180bbeb21b7d8c12687d043ae81c7d.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-8131bf46e87501516970176f3f7e86762ffcc3bf.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-83aef0e751f3dddd4b56c5be57524239e39eecaa.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-83f3af43ecaf52a63801ea59ad113835dfb31d58.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-845104cd0116005c9b9569fe3c6d5afd3689a01e.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-8564abd306654cfc468a54117954244e1a2c9102.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-863b5d3db2ef5af0b32dba633dca439a3908c42e.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-866e18be92e8dcab711b7c1e3402065deff5df70.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-869f691faebbe08548ec64381e41acf5997c0fb0.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-87805ebef970b79b4a1fb5facb43719a26c335af.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-887a7db21e668f6153604d9e00d1026137f777ee.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-8b05579712ebaea7cae547f4fc461c0828e9c446.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-8c5d5643cd08bc078f22310103f7c6af4ed37921.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-8cb4573f8cc3764df7570800247a76dd63d847b4.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-8d935a42f2f2a1149aa52d3098b32b1d5012cb67.rb +0 -41
- data/lib/one_gadget/builds/libc-2.19-8dbcbca713ca58e2c7e4970e8218d536154bb64e.rb +0 -36
- data/lib/one_gadget/builds/libc-2.19-8e4150ea59c3a6fdc9f001ba17274f7c48e4be21.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-8fa762223d6b8ee6d47af7455c691a5e238c8209.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-90b068141be8b0f52ef8dc93e8327cda87a632bc.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-913a7e92e674593c7e1121b0013d81e20cebe85c.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-9356622cb19154bd2d3bb21e67f188e3cc3e2902.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-95287be8acccc7b5723f4306e6a5eca6dfe7bffd.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-9a970aa5f863d2ccecd63ceef8bb57d28e55be11.rb +0 -46
- data/lib/one_gadget/builds/libc-2.19-9bf807e100d6c152efd7e845c65ecfb92e2e202e.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-9d1dd2edd9ada4b73ddc73ea10ba1c9ef0810248.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-9e817f4c472417e94d161b392e13d6aeb76f0b5a.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-a13df1fb206f167af0eef4d438f3949d80f8bce3.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-a1818c2dd8e7c4a3d4f61270b4b29330d6b51391.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-a2d884479c5c8f73fbb82e6fefa5083623826cc1.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-a3386004b2a158b95ba4c26c01e421e6c2191a47.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-a3c88cff23421ec2e3c97860bdf28868592ed14c.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-a3ebc8ad2873288cbd2a510de65161c697310e5c.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-a4b13a91fc5d961be3e1a68a30938ba840ae4290.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-a6222959a65e5367ec3f2b54d7f114f6a2c8ce28.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-a62a3aed804ccd4faac1ae52ee39165dd1cf4ebe.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-a71e7ba2ffe12012ab7e5c0ff7d83d6f627a7548.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-a7204938a680127c01c9799462c3b33035f06358.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-a77581d3046ec7a2176ba4bebc222562668d9fd6.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-a77d09f3b8cbad4c430378157308f6cb71549a5a.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-a7e2264ecf52a64ea3ab55163132240c3142eafd.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-a820f849dda0b99ed06dd59bb88404969b3a5f88.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-a9f67b66e93e0abd79f1d8028188377397e4536b.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-ab474a836c41aed0f0bad2ddc66388253bfa75af.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-ad03e0bcbda2213489f10a6bf63a7f5fe3dd6558.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-ad0ce0a6b6e201c9a8195b2d55043afcd4f5db00.rb +0 -36
- data/lib/one_gadget/builds/libc-2.19-ad91c7db0fad11b03e3ce92eda28f673cb36db5d.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-adf7d21d8b442e6b601ad3dcc180608193d2d041.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-b166aefc9dff38869ad893bea2e9ce5e848628b1.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-b2c58c0aaead4cc02a5ad606edf4284ca598c0ef.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-b32788d3f2b080bd447b295cf59ace25fbfce313.rb +0 -46
- data/lib/one_gadget/builds/libc-2.19-b4fbe819a1dc946528b4added1887eb9ca130275.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-b571f83a8a6f5bb22d3558cddda9f943a2a67fd1.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-b700a5d57528fde5c441b020bcc4e19a9099e05b.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-b71ed2c38888a9d0e2c977877193e01a64e97a5d.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-b9082b0162f9d256c1ccf28b9d35d2cce9f6a6a4.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-ba1b1c588dbf0ebb80c646060af92e5a93825fee.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-bb34f13b7ae5fe42cdd14b96dc278f9726424cac.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-bb91233a6ef2a6c754a8ff20f7ba117d7d57707a.rb +0 -46
- data/lib/one_gadget/builds/libc-2.19-bd25bd030c2467d343581ee0d8d8aa7a32c7aa29.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-bd69ec1fafeef65209d9874025fd45e093b23144.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-be4425690f42dd1807770d974ff87b88c51d306d.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-bf368b38f238cfe2c12eac2b487ee8ae58a3a0d8.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-c00c9b70ba01f92a952474258bed608c3e7be6b9.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-c0ee9400445c93ecbc8562e006a8b95ed4d07834.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-c24f77af0c861079dbcbbdf09f4b8eee8eb7130c.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-c379cc4f4e8a55319c70e4d3ce4dc2a4c30f151a.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-c40027c0c6f76c27293f7570888b9d64e1a93285.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-c41ed0ae53a1a559a44a1140c77c3b274a38e442.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-c4278754b0c28c437e1e5bd195d82b6d9e4a6d73.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-c46746723526fa9feb3cdf4218ec24c9179131ad.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-c5affb5af2f506eb7d48c471160790d4c24e81ae.rb +0 -46
- data/lib/one_gadget/builds/libc-2.19-c5e45bf4881c526999786f4dd2718042b20e582c.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-c7cab037359898862b1584a1e3c3372683daad3f.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-c83833a5f5ca5636f8f914c2c9f1726860fce8b1.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-cad76dba04139f928612ee55bf9e14b74e1b7c3f.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-cafa8de523249f48aebec877e9f45f904e4d62a4.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-cb46f5139038116d66a73281a3aca373f8ac7428.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-cb6e2a7a6812e08f621a5c6b5b3372ab5126fc84.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-cb8c8a8edf5ff17d2df7e68e63f6cb242d85b524.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-cba6f22d1ee9163390664add53a9ef135c664903.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-ce25be66ee91861336df34413f53446cb41a2601.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-cf43a056242aa025a153e4a7b6698edd7497f305.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-d06fb2560475e149d6d2401eae955164eb8262fa.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-d11506d7facb213bd2c6063f010a42fa9d723879.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-d1c6ec21d9d74bb0d866a08635b1fc075c4a2e40.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-d2b9e70520a7dbf92895b3d08c9e6a92010571cf.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-d56aa9d47cf61192f75e28fef805c0ce20502157.rb +0 -46
- data/lib/one_gadget/builds/libc-2.19-d66b201cb2987a585890d4be28cf92dad14cb760.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-d6c3d9e55db8600672a2ef744f57aa84e6bea41a.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-d80f3b321f845a71f3c47d913dd3e65152565863.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-d8adddcd7476a6b09bdf02fe1e1d73bd393b6ed7.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-d9a10b8ef90300628dd0a3a535106967714d7328.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-db3fac1541a95bdab2d9ae20bdef3c2f1c13b7e0.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-dd1b1c22eae3c8f0faa0b355bbcdca8f7c0cd91d.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-df559a150829d9f3cdd0b5ce1e5b4d512d20f55f.rb +0 -52
- data/lib/one_gadget/builds/libc-2.19-e01fa6a6b4685ecaebc6756679c283c6572eb6f2.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-e10149c2a9bf0df3c9149b351168fcd32adb41c6.rb +0 -46
- data/lib/one_gadget/builds/libc-2.19-e13d310493f24ceb84f232c5f72469cbe516d57a.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-e2773917e0ca89ebc16787d8cbc96400088583ec.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-e4c3a6a564aeddbafa8be691efffc79e755fa8a4.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-e53d50e134c10f91f8cf52b1778f85b7926147cc.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-e540f810b37a33fab5b3116fdbf8bcaacc000c16.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-e5bd51e1eefbc5c3d96a3aba4dcb50a0cec162de.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-e6ac06f6c982d98a419cec51de313ea609f2b1f2.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-e6e4c4588d098e16d0fba7e15ba9c81f294074a4.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-e70d0551a6ce8feb294de6c138135b58d8763e85.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-e806961cc6bc18acfd55df2613b100a9e733cebd.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-e882a1c9195b6bc1a62b3aeda9b63733109abd2f.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-e892e2e9d5818511e2390e642edd1d4cf2331885.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-e89b2153fd6795f03d6cd1dd789241326a7ee458.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-ebc3c6d17edbddfdcb000366fae4e7cab6ba420c.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-ecc10e3f1443d65007126bef8184ac84bfdf6b7c.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-edc2302cd47e8eedfc2e45da9fddecbdb07b4f21.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-edd5ba629053d507cb963d5269db6e7ae5bde36e.rb +0 -47
- data/lib/one_gadget/builds/libc-2.19-f3a1e60201c31bb9fef972279d08dfc33dbb3ce9.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-f5c375701c2c4406306201e19b42521f504175ec.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-f5e1349016d93661914069bcc7254e702434e445.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-f6248141094bb965d660fd2ce31d8534593c1003.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-f6ba6844f5bba0603e13b577328b9f326d4fef8a.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-f8cc1a32de8229e21b61215844be0462c6ac49a6.rb +0 -45
- data/lib/one_gadget/builds/libc-2.19-f9b5531180de2f0ce620bc03b5fc4d7f8570fd18.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-fb899b514fa6763ad006688efb32ecf9ca691ff3.rb +0 -49
- data/lib/one_gadget/builds/libc-2.19-fd5df0d8007d692d1c00226f81ba04b4f734b5b2.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-fe493bf9ecadc1f26aa36d4a95c718e9f227ad3a.rb +0 -50
- data/lib/one_gadget/builds/libc-2.19-fe76e177d397e9bdccf270232cc7e3a06e84aeb1.rb +0 -49
- data/lib/one_gadget/builds/libc-2.20-024df4febc9c789a8eeb052385d5e780b98a379f.rb +0 -48
- data/lib/one_gadget/builds/libc-2.20-074a896d13132ebfb22b89fd4d026b8608b84d01.rb +0 -46
- data/lib/one_gadget/builds/libc-2.20-0a1de0cc524dacd5b00c678daf50dde4d4539203.rb +0 -46
- data/lib/one_gadget/builds/libc-2.20-22fcfb6d820fec1bd07ebc3506236a1c10d2a74e.rb +0 -46
- data/lib/one_gadget/builds/libc-2.20-317589ae8050581abdfc414151c4655abc3cdfcd.rb +0 -48
- data/lib/one_gadget/builds/libc-2.20-370ce0ece788e8e73d938f2fb3ce6adb890eb417.rb +0 -48
- data/lib/one_gadget/builds/libc-2.20-389e645d86ab23c5f6acd039caacb18a02c3cfa2.rb +0 -46
- data/lib/one_gadget/builds/libc-2.20-398115bd423958b1769317a6f7e4928df141eb57.rb +0 -46
- data/lib/one_gadget/builds/libc-2.20-62fa1628ae33cc45efe8313a24ec8c475c9dffa6.rb +0 -46
- data/lib/one_gadget/builds/libc-2.20-6daaba13e3623d964ca116f91948afc5231732a8.rb +0 -48
- data/lib/one_gadget/builds/libc-2.20-765f172661014a4db8bb05b203bbc07c8686aa25.rb +0 -46
- data/lib/one_gadget/builds/libc-2.20-8bb8c78658cc612de895ec59a8026a08c86662e5.rb +0 -46
- data/lib/one_gadget/builds/libc-2.20-a8e57776dcdd5da9b7c9f60e65d28eaeb5b8173f.rb +0 -46
- data/lib/one_gadget/builds/libc-2.20-ad272c3f76f36f4fe1357514d4b207a06f7f536c.rb +0 -46
- data/lib/one_gadget/builds/libc-2.20-aefe2d045393dbe3e0a2acef88b6f31a78d3a27c.rb +0 -46
- data/lib/one_gadget/builds/libc-2.20-b1217615db4b7a86b90436982610bf86a03ca881.rb +0 -46
- data/lib/one_gadget/builds/libc-2.20-f3063b7115d5a383189937852ce356f4c60fd190.rb +0 -46
- data/lib/one_gadget/builds/libc-2.20-f53b8ad377a1988dcf6329bbdfa7b1201431656e.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-04f18629ef42b062ed0c8f60d5bfaa40a7d28ef7.rb +0 -52
- data/lib/one_gadget/builds/libc-2.21-092fa8483d177952f4b38a4b9be8305baef60466.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-096d4c9ce21618defe0b3e4694dc5380e0189009.rb +0 -51
- data/lib/one_gadget/builds/libc-2.21-13495a0bf9fc076d41056041922792ddb58ac456.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-169a143e9c40cfd9d09695333e45fd67743cd2d6.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-1800fb8ed39680604091e8268cd21cb8ee6f747f.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-185ab573783653be4ea1784a59be3a1499ca64c7.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-1a266f551f39283eff85f4ab8913d8b6d57fb290.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-1dfdbdb3ed58b70e07e1a94ff3e95d84652cb0f1.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-1ee253f6aeaec7a001984e257b86ad7224e46469.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-20b088455f100a9a72e94a69e843b6e0831cbedb.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-2466292818ad2b41c64ea7107123fe96010e1b96.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-24c3f01054f36f8184ba673743310b5178354334.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-25dd428fb4c350c16dfee20491f1a06484a2bfa3.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-2c092eb4091e8d3a20313a09194418595efca9db.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-2e9718e58257bda1dc0d751665a3ee233bf606f2.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-3141017330a2057c655dcb61bd3d9b2c98399181.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-39f1a0bc7f66ea42f3341c0d629bae8caef2346d.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-3af67b618c87a9cfadcf4be33331e34f77f5c842.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-3b9bef61c919475929cfcc3608bdadb86c3b1c6e.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-3c9e3250b31dfe4b5e139cda266e7beabc47e504.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-3eab56f86f3ee1745baa9e6fa771e652340487cc.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-3f08a19432b31835c71ea7d5b3687562cef053e3.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-3faf7b9bab86ba7024b62d99c859136333b8a70d.rb +0 -42
- data/lib/one_gadget/builds/libc-2.21-3fc95a6cdd31b66c550d64d90d0431f68ed43571.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-41530fe252a0d5854827649ddf6e2c8fba9d1653.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-4a0864552f6b027689c7a69efa12e277009c5999.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-4b7de972132a4762898ccb1210ffb7cfc0e6f14e.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-4ce84d266a07230287b230ac4ce8ba2d2f3f854e.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-4dec520cda38e785c80e30db8fcd5428cee0f324.rb +0 -42
- data/lib/one_gadget/builds/libc-2.21-4f14eb66c408453973042c95d25f4e014bf4e364.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-503c5dd98cc9529359e601c1595c995cf359df30.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-505a88bc8f93a7ba339895ce27dc4ad8331cad7d.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-53377f31675a81af793df0c63b40e193a4a6999b.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-53b6f3047638b0703bf1091fe4c3afe79445d546.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-570c7051e379d909016cb81933bc5701daecd428.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-591e5a56f9d466a7c70baf6684d99843ab8c45d1.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-59b7200857a55acdfa5de730a573eed0cfec0962.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-59c981c8e0e729ae7c562daa00be2cdb8e0c090a.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-59eae8a903584dcbc14cf07c719cd23b9f65e230.rb +0 -49
- data/lib/one_gadget/builds/libc-2.21-5a22b7ec63fd7c5dc6a92875046515f4beac727d.rb +0 -42
- data/lib/one_gadget/builds/libc-2.21-5c9f149296e581c181529723f7eb44bf10a7d746.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-5ccd94c4e3483df05be240ff1fb8a3f53794cc6f.rb +0 -49
- data/lib/one_gadget/builds/libc-2.21-5f977df2af6a6a25e48e60dd867680d79dc6da8e.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-60e1d8111d5fec5580da9105670e78a63287732e.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-629ae1554ea01c67fdedb7874de4686f6c30b6e3.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-63c3d4b45af73dff54258c5a5cab9e3d828cc766.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-64125575d05a0aedbfe187ef0f95431229c5aac8.rb +0 -42
- data/lib/one_gadget/builds/libc-2.21-6980ac7f9370d2bbb2aade5ceeedc8afc4f02f3e.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-7b173624b62ee3bd8049bdeaaff990839eb4cb36.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-7d672538d6a08ce14e4bd6e931392bf63156f490.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-7f4a3fabc90bc1e410fe6377e2a1826d426c8f57.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-80e8cfbc6550fde842cfb72ba97d916827d462df.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-82d7d2a5db69a59c01ca5d2a63250ca6a6bd08a3.rb +0 -52
- data/lib/one_gadget/builds/libc-2.21-834a46faae116cb9500c57d6c06e701f98a52e2e.rb +0 -42
- data/lib/one_gadget/builds/libc-2.21-83d46f5dc4d7894ea923bf566f6b38bfceedc6e1.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-847fa75888ee989393032f4ae5a133902df3e2cb.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-8626995277c9a0db7fec384061c564c3ea50eeae.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-86d752d92fbf1e8b558018e4b122dab52b304ab6.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-879c9c4ffc5aabfd0a9c9d1b1c73d5f1df969aac.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-87ded6f6ac3f40a59e17170307d0b15c1170552c.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-8acd43cf74a9756cd727b8516b08679ee071a92d.rb +0 -49
- data/lib/one_gadget/builds/libc-2.21-8e845b188299cb419b70cf5de27c22a50f776fce.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-924acd9c6de558f26574bdc2eaa3048b597f2e5e.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-93d704dff1ec8dceb660b58863d2a36afd52b66e.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-9595d37f80a7925dc75efa522c839df34edb4b46.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-9ac81172d5ff96f40d984fe7c10073a98f1a6b2e.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-9c764e8fb2df1bccb33ffedd92cd8659aab98e33.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-9cf342a68f1a7b4b6ba4df62667c5f4ee8cf7687.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-9d0884395161c74567d7fea747e15c9a31785e06.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-a0ccdc12ed6ad0d67778aff9b49abc3c8eb30b9a.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-a167f5367b27f9493cefac9b23e68f180239e96c.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-a1f20771562e9a58f6d2746d38a09694d4cbc345.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-a235f288513fa6064a856c499e0453f9f4a44f8a.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-a5c1de4517ba044d2f7cfa479e69f29bbc673c6a.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-a890a8ee268f8ae36ae0810b6eea7c45766b4133.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-a9274e5d52fbb32ba32bae055f69ba1741771e79.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-ab066cff9171d55efb0dd884d31c18682ae6922b.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-af2daffab6880d8bc68db4143643c132164dc7ca.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-b180bd3047be9b4b70fb28455365546001b76e85.rb +0 -42
- data/lib/one_gadget/builds/libc-2.21-b440183d6aefac5a9259f6e2de824e43e85ed341.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-b551bf2740c7e79d1722776a6e0d35d65885d037.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-b7ac9e99f0fc2fb83f98b6a01615c0508de638a8.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-b8c6428b947bad767595961d6cb907493073183c.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-b8daa3ddab3acf64323b47fee32338d5c9591c4d.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-bbfccd958f34a2292058d60a0ddf19e1fcd4ec1e.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-bda2fd9acb85c5de61a1d4c7e2098fce25f3199f.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-c164b79c008a3ad0c2f0277688274a0c3c98e79b.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-c2f12c8aed093770731d57b19dc039c32423246b.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-c3318940121036465913d946fa62fef61459b68a.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-c4969c549a0d0099304108e50a77ff68602ed922.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-c51ca19ec6c53db97a15c67eea8ed00761570689.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-c601601a621be82612e36dd2a981121c141c72c9.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-c6654d8229ff494d5b5c067e8a1dbf184fcdd57d.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-c91d043eaeb023885cdd80a3c0872d9fde9867bb.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-cb732feec2d8bae5ebb5d072a86cd31aca65f89b.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-cf580407d98ed9bec9c92c1ae2241eca8604e4d5.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-d0cbed817be7f8947339e1796d1964567e9dfe96.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-d1c4dd44416a5a2781b37f7d9111961c8dc58583.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-dc53884306f13d86e310d893433556d93ef7facc.rb +0 -49
- data/lib/one_gadget/builds/libc-2.21-dc70ee31ce02e89d989cb38dc885438e19dc5919.rb +0 -49
- data/lib/one_gadget/builds/libc-2.21-e174b9dc46c7d38d1f153f2a4f9c059484042cdc.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-e3a06c9d90272ed9dd49863667de02579971fefd.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-e6f442dc2d29e0e16cd34dc787d3c95fafeb90cc.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-e91a3a679d219196e597358caa46469961c471fd.rb +0 -42
- data/lib/one_gadget/builds/libc-2.21-f08b44317fec610d418f62d5d24fafaec0510353.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-f0c24219cbba0605e39e02123398437c5dbbb104.rb +0 -51
- data/lib/one_gadget/builds/libc-2.21-f233903e448d3ae08e72a23b0e742ecfc8b6ccc1.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-f5043f1299e2b98ddf8a1ba08f731f260492601a.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-f9e9b2f3225a520c823f0d81aea92a3dacfd621f.rb +0 -46
- data/lib/one_gadget/builds/libc-2.21-fe668be19c2dadb3cef5e6eafb6796acabf0b8f1.rb +0 -49
- data/lib/one_gadget/builds/libc-2.21.90-d8785e62882096798b9a47645c401e2db0c3da87.rb +0 -54
- data/lib/one_gadget/builds/libc-2.21.90-ec2edee6fe6141b914f74b6d3541e986c1995420.rb +0 -54
- data/lib/one_gadget/builds/libc-2.22-056b23405739592e947a92cb210791fbfe9d9938.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-057feedce849edba19d94bf3920903b4c297e249.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-06a01f4986991b8605b775bd21c3829c071c7e01.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-07627a0a76d4347858dc9b2533aac197920feb67.rb +0 -42
- data/lib/one_gadget/builds/libc-2.22-079d0ce21fe81c5c95f687db4b944d28c121a849.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-0f1e39397cbf59f35018306725336d275b33fad6.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-111a78efce1a05c176c84381f9a8687564c124dd.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-11c38e8940f7cd6be485bf6903fdb169d71617dd.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-121137de182d11744ae6be8683de568a64edca7f.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-124cbcd567a508befc4d08238d209749a6f81ef6.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-13fbe87df7583cb37d64da775d5298d139d6c645.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-142110382cc91407cee827f639c811fa41aad081.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-157a6d46c53ff9cd3176239d342644bd34cc9e6a.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-172387e0713d81467e907f48691fd8a3a9d9b745.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-1853ca84fd72235c89ca6c71dc2fd586035fb508.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-18c9fd18d79dce6408c752dc974b0b895286f861.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-190d9018168d767820b7fc6fac5cb62d1a40d819.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-1c3905611074ae1c586d90e5312e49817dfb1454.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-1ef0e3b0b75b086f54c2fb8ad958db46c199de28.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-20d1cd3333f60c045ee0d71cd32ac74a6b721b85.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-22585efc70794668f1b7f01f4392daef49f476e0.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-263aaed35e720148fbc396f8311138d46d099d7e.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-26ce2dab7bee96ee1c9d290100ffae593a644ddf.rb +0 -42
- data/lib/one_gadget/builds/libc-2.22-2881424e7394f45d7b7e4b9d7bee0ac3336fb53c.rb +0 -42
- data/lib/one_gadget/builds/libc-2.22-291a696d50e945b55f27ad1b7055adb4d94d611e.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-2da1c94523e9778bedccac2922cdb5582b3bab99.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-34701c7aa9501f113595ba20117d03fbab4a7edf.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-34a1e432068988d1d05ded9a1ff3a5a4d9ba957d.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-35dad9bbfda68f466fdb0784359dfa8be8f2e636.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-372f377ce426f864bf68f2a32cd703d595664885.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-37acef3594b4fbe5bdb37cfab88155ea223bac9d.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-3d8a83ac6553abcf5e18c10a39e5020352cf1fb2.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-3e86d1920edbc9fb506c499301164f3920a3e141.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-461f342f6e88de1977eb60aecd9554335b3602be.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-49c585626bc777823124cce965150be221723855.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-4bccfeb62282482e2bb5fe47523cc26cc9891d9d.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-4e7b4e6104632c48765f27c7e53ce073c73b03c2.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-515163d8d5ee351c62d0ef6438b1cb492b882128.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-53e3e8ce017c356969e16f4bb329fc45e948a045.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-5f40eb5a5f32b9824ba0cb2547ffb2b6964f6414.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-6281300a16a309db14773233ab085dadc65f0081.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-6293d42412b9a87b7233bcb5f5cbf4496c8c90dd.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-661a81563d20e7823c63828ff38348ec1b80adcc.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-6670937bc44571ec34ab812a7a7d2ce839a382ad.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-669abe13c2975dbdc59eb4cf3a6e9bd28ecd376c.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-66b3470fd1603fc11a54f8f1c69b81d85f2f0074.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-67222017b4ae03b81a41387cb81b0814654e2dd6.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-6758f608b9326b54464784a72149d9991ce839d1.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-68afe0b2e7d234d495d38ec6bf35257a42f229de.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-695c07ac1193aad1d8ee9871ee425e5653408a4d.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-6c9019c65a7a835172e1e88ca2f88d1f14fb23e1.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-765dbc5efb8e378d36cd0742b6e5a65bd9046168.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-775336aa55e307ff5c730b375f8220b85ede2e34.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-7d3f57aba43d34ae3cfab2df04a3050efbd1dfed.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-84681ac612616253b2eb8e99e1b68836b7d68cac.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-87066f8392926c00ab4a5969f52aade616c1e314.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-871cd1cac63b0dcd8f2cdd231291f9f89fe7c099.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-87e1ed146ef347cf326650e230524a6c8d4ed43d.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-8c48d3a9f8dea201de2948aa7f78c6a42ffa47cf.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-916b3d65c4f43150dea643a905c1a2a68efc3fb6.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-91dee95c3183246a5332357b814a08ba9c05d999.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-91fcf48a9dd99f320b205a2feef18c2edfdbaeba.rb +0 -42
- data/lib/one_gadget/builds/libc-2.22-92f57ef98cf5dc8e4d6b5df5cd1b9260b7e9975a.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-94075f4ca5cff8f90934c9e1706db8022e7d4ba1.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-94140487ddd020e65cb6c3f9ae09275ca91dc47c.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-94b271ac2dedc103ec8d042bb40a418a042dceb9.rb +0 -42
- data/lib/one_gadget/builds/libc-2.22-9686e55d792fbbcc0ae8589a69c8b15d2444ac65.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-a352f9564e9d19391f222c67e5c64e09f949df4e.rb +0 -42
- data/lib/one_gadget/builds/libc-2.22-a506f6e38353adbb19bd22872b2fa8831c32c63d.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-a5a6daa9eb710b5fc311bdd17696bb25e98d9dab.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-a61e9f882f22a77b803a1fa28912b2636913ea56.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-ac771fb8769897775bb6df04fe982d7a79684c8a.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-b213a4604fc2c8fd113ae890a97c3c2ad4022ceb.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-b916e3c1d80069d0209f6376b33e42b75ec49eda.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-b941d9b157b159697c7cbfa154c410b23be1a7af.rb +0 -42
- data/lib/one_gadget/builds/libc-2.22-bdbc01430dbd0c80011dea9852f3ae257bcf3138.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-bfdfa3833107e0041ab896c1dbfd0a4f1c4fec77.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-c2931cdba68412c1b871f960b4005f70847b29c3.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-c65d9bac0e2687bd08337088466a686c40479e5d.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-c6799f7a3df15cf4c4b5c273686e7cb3283e0337.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-cb354ede0283a824c81183b1ffb6add90255edb6.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-cee6e82b12f7c94f715fc96dcd4544a44997dbb5.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-d0516d4ba12ccc659906a5f122f8637279970bf4.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-d088eee45f6cbd649b53ae99b68a91823d86c6d6.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-dcc06a908986f225fded745f7f884bf50fd5b434.rb +0 -42
- data/lib/one_gadget/builds/libc-2.22-dd900e0adc14d176fe33f2b6e5d8dbe2bacb48d0.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-e1d7f9459324fd489e82a931f9bbe3b10cfc4436.rb +0 -42
- data/lib/one_gadget/builds/libc-2.22-e259f9732c7269eccd67dc7f8bbceded2a909972.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-e7e6d42611b69819d39439c2ee93305f6305ed90.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-eb0fe6bc985d025bfeeb207924823e7c2c7a77e6.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-eb2c0cc31e0d158b487d1010b30fa7ed358fcbd7.rb +0 -42
- data/lib/one_gadget/builds/libc-2.22-ee60bf5cd327f0aa534fd8c37a8733e942707a0a.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-efd6084786349d5763237b1caeb3d5d9f61dce75.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-f21f4b63fbd354522a1c37a982da46973b6a95ef.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-f43f58b45b8c7fe20d3c3c9f812f50a7755615d3.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-fa6cf8c4105217d0cf2609ab83ec3c9d4d3c5d41.rb +0 -46
- data/lib/one_gadget/builds/libc-2.22-faef9af5a88432766d76d7da2cf961c75b6e0e0b.rb +0 -52
- data/lib/one_gadget/builds/libc-2.22-ff7fbdaaef014460825b4ef5848e86834aa3880c.rb +0 -42
- data/lib/one_gadget/builds/libc-2.23-012683a92d161c37d51d89711c4870ba30904c3d.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-088165fba081e659b7ea6463eab7bcac70363656.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-088a6e00a1814622219f346b41e775b8dd46c518.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-0ae3de55854513a2a7d4979337176c0717efce8a.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-0c23056feb23daf0cb1d2f90e153b5f892df83c6.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-11ae3441756e6c2ebf5c962434bf9f07b3ea3deb.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-131c254aed46e6a24cb08f3abe802ea0ef50e5f9.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-1800a4bdb0c42a7bb7a570ed90724fa04de8a4fe.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-18f761287ed46e213bec29c2e440e73fd72373be.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-1b1d19add6d861e16e04e4b8e9864a7bc16c1327.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-1ca54a6e0d76188105b12e49fe6b8019bf08803a.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-1e80992437b5e1cb76bf56605ee8991e76e85f69.rb +0 -42
- data/lib/one_gadget/builds/libc-2.23-1f1cf1c7ff279aa37add352423fd850e06be1098.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-2052ef79d1bb69a8f5c5340eee984f2659b75e39.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-233dde1d38ecdc54bef352f1b5ee4e007ec9df26.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-2891dc7656eed3d8d4f255c41ca6a28caf532079.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-29e38445a740bba5a77b86691e3c51a7e48dc79b.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-2aedae2bb27ac85cf14c36da79747dd88bb2b633.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-2c4ed1bebc9ede033fbbb422f84da9a93cacd88e.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-30773be8cf5bfed9d910c8473dd44eaab2e705ab.rb +0 -49
- data/lib/one_gadget/builds/libc-2.23-336976f90c600be7c95a68be6c2f0652cc22347c.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-3612e20f3e2705dcf8fd81ac494a0e20b9e16764.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-369de0e1d833caa693af17f17c83ba937f0a4dad.rb +0 -49
- data/lib/one_gadget/builds/libc-2.23-39fa51127c50ad10c32a19e0a1a587a05b8d450b.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-408d0e9e7720923def88a5aea9988cbaa0142b64.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-414c35398dffe74ac9ed945e176d8fd99446d9de.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-49bd3f83d9b34b9f043e68624271c5ef90820021.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-4df2711ee6c911fe238cf10f43b08099201e57ec.rb +0 -40
- data/lib/one_gadget/builds/libc-2.23-54128118082b61b311247f8fa6672b8df938748a.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-5d45b750d14b7b6ea11c2b57c73746b61592437b.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-5d511bfe32efcb567933d13ab9dc87f0a02d3651.rb +0 -42
- data/lib/one_gadget/builds/libc-2.23-60ea46dff84c256650d44c1a32ca609168bee1a6.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-635101aec7213fdc442419bf65a92047a862ff32.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-6462f7cc95a34bd03f42ad150211db68fcf27d44.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-697f7d05a70ecde852a2eed480bea6a6779b4a27.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-72ac40020fbf2b0b6a16b5ff4e0efdff1e71fa92.rb +0 -29
- data/lib/one_gadget/builds/libc-2.23-7598dcdd3567efa7befebc6d97977e83d758c649.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-78e2b4f1945abc8f1db6d82acf6d1ef593d01e06.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-89cc3bb9361ad139a1967462175759416c9dc82b.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-8b51f0e99fae7170859f393ba0118cc955c337b9.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-8c436e0b35bb19702fba4b5effb3f94edecc3c46.rb +0 -45
- data/lib/one_gadget/builds/libc-2.23-8ccf267bc9d0f4706559d85cbeb704782dae9ede.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-946025a5cad7b5f2dfbaebc6ebd1fcc004349b48.rb +0 -40
- data/lib/one_gadget/builds/libc-2.23-94ab3e046784e5da65532a9aded8555c3bdc3778.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-9600225be309ec27d01385dd52df9196e86ed3c0.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-961068caa1dcd5005b27c7c6abe32e94102eae3f.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-96f8c796364693379a2a0c753133fecbd1c52434.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-99de357f509368d89f95b0e92b0d5227e8b8addc.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-9a6b57c7a4f93d7e54e61bccb7df996c8bc58141.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-9e85392b0c4e3e2c8fdc063dfda4c3d0e0156e54.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-a594a9c73a6067ab00a0f8db78d665be147acdc1.rb +0 -38
- data/lib/one_gadget/builds/libc-2.23-a6fe771348e04d552fa1e6dcaf610699719bdd0e.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-a71b122dbcd9503767b6f176d7745749fb4aaf89.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-ac333186c6b532511a68d16aca4c61422eb772da.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-b078f2c07ab3751dbcbc3fbd2a11a8a162c35576.rb +0 -42
- data/lib/one_gadget/builds/libc-2.23-b2994712adbb4db7b768554149443ddee829cb91.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-b5381a457906d279073822a5ceb24c4bfef94ddb.rb +0 -49
- data/lib/one_gadget/builds/libc-2.23-b8aaf9d529588ee96e6e399ab8a15cbd58ab8b54.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-b978afd6ca2cf3f8768d6055581ece3c3e7d7b27.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-bde4e8b0230b1b474cd8a1ca6e9f81bb2b438914.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-c0a199289365088782dcaceab6a81721d0d8ae0c.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-c0cc47b9f732f8150eb2bbfb18d0d60a7b3564a9.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-c4fd86ec1eed57a09c79ce601f6c6e3796f574df.rb +0 -49
- data/lib/one_gadget/builds/libc-2.23-cbfa941a8eb7a11e4f90e81b66fcd5a820995d7c.rb +0 -38
- data/lib/one_gadget/builds/libc-2.23-d10743a8f3a9a7a2e9807b1af78026c0b5363f6b.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-d10fbfd9328f5ffaca50aa93562cb3bfb618fbcc.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-d1df77a9cc06ba60c213852b01bc24282e49696a.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-d26149b8dc15c0c3ea8a5316583757f69b39e037.rb +0 -29
- data/lib/one_gadget/builds/libc-2.23-d2be9dbf540a6ca8b559ddfbd17f47b53e84ba8d.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-d61f734abbd95e2ddeab19046141020d00aa2aaf.rb +0 -42
- data/lib/one_gadget/builds/libc-2.23-d67449e7e9672f074e72fd37ffa9335c6c483bc8.rb +0 -43
- data/lib/one_gadget/builds/libc-2.23-dcd02728e55c40d4a4b0d1482abe75cf2b853c2e.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-dd5192a769e33ed6ca68a6ab5740ff9e8ec678a7.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-e388b883ef50189a2eb5e6c7931c52e03761a7fd.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-e7b96675bca2ca2e2e746ebcb706d9236178564c.rb +0 -40
- data/lib/one_gadget/builds/libc-2.23-e7c57c7dc7a4d8ca964993f19fd8b0fc4f72b617.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-e8df4c3d58e99c87f9b22655e9180c7ac31cb44f.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-edceed30099baad51871c5fc277daf9b74dc726a.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-ee0b5a0f65e25f536a868d84e1d912403b56e742.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-ee525f6c9b018c094beedd17b87a4573d7ea7e2e.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-f0c2e03955a845c9a7f9c85228b12c9700d66c50.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-f202f01f10e845e14e7d8ca44cf5d9e4742fca6a.rb +0 -40
- data/lib/one_gadget/builds/libc-2.23-f2f2f2af4f3e8597cca1fdff1008a834c78de42b.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-f303ce47c562225a4f3475170333494965760a6a.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-f33f3937b8f458ffd96cf10a22deea1bd85ac61a.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-f4490657edfef482025fff60e85acd5928e0d05b.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23-ffb3662a7bc5e136fa8f464fc14ec23efb8d1817.rb +0 -40
- data/lib/one_gadget/builds/libc-2.23.90-203feaf8a7e40cef8a75568a406a22fdeda94f8b.rb +0 -40
- data/lib/one_gadget/builds/libc-2.23.90-392b643118f919a1827477e978d9cea2b09a34fc.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23.90-52e411aed4443fbbcb9706fffa2362e4a108f28f.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23.90-604d873b711edeb971328656c4c17bbc15c7427f.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23.90-63fbdf3e3928f6dc2bcac10e28aa233a625a3d27.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23.90-7439c4311f0dd7307f78c1b5530f52a590230e45.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23.90-b23fcdbc7bead3c59600e0a6acfe9220c42e1b93.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23.90-c5238226a11b5538d56c713c97db1a36722e6322.rb +0 -40
- data/lib/one_gadget/builds/libc-2.23.90-e1b43c632d35649e9b128528994426e34ae40d1a.rb +0 -46
- data/lib/one_gadget/builds/libc-2.23.90-e9ab765fb32204de2215d6117dcbc1fb92f26b9a.rb +0 -40
- data/lib/one_gadget/builds/libc-2.23.90-ef3765f1e2595771cefa96291c647d0eff8a81e0.rb +0 -40
- data/lib/one_gadget/builds/libc-2.23.90-f149edaf4dee34b38f831bf0914af2ecf0a1a317.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-024385baa7aaf9c62ae336e896bcf245dda0fc01.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-04b6f2a9e244a36a9f107febf832bbadea9f252c.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-0b88546716e2f1924986596ee7cc9215df89c6f5.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-0c11fd6524ef7a7da877f940fba181ed746edb0a.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-0f523a27b7460f50befd3d281238c6f189c92d84.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-1c3ec3a011b1005cb1c2c32fc6dbc4e6e9cef4bb.rb +0 -45
- data/lib/one_gadget/builds/libc-2.24-1da8c8ac3c71c30040cf58b563ae48e39bbae86f.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-1ddd6fca9cd87c66e6a19df018f5992e9fa6453d.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-1f253610e390e5237eb7949212e08166fba3ca4b.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-1f7bdfb9a24714835cee6e6597ea7aa782821371.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-206b2bb216b6cdb6b1be565a6fcd29f3862db060.rb +0 -52
- data/lib/one_gadget/builds/libc-2.24-20cbb98b62f46ee16b182d1b357146577c40ebb7.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-236e52c7896f5403d8065cf3965fdb2d31d56891.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-24b1296687d36e24bd48b8c412157d94f074ecc2.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-253debb34a7d493c0b8e2d6db2079e3d680459f5.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-26e84118fee5788eb5d8dda66b7e7f029d2c7800.rb +0 -52
- data/lib/one_gadget/builds/libc-2.24-2ee9e1740da616757f2e6d5ba58576c0c7302fff.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-30acfe88fed30ad3f8cb88425b80ea96899655aa.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-33801a6f55c5c3cdf7d83590b433adcbab08a688.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-349119af9e223829ea24f6b7226bdff0182e73f2.rb +0 -52
- data/lib/one_gadget/builds/libc-2.24-35764bd71c58942e9131e3547b7c343098212d03.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-389260a6758c3f1dbc741c197e747341ed277cd2.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-3b24749bb184473f81819312e3d86903915eaf65.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-3ea4c67e60e49b8164b692166115bbf927e521db.rb +0 -45
- data/lib/one_gadget/builds/libc-2.24-3f89db5baa7e88162377fab6a1590f732a355401.rb +0 -45
- data/lib/one_gadget/builds/libc-2.24-3fce81d490804af9759c70bf197380bc05a584c2.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-43adbb1e7368c94fba1ba9020d8ef0808bff5bc4.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-43faee19af5e1d20163c6492862fca1a4146b668.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-45adab2b0ad8604e35eeea0b30d6ec1ad11642af.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-46bb6303e03d21ec9b79334370e1b39a51f883b1.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-497931f8d2346a6d0e300a65d8fc6106c6c88c15.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-4d0bb76f378375d584a373929f6d5b695f53db99.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-4dac034d41342a93593b3e18aa05f4b69c2909c9.rb +0 -45
- data/lib/one_gadget/builds/libc-2.24-4fa7401566d6b3e2c7ee5df3b4d85a01f85b595c.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-5284cbfbd543755c2fa4df64a20ccb14e7ded30c.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-53bab59259db20458dc7d753dd2950916f6e47de.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-568d20b7e0d08bc282fb42ae405c7054e4209ede.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-595aeaf311d354bbcd3f311e218f6b40fe711046.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-5a75868ead9dbb03eb4d668ff2918f341f949387.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-5b72576ff331e93852355123afecdec70fd247b5.rb +0 -52
- data/lib/one_gadget/builds/libc-2.24-6194e9b483a157d38ab633a5bf3c37f9ed6b7e04.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-6a5885d005a0e25074da79038453af3c1bbd16a1.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-6a6d4ead4f4d511091e34c8baebaab04b97913e0.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-6d3ffad6407f2ea71f9121d761426f3a917f4216.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-6dd40dc4bc5ee908b857c00c1b2a00c58ebc1596.rb +0 -45
- data/lib/one_gadget/builds/libc-2.24-756da9d194e16bccf2c342a12d8ea01e677fcba7.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-7a7fafb866f1680656f7343e9d38fa76986bcfff.rb +0 -45
- data/lib/one_gadget/builds/libc-2.24-7e0f1b3a8efe3adcf3080b20447ac4bd47aaf489.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-805005b60c0c3e63eb593a5041fc9f7803e3b87d.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-856e263a6c8431b34f1ab69b55abbe453a135c52.rb +0 -45
- data/lib/one_gadget/builds/libc-2.24-8a683c08dbc27e1ceab72d87cd00b5d6208f7620.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-8eb1e49d70f349433d3d4a712b4746c73481012d.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-91b0020fb992b67e3c368576943fde81e4ec7ec9.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-9378343c5442ef04933110045638b2daafa16098.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-976f2a94a6a1db73c935bce8db1e5a28a46d8535.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-980296526a2060e4e53dfa8ded76917c3f9b851c.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-9a006ea92b333aa035fdecc8dc0b28e1d04edd37.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-9ae48d5843f29af366655a00fb0636db91328abb.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-9b7db6636c9f2f03c9523b02db229741e2250550.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-9e638553dc7a08748d03c42455ecd6bb9bd8f8cd.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-a4c01d397b6584f7040ef266b16a5d4da0b7a087.rb +0 -52
- data/lib/one_gadget/builds/libc-2.24-a51ace667ccae6a8887837efb18259a906704bed.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-a822e789c3428254f309f81600b9e5ae551a3461.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-aad7dbe330f23ea00ca63daf793b766b51aceb5d.rb +0 -52
- data/lib/one_gadget/builds/libc-2.24-acd08eb60d44e32e85530f0537d46f8cd422403e.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-b81a06f0ac241c4aa8860602d9abcc903adbb675.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-b8a944084a03aec90d871ca8a5fac48801cc064d.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-b95a6603e6113924f82409ff65e6ed1514afd3db.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-bb0d156759d9bdfec06f5decd1c03785bcbc0ba1.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-bccffaa4c34e166b9c09e8802ce09989d1e8f46a.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-be6d412ecc4816c46eb49e750b02f714a9131c4e.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-c116abd24efe14f6dc2f98cef3d673934f6d66d0.rb +0 -42
- data/lib/one_gadget/builds/libc-2.24-c1fd7dc1c8a6915e5f7a7f24a5901a239d473f08.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-c451b072ff6aa62ba6e054c06e633fa297a3a7eb.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-c5a0679981d0258465ddba6b975c9340cbf20d22.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-c62f8c5ce9f5304f054922d39d0c0fa94d9e9531.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-c7d3ac73ddd0865d350bd570771cf3a964a1ddbd.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-c9133ae8d86b5d469422e0c51a19e7910ebeae41.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-cc7e13208dfc283e75a9491f8507429f647eac05.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-d2a8a8ac188a6c3bafa4813a3d2789240ee49489.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-d67af93d54c07bbe5d252ef6f176ec77b866c786.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-d8ba284042773fed1189bcf927960999f4c1de55.rb +0 -45
- data/lib/one_gadget/builds/libc-2.24-da518391ad926bb7535f2095df0be265180eeed5.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-dab413a7e3b33dde527af308a09a55ade6b41e84.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-dc799b9197929f88cebc6aa72e3be388cacfb1df.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-deefae132c5a39ba892bc189edd91f73c1ea1f14.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-dff06414a29b97b865ef938e06a7751fe8b1b2d0.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-e0206d9b8d7ad3abc39a94dbc37bb3b42c9f1345.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-e5dc6c0caa39828fa10ed37e642723a581acdb6d.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-e7de387eec0b57da248cc4e74edefcfcb55bd204.rb +0 -45
- data/lib/one_gadget/builds/libc-2.24-eaadebbded05e24bc9853c39b2241436f96d41ef.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-eb6b0b1e1c5cf4579e66eadb083885884dc0b648.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-f5ffc1b2b1282d79097f4ce84b519d326dce1247.rb +0 -40
- data/lib/one_gadget/builds/libc-2.24-fb431a54ddae802fd1c59850cbbc408a05d3deb8.rb +0 -46
- data/lib/one_gadget/builds/libc-2.24-fc121fe8b1eaa6ea0babbc3b8ce6e12adfcc3719.rb +0 -45
- data/lib/one_gadget/builds/libc-2.24-fe976940471b3f683eeebb268f095b7ff1c898c1.rb +0 -46
- data/lib/one_gadget/builds/libc-2.25-58c735bc7b19b0aeb395cce70cf63bd62ac75e4a.rb +0 -52
- data/lib/one_gadget/builds/libc-2.25-912fc00c0da67045111928bd5c8a350e5be18c41.rb +0 -52
- data/lib/one_gadget/builds/libc-2.25-e5eb6347f0629b37bf698200022a683b7efb10ed.rb +0 -46
- data/lib/one_gadget/builds/libc-2.25-eae5038c2b9ae67d9eda345aa9fbe0a7185ab436.rb +0 -52
- data/lib/one_gadget/builds/libc-2.26-1c39b3b3faa2a2cbb0fa0b6845b29332562262d3.rb +0 -52
- data/lib/one_gadget/builds/libc-2.26-2104f3d4ad5cf68603afbe7ba1a17f5ac99c5988.rb +0 -43
- data/lib/one_gadget/builds/libc-2.26-3b850bf60461afbdd83317b248b3f687e52ff18e.rb +0 -52
- data/lib/one_gadget/builds/libc-2.26-499b381aaf00ce85ee5d4a12770ea369b30d2a41.rb +0 -52
- data/lib/one_gadget/builds/libc-2.26-4cc84abfe1fd26a485fc2b1b954c281ce9d358fd.rb +0 -52
- data/lib/one_gadget/builds/libc-2.26-4ea852c9d6a5084b8b58509b3b3d37d3d8cddb90.rb +0 -52
- data/lib/one_gadget/builds/libc-2.26-6d2b609f0c8e7b338f767b08c5ac712fac809d31.rb +0 -64
- data/lib/one_gadget/builds/libc-2.26-d4dd444f86cfc66c97c5e3eecb69fc5b86ea6539.rb +0 -52
- data/lib/one_gadget/builds/libc-2.26-ddcc13122ddbfe5e5ef77d4ebe66d124ae5762c2.rb +0 -64
- data/lib/one_gadget/builds/libc-2.26-f65648a832414f2144ce795d75b6045a1ec2e252.rb +0 -52
- data/lib/one_gadget/builds/libc-2.26-fb587bc4429e7d1b0de31a3b9ee8ae78ee797eb0.rb +0 -52
- data/lib/one_gadget/builds/libc-2.27-06a8004be6e10c4aeabbe0db74423ace392a2d6b.rb +0 -47
- data/lib/one_gadget/builds/libc-2.27-0e188ec5f09c187a7a92784d4b97aa251b15a93c.rb +0 -47
- data/lib/one_gadget/builds/libc-2.27-14cd15d2eb0bc25c89045873cf807f7533e4788d.rb +0 -47
- data/lib/one_gadget/builds/libc-2.27-2d1c5e0b85cb06ff47fa6fa088ec22cb6e06074e.rb +0 -47
- data/lib/one_gadget/builds/libc-2.27-4b06dfe2c46f5e537b3d0a310ab0bda11bcbd681.rb +0 -32
- data/lib/one_gadget/builds/libc-2.27-71f0f3074a929e519e85f6a5c03a7d1fd976bfe4.rb +0 -47
- data/lib/one_gadget/builds/libc-2.27-73cd526a553b3b47c6dd0d6dc62175263cdc646e.rb +0 -41
- data/lib/one_gadget/builds/libc-2.27-9dd0bb57f81671704475d1e5163405f7b4d4b454.rb +0 -41
- data/lib/one_gadget/builds/libc-2.27-a5e88eb34369fb48113b9eda7a92e07b372f3cb7.rb +0 -41
- data/lib/one_gadget/builds/libc-2.27-afdabd83c53f0fc60a059c3305c4f3b57198e51b.rb +0 -47
- data/lib/one_gadget/builds/libc-2.27-ba63c4a5f5c2b51e6e7e5df94017dc98b20e397a.rb +0 -47
- data/lib/one_gadget/builds/libc-2.27-cc6dd208d3af4bc505f599a90ef8af52f16116e4.rb +0 -41
- data/lib/one_gadget/builds/libc-2.27-ce450eb01a5e5acc7ce7b8c2633b02cc1093339e.rb +0 -47
- data/lib/one_gadget/builds/libc-2.27-cf1599aa8b3cb35f79dcaea7a8b48704ecf42a19.rb +0 -47
- data/lib/one_gadget/builds/libc-2.27-d1237c55f6778f53b369cf22ff81979b2fe340bb.rb +0 -41
- data/lib/one_gadget/builds/libc-2.27-d3cf764b2f97ac3efe366ddd07ad902fb6928fd7.rb +0 -47
- data/lib/one_gadget/builds/libc-2.27-d831493b564a8632d1da5cc0fe44af45713cfeb6.rb +0 -47
- data/lib/one_gadget/builds/libc-2.27-f4929d2a8af4629477103af6f1cfb3bebce80883.rb +0 -47
- data/lib/one_gadget/builds/libc-2.28-26b3c1a40c8a0bd026975a262774bf52aec55107.rb +0 -44
- data/lib/one_gadget/builds/libc-2.28-44f5a3efb0e5733fa9d97e690cb36cd4c682bcdb.rb +0 -41
- data/lib/one_gadget/builds/libc-2.28-5784a31a1c26f6d2157e585205ebb63dd19ff90f.rb +0 -41
- data/lib/one_gadget/builds/libc-2.28-5b157f49586a3ca84d55837f97ff466767dd3445.rb +0 -59
- data/lib/one_gadget/builds/libc-2.28-65ed813688b116fdce9e866ad2fef2e734167337.rb +0 -50
- data/lib/one_gadget/builds/libc-2.28-6ee9454b96efa9e343f9e8105f2fa4529265ea05.rb +0 -50
- data/lib/one_gadget/builds/libc-2.29-2195ff86b0ddead43a7c08f46b95b0887cdb96fa.rb +0 -32
- data/lib/one_gadget/builds/libc-2.29-5b7203920d3d786ac40af8e0d5104683335f11be.rb +0 -74
- data/lib/one_gadget/builds/libc-2.29-6d8abbab5b004d65bfdf909fd4982103499cd1c9.rb +0 -23
- data/lib/one_gadget/builds/libc-2.29-85d5020664b11fd2708859275de41d5ab9d104cf.rb +0 -74
- data/lib/one_gadget/builds/libc-2.29-9a1100ebab15d22bbc31836b0656d2fa5a6a1252.rb +0 -23
- data/lib/one_gadget/builds/libc-2.29-a8af6c81cb28a37bf3a546970bf64224402f8bd4.rb +0 -74
- data/lib/one_gadget/builds/libc-2.29-c19c88c33b60742ca906e0f9f96fe31b8b79ea9c.rb +0 -74
- data/lib/one_gadget/builds/libc-2.29-d389232dd725501db38f08e2aca0b44ab3af314f.rb +0 -23
- data/lib/one_gadget/builds/libc-2.29-d561ec515222887a1e004555981169199d841024.rb +0 -83
- data/lib/one_gadget/builds/libc-2.30-00854a16b9b4b73893627ccb730d97907837e320.rb +0 -26
- data/lib/one_gadget/builds/libc-2.30-135c0b4a030ec9b6306ed6b621e1e0dedfd614a3.rb +0 -23
- data/lib/one_gadget/builds/libc-2.30-2155f455ad56bd871c8225bcca85ee25c1c197c4.rb +0 -107
- data/lib/one_gadget/builds/libc-2.30-33d1f350f13728651d74dd2a56bad1e4e4648f5e.rb +0 -74
- data/lib/one_gadget/builds/libc-2.30-3f72ae987c135c35f2e721c61991ec46df8816ab.rb +0 -32
- data/lib/one_gadget/builds/libc-2.30-4ab6143b59defc12c3d50d176c78b4e6e5a2c179.rb +0 -23
- data/lib/one_gadget/builds/libc-2.30-71373fd43ed6a83e0aab983c3a971e32d459e15f.rb +0 -38
- data/lib/one_gadget/builds/libc-2.30-75e3e2d9596aae251330ae7ef3f91a847fc62641.rb +0 -38
- data/lib/one_gadget/builds/libc-2.30-7a1e2ae26cef50584af2c60a5ad3a7ae3e9b1446.rb +0 -74
- data/lib/one_gadget/builds/libc-2.30-884362aa891ab565e4cf904cd60be984a7941acd.rb +0 -26
- data/lib/one_gadget/builds/libc-2.30-93abe093a13b9b10f83b5e6de4a63a0d29175c89.rb +0 -32
- data/lib/one_gadget/builds/libc-2.30-bef538440d5b4b0ac6b4575acb3aac4a65316061.rb +0 -26
- data/lib/one_gadget/builds/libc-2.30-c0a4471ee8f24f2ecc0ad1ccbd4633fa6fa36654.rb +0 -26
- data/lib/one_gadget/builds/libc-2.30-c60a7605ae87b9b40426e3123b12a91bfe2036f3.rb +0 -26
- data/lib/one_gadget/builds/libc-2.30-c841931c41e7affad89dfe70a45f01afafa9a37a.rb +0 -32
- data/lib/one_gadget/builds/libc-2.30-cbe9cff3c43b979739af1681b61a3d585725577b.rb +0 -107
- data/lib/one_gadget/builds/libc-2.30-cd779a06a5df37cdad8dfcfa12cb2c8db36f62f4.rb +0 -26
- data/lib/one_gadget/builds/libc-2.30-dc43d2c2d727158000c9bef6d47e17722d41ec2d.rb +0 -26
- data/lib/one_gadget/builds/libc-2.30-e3e238714a7998a958651faa0a5e97fafa229ec3.rb +0 -26
- data/lib/one_gadget/builds/libc-2.30-f07144cc3d0ac50415f3a2e061be6da672c914ba.rb +0 -74
- data/lib/one_gadget/builds/libc-2.30-f44469d65b4efd2e5951513ed7cbf773657f1283.rb +0 -74
- data/lib/one_gadget/builds/libc-2.31-012f3f1e614cb9c829b8d1590d228cc6a9506a03.rb +0 -26
- data/lib/one_gadget/builds/libc-2.31-05dd8f45f3f82869e5ca8cb214475816e41f469a.rb +0 -26
- data/lib/one_gadget/builds/libc-2.31-099b9225bcb0d019d9d60884be583eb31bb5f44e.rb +0 -122
- data/lib/one_gadget/builds/libc-2.31-0d1b3211736c4ca528a32ea0d565d41a2ede3b58.rb +0 -80
- data/lib/one_gadget/builds/libc-2.31-0df979b8b244294bbc29bbe8f7f6dd6bf89c6820.rb +0 -26
- data/lib/one_gadget/builds/libc-2.31-12e412d1938ec3ff79751f0e85f31bc52f7e3722.rb +0 -80
- data/lib/one_gadget/builds/libc-2.31-2886817dc06a87bdeef50544c0d6c12de13a8148.rb +0 -80
- data/lib/one_gadget/builds/libc-2.31-4d4d0853eb075b8b0cfaee0aee7cdf4254a3e877.rb +0 -80
- data/lib/one_gadget/builds/libc-2.31-58a58f2fcdafddacb4a08439ea2ee163ff645d1d.rb +0 -26
- data/lib/one_gadget/builds/libc-2.31-634252e0c5f8b03957a2e529719d4101699a894a.rb +0 -122
- data/lib/one_gadget/builds/libc-2.31-6b143503744b9d6c22e479941488d6a9e6e3f1c5.rb +0 -26
- data/lib/one_gadget/builds/libc-2.31-6c6ea8a57519f219a10c9d6a6d199dd813680226.rb +0 -26
- data/lib/one_gadget/builds/libc-2.31-6dbad1709854c527793f6401666e45a791b7c793.rb +0 -80
- data/lib/one_gadget/builds/libc-2.31-6fe07009bc57e6917030d052370d8bed414dd7c0.rb +0 -32
- data/lib/one_gadget/builds/libc-2.31-78702aff0796336ccdd432310ba6f84c728c9b3c.rb +0 -26
- data/lib/one_gadget/builds/libc-2.31-85d7bb2dad0f8172d1c02c0311a00c4695933beb.rb +0 -26
- data/lib/one_gadget/builds/libc-2.31-8614995a8f0152ad4b1b45e28070588546ca7ac8.rb +0 -26
- data/lib/one_gadget/builds/libc-2.31-8629fa2eea681f639a0c18305d4548850dde3450.rb +0 -26
- data/lib/one_gadget/builds/libc-2.31-94761ae31db09ce9140ca55cb6986a5ea9110abc.rb +0 -80
- data/lib/one_gadget/builds/libc-2.31-a9053cb60c51ead85c68c941ca4d02f9381844f9.rb +0 -26
- data/lib/one_gadget/builds/libc-2.31-b61d34c10e608722a90d339bd9a7ff28b18cd501.rb +0 -23
- data/lib/one_gadget/builds/libc-2.31-c9d56de82ddd00d822d6100034f3075ef1709cd2.rb +0 -122
- data/lib/one_gadget/builds/libc-2.31-cdaf4c7a78acdea7ede78ea0240a3d8d5833110f.rb +0 -26
- data/lib/one_gadget/builds/libc-2.31-e67e80e70619717709e3180e552a11a285036a54.rb +0 -80
- data/lib/one_gadget/builds/libc-2.31-eb3c5cf73a0a6b7f2b3895a56dbc443806700971.rb +0 -80
- data/lib/one_gadget/builds/libc-2.31-f3aa1ef59e51e64ff8438f46d225e4ae256c1b03.rb +0 -26
- data/lib/one_gadget/builds/libc-2.31-f3ff3fda80b817c464a56eed59ff09dc864eaeb0.rb +0 -32
- data/lib/one_gadget/builds/libc-2.31-fb7626dd8b8a50f7685920487e992528834f6775.rb +0 -26
- data/lib/one_gadget/builds/libc-2.32-0e5c8d8738927eb715941480b3726fa764cc50ed.rb +0 -29
- data/lib/one_gadget/builds/libc-2.32-1e3fb06b8c86b5e282e3e11bd207d399fb4952e2.rb +0 -122
- data/lib/one_gadget/builds/libc-2.32-7ec3e74da842ca3c6a9ba20b21303ce1bc7a45af.rb +0 -122
- data/lib/one_gadget/builds/libc-2.32-7fba7abef941659c229c2636aa0905c28652ee3f.rb +0 -80
- data/lib/one_gadget/builds/libc-2.32-82f6b69e698bb579baefb35a3fb0346632fa2c4d.rb +0 -122
- data/lib/one_gadget/builds/libc-2.32-87f011a7e4cc3fc60a54d0d3dd690e7438decc8d.rb +0 -80
- data/lib/one_gadget/builds/libc-2.32-92199dd358616182fb49c992330fb05e42eaa423.rb +0 -29
- data/lib/one_gadget/builds/libc-2.32-9d60d4bd625a7fe2439db781a5fc91bb69684903.rb +0 -29
- data/lib/one_gadget/builds/libc-2.32-a75b0c335a4987f12d17d3b4adb8dc430432b082.rb +0 -29
- data/lib/one_gadget/builds/libc-2.32-ac287babd169c70013b752da2713dfb96d9a503f.rb +0 -122
- data/lib/one_gadget/builds/libc-2.32-aebd80372a00285a5c486ef72917f935eb8f91be.rb +0 -29
- data/lib/one_gadget/builds/libc-2.32-bd0e9dc4e27475b5ab7dc59141daaa2626b8a760.rb +0 -29
- data/lib/one_gadget/builds/libc-2.32-bddeb6374fc99723cef3b3baafe48ac78fce13b4.rb +0 -29
- data/lib/one_gadget/builds/libc-2.32-cb91dd613d38b806a16bed1b364c084ad63d1a1f.rb +0 -80
- data/lib/one_gadget/builds/libc-2.32-d3f1cf7f55b985fd6d989880ec3599724fe40a26.rb +0 -29
- data/lib/one_gadget/builds/libc-2.32-e13b24f94b260dd6394bdb2433d2a78e37078d5c.rb +0 -80
- data/lib/one_gadget/builds/libc-2.32-e1596c76d0d93d8a36378ba976f034f140618d59.rb +0 -80
- data/lib/one_gadget/builds/libc-2.32-f45b67ab28af1581cba8e4713e0fd3b2bc004b2e.rb +0 -80
- data/lib/one_gadget/builds/libc-2.33-18edf6b683a2f9768cc0ee9cc64ae6fbb545deb2.rb +0 -122
- data/lib/one_gadget/builds/libc-2.33-1c943bf313b5b4546e47b830e70de6bbd6a0ba57.rb +0 -29
- data/lib/one_gadget/builds/libc-2.33-2b48299781548c9bc452eac6df39902547c884ed.rb +0 -122
- data/lib/one_gadget/builds/libc-2.33-37169e68b33cad12e272bb4896d71fd0d4fd98bb.rb +0 -80
- data/lib/one_gadget/builds/libc-2.33-54a6e404e7dc1de7c1434a00b7b1ad325b81f22a.rb +0 -80
- data/lib/one_gadget/builds/libc-2.33-7983d313db4a441a3762c8861ca405aa0331c0c8.rb +0 -80
- data/lib/one_gadget/builds/libc-2.33-8fdc2b2c65f3d782e52c01b546399eee8aa466dc.rb +0 -29
- data/lib/one_gadget/builds/libc-2.33-9143da129b44b931a1c180e2b103e993dd2474fd.rb +0 -29
- data/lib/one_gadget/builds/libc-2.33-97c8d90bd86bc698d156630e8803de433a640090.rb +0 -122
- data/lib/one_gadget/builds/libc-2.33-9bf4c513db255ab7248cef9f0f96b4403df29852.rb +0 -80
- data/lib/one_gadget/builds/libc-2.33-9e592d3efa165bc2bab8b40426370bd50cb0b027.rb +0 -80
- data/lib/one_gadget/builds/libc-2.33-abf3b2a9815c0cd6e4280cd99474d34102804eb2.rb +0 -80
- data/lib/one_gadget/builds/libc-2.33-b046eecd056a0c30995703f6cfca7a8e3a9ef5fa.rb +0 -80
- data/lib/one_gadget/builds/libc-2.33-b2262bfa6f1bffd1e9ddc845276dfaebb7c8f0b9.rb +0 -29
- data/lib/one_gadget/builds/libc-2.33-f462ab2b79c7f29fb866da6e087e45261570a09c.rb +0 -29
- data/lib/one_gadget/builds/libc-2.33-f4af69206091c7f14a941f2dd77a79a7682a1184.rb +0 -29
- data/lib/one_gadget/builds/libc-2.34-140609514178a4bb96a3cd44ffdfede398a77610.rb +0 -29
- data/lib/one_gadget/builds/libc-2.34-25594d4b6cbecda86ec968fa940c6c09937db70f.rb +0 -83
- data/lib/one_gadget/builds/libc-2.34-387920279e1c7892042ff27d76315d55e4651db9.rb +0 -29
- data/lib/one_gadget/builds/libc-2.34-7e46fbc4d85f5df8b6f18630787ad281786a3512.rb +0 -29
- data/lib/one_gadget/builds/libc-2.34-8d631c824a37b236d1dc9686b224a573fd6048b4.rb +0 -29
- data/lib/one_gadget/builds/libc-2.34-b8037b6260865346802321dd2256b8ad1d857e63.rb +0 -119
- data/lib/one_gadget/builds/libc-2.34-ba4777827fe1fb729ca35acd99c8013936172a0d.rb +0 -83
- data/lib/one_gadget/builds/libc-2.34-f0fc29165cbe6088c0e1adf03b0048fbecbc003a.rb +0 -119
- data/lib/one_gadget/builds/libc-2.35-89c3cb85f9e55046776471fed05ec441581d1969.rb +0 -104
- data/lib/one_gadget/builds/libc-2.35-ab265082cac9486923c709d48ee5dde080e243ff.rb +0 -68
- data/lib/one_gadget/builds/libc-2.35-c376d41cff4473142a97ac1ff1eab433859dc3d4.rb +0 -26
- data/lib/one_gadget/builds/libc-2.35-dfca8b65dd2d2ca67f70dc7a556a6cfa8ba96ed8.rb +0 -26
- data/lib/one_gadget/fetcher.rb +0 -58
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'one_gadget/emulators/lambda'
|
|
4
|
+
|
|
5
|
+
module OneGadget
|
|
6
|
+
module Emulators
|
|
7
|
+
# The register state of one emulated candidate, keyed so that names sharing
|
|
8
|
+
# storage share a value: what a write through a narrower name leaves behind is
|
|
9
|
+
# what a read of the full register finds, and the other way round.
|
|
10
|
+
#
|
|
11
|
+
# Values are kept under the full register's name, so an operand rendered into a
|
|
12
|
+
# constraint names the storage the caller has to arrange, whichever name the
|
|
13
|
+
# instruction used to reach it.
|
|
14
|
+
# @example (amd64) the first argument, set through its 32-bit name
|
|
15
|
+
# file['edi'] = 1
|
|
16
|
+
# file['rdi'] #=> 1
|
|
17
|
+
class RegisterFile < Hash
|
|
18
|
+
# Build the initial state: one entry per distinct storage, holding the value
|
|
19
|
+
# the block returns for its full name.
|
|
20
|
+
# @param [Array<String>] names All the register names the architecture accepts.
|
|
21
|
+
# @param [Hash{String => String}] narrow_views Narrower name => full register.
|
|
22
|
+
# @yieldparam [String] name The full register's name.
|
|
23
|
+
# @return [RegisterFile]
|
|
24
|
+
def self.build(names, narrow_views)
|
|
25
|
+
new(narrow_views).tap do |file|
|
|
26
|
+
names.map { |name| narrow_views.fetch(name, name) }
|
|
27
|
+
.uniq
|
|
28
|
+
.each { |name| file[name] = yield(name) }
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# @param [Hash{String => String}] narrow_views Narrower name => full register.
|
|
33
|
+
def initialize(narrow_views = {})
|
|
34
|
+
super()
|
|
35
|
+
@narrow_views = narrow_views
|
|
36
|
+
@entry_halves = {}
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# @param [String] name Any name the architecture accepts, narrow or full.
|
|
40
|
+
# @return [OneGadget::Emulators::Lambda, Integer] What that name currently reads as.
|
|
41
|
+
def [](name)
|
|
42
|
+
value = super(full(name))
|
|
43
|
+
narrow?(name) ? narrowed(name, value) : value
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# @param [String] name Any name the architecture accepts, narrow or full.
|
|
47
|
+
# @param [OneGadget::Emulators::Lambda, Integer] value
|
|
48
|
+
# @return [void]
|
|
49
|
+
def []=(name, value)
|
|
50
|
+
super(full(name), value)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# @param [String] name Any name the architecture accepts, narrow or full.
|
|
54
|
+
# @return [Boolean] Whether its storage holds a value.
|
|
55
|
+
def key?(name)
|
|
56
|
+
super(full(name))
|
|
57
|
+
end
|
|
58
|
+
alias has_key? key?
|
|
59
|
+
alias include? key?
|
|
60
|
+
alias member? key?
|
|
61
|
+
|
|
62
|
+
private
|
|
63
|
+
|
|
64
|
+
# The name +name+'s storage is kept under: itself, unless it is a narrower
|
|
65
|
+
# view of a wider register.
|
|
66
|
+
# @param [String] name
|
|
67
|
+
# @return [String]
|
|
68
|
+
def full(name)
|
|
69
|
+
@narrow_views.fetch(name, name)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# @param [String] name
|
|
73
|
+
# @return [Boolean] Whether +name+ addresses part of a wider register.
|
|
74
|
+
def narrow?(name)
|
|
75
|
+
@narrow_views.key?(name)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# The part of +value+ that +name+ addresses. Handing back the whole of what
|
|
79
|
+
# cannot be halved over-approximates, which only ever tightens a constraint
|
|
80
|
+
# or drops the path it renders.
|
|
81
|
+
#
|
|
82
|
+
# The name's own lambda is kept rather than rebuilt, so repeated reads of an
|
|
83
|
+
# untouched register return one object -- a value is compared by identity to
|
|
84
|
+
# tell a reassignment from what was there before (see
|
|
85
|
+
# {Processor#reg_based_stack}).
|
|
86
|
+
# @param [String] name A narrower name (see {#narrow?}).
|
|
87
|
+
# @param [Object] value The value held by the register it names part of.
|
|
88
|
+
# @return [Object]
|
|
89
|
+
# @example (amd64) The low half of a register still holding what the gadget
|
|
90
|
+
# was entered with is the one part a name addresses exactly; no expression
|
|
91
|
+
# names half of anything else.
|
|
92
|
+
# narrowed('eax', Lambda.parse('rax')) #=> eax
|
|
93
|
+
# narrowed('eax', Lambda.parse('rsp+0x10')) #=> rsp+0x10
|
|
94
|
+
def narrowed(name, value)
|
|
95
|
+
return value unless entry_value?(value, full(name))
|
|
96
|
+
|
|
97
|
+
@entry_halves[name] ||= Lambda.new(name)
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
# Whether +value+ is still the untouched value +reg+ was entered with.
|
|
101
|
+
def entry_value?(value, reg)
|
|
102
|
+
value.is_a?(Lambda) && value.obj == reg && value.deref_count.zero? && value.immi.zero?
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'one_gadget/abi'
|
|
4
|
+
require 'one_gadget/emulators/instruction'
|
|
5
|
+
require 'one_gadget/emulators/processor'
|
|
6
|
+
|
|
7
|
+
module OneGadget
|
|
8
|
+
module Emulators
|
|
9
|
+
# Emulator of RISC-V (RV64).
|
|
10
|
+
class Riscv64 < Processor
|
|
11
|
+
# Instantiate a {Riscv64} object.
|
|
12
|
+
def initialize
|
|
13
|
+
super(OneGadget::ABI.riscv64, 'sp')
|
|
14
|
+
@registers['zero'] = 0 # hardwired
|
|
15
|
+
@pc = 'pc'
|
|
16
|
+
setup_frame_pointer('s0') # track argv/data staged off the frame pointer
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# @see OneGadget::Emulators::X86#process!
|
|
20
|
+
# @param [String] cmd One line from result of objdump.
|
|
21
|
+
# @return [Boolean] If successfully processed.
|
|
22
|
+
def process!(cmd)
|
|
23
|
+
resolve_pending_branch(cmd)
|
|
24
|
+
@cur_addr = cmd[/\A\s*([0-9a-f]+):/, 1]&.to_i(16)
|
|
25
|
+
|
|
26
|
+
mnem = mnemonic(cmd)
|
|
27
|
+
return handle_branch(mnem, cmd) != :fail if branch_mnem?(mnem)
|
|
28
|
+
|
|
29
|
+
inst, args = parse(cmd)
|
|
30
|
+
__send__(inst.handler, *args) != :fail
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# A conditional branch of this arch compares its operands itself -- there is
|
|
34
|
+
# no flag register and no compare instruction -- so each mnemonic names the
|
|
35
|
+
# relation the operands must stand in for the branch to be taken. The
|
|
36
|
+
# assembler's spellings against zero (+beqz+, +blez+, ...) name one register
|
|
37
|
+
# and the reversed ones (+bgt+, +ble+, ...) read a relation the other way
|
|
38
|
+
# round; each is listed as the relation it states, so a constraint reads as
|
|
39
|
+
# the comparison was written.
|
|
40
|
+
COND = {
|
|
41
|
+
'beq' => :eq, 'bne' => :ne,
|
|
42
|
+
'blt' => :slt, 'bge' => :sge, 'bltu' => :ult, 'bgeu' => :uge,
|
|
43
|
+
'bgt' => :sgt, 'ble' => :sle, 'bgtu' => :ugt, 'bleu' => :ule,
|
|
44
|
+
'beqz' => :eq, 'bnez' => :ne,
|
|
45
|
+
'bltz' => :slt, 'bgez' => :sge, 'blez' => :sle, 'bgtz' => :sgt
|
|
46
|
+
}.freeze
|
|
47
|
+
|
|
48
|
+
# The data-processing instructions, mapped to the Ruby operator that folds
|
|
49
|
+
# them and renders them alike. An immediate form differs from its register
|
|
50
|
+
# one only in how the right operand is written, which the operand reader
|
|
51
|
+
# already handles, so both name the same operator. Arithmetic shift right is
|
|
52
|
+
# absent: a value is held masked to its width, where +>>+ is the logical
|
|
53
|
+
# shift, and naming the arithmetic one as that would state a different
|
|
54
|
+
# instruction.
|
|
55
|
+
DATA_OPS = {
|
|
56
|
+
'and' => :&, 'andi' => :&,
|
|
57
|
+
'or' => :|, 'ori' => :|,
|
|
58
|
+
'xor' => :^, 'xori' => :^,
|
|
59
|
+
'sll' => :<<, 'slli' => :<<,
|
|
60
|
+
'srl' => :>>, 'srli' => :>>
|
|
61
|
+
}.freeze
|
|
62
|
+
private_constant :DATA_OPS
|
|
63
|
+
|
|
64
|
+
# The loads, mapped to how many bytes each reads.
|
|
65
|
+
LOADS = { 'ld' => 8, 'lw' => 4, 'lwu' => 4, 'lh' => 2, 'lhu' => 2, 'lb' => 1, 'lbu' => 1 }.freeze
|
|
66
|
+
private_constant :LOADS
|
|
67
|
+
|
|
68
|
+
# The stores, mapped to how many bytes each writes.
|
|
69
|
+
STORES = { 'sd' => 8, 'sw' => 4, 'sh' => 2, 'sb' => 1 }.freeze
|
|
70
|
+
private_constant :STORES
|
|
71
|
+
|
|
72
|
+
# Supported instruction set. Anything not listed aborts the candidate.
|
|
73
|
+
# @return [Array<Instruction>] The supported instructions.
|
|
74
|
+
def instructions
|
|
75
|
+
[
|
|
76
|
+
Instruction.new('add', 3),
|
|
77
|
+
Instruction.new('addi', 3),
|
|
78
|
+
Instruction.new('auipc', 2),
|
|
79
|
+
Instruction.new('jal', 1..2),
|
|
80
|
+
Instruction.new('li', 2),
|
|
81
|
+
Instruction.new('lui', 2),
|
|
82
|
+
Instruction.new('mv', 2),
|
|
83
|
+
Instruction.new('nop', 0),
|
|
84
|
+
Instruction.new('sub', 3),
|
|
85
|
+
Instruction.new('not', 2)
|
|
86
|
+
] + (LOADS.keys + STORES.keys).map { |mnem| Instruction.new(mnem, 2) } +
|
|
87
|
+
DATA_OPS.keys.map { |mnem| Instruction.new(mnem, 3) }
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
# Return the argument value of calling a function.
|
|
91
|
+
# @param [Integer] idx The 0-based index of the argument.
|
|
92
|
+
# @return [Lambda, Integer] The value held in register +a<idx>+, used for the +idx+-th argument.
|
|
93
|
+
def argument(idx)
|
|
94
|
+
registers["a#{idx}"]
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
private
|
|
98
|
+
|
|
99
|
+
def branch_mnem?(mnem)
|
|
100
|
+
mnem == 'j' || COND.key?(mnem)
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
# Operands of +cmd+ (mnemonic dropped), each stripped of a trailing +<symbol>+.
|
|
104
|
+
def operands(cmd)
|
|
105
|
+
cmd.sub(/\A[0-9a-f]+:\s*\S+\s*/, '').split(',').map { |o| o.strip.sub(/\s*<.*>\z/, '') }
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
# Record the comparison and decide the branch together, since one
|
|
109
|
+
# instruction is both (see {COND}). The zero spellings leave their second
|
|
110
|
+
# operand out; +zero+ names it, and reads as the +0x0+ it holds.
|
|
111
|
+
def handle_branch(mnem, cmd)
|
|
112
|
+
return true if mnem == 'j' # unconditional: control handled by the stitched path
|
|
113
|
+
|
|
114
|
+
ops = operands(cmd)
|
|
115
|
+
lhs, rhs = mnem.end_with?('z') ? [ops[0], 'zero'] : ops[0..1]
|
|
116
|
+
record_compare(:sub, operand_str(lhs), operand_str(rhs))
|
|
117
|
+
branch_on_compare(COND[mnem], ops.last.to_i(16))
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
# A direct call: record the terminal +exec*+ target, accept a known-safe
|
|
121
|
+
# syscall wrapper, or +:fail+ to abort the candidate. The two-operand form
|
|
122
|
+
# names the register the return address is written to, which is +ra+ for a
|
|
123
|
+
# call and is not modelled either way.
|
|
124
|
+
def inst_jal(*args)
|
|
125
|
+
addr = args.last
|
|
126
|
+
return reach_terminal_call(addr) if terminal_call?(addr)
|
|
127
|
+
|
|
128
|
+
dispatch_safe_call(addr)
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
# +auipc dst, imm+ is how this arch names an address relative to the
|
|
132
|
+
# instruction itself: the immediate objdump prints is the upper 20 bits, so
|
|
133
|
+
# the value is +pc + (imm << 12)+. The +addi+/load that follows applies the
|
|
134
|
+
# low half, which is what makes the pair resolve to the +$base+<off>+ form
|
|
135
|
+
# the rest of the engine reads as a libc global.
|
|
136
|
+
# @example the pair objdump resolves to 171fc0 in its own comment
|
|
137
|
+
# 9f48e: auipc a5,0xd3 # a5 = $base+0x17248e
|
|
138
|
+
# 9f492: ld a5,-1230(a5) # a5 = [$base+0x171fc0]
|
|
139
|
+
def inst_auipc(dst, imm)
|
|
140
|
+
check_register!(dst)
|
|
141
|
+
|
|
142
|
+
registers[dst] = pc_value + (imm.to_i(16) << 12)
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
# +lui dst, imm+ loads the same upper 20 bits, but as a plain value rather
|
|
146
|
+
# than an address, so nothing about the instruction's own location enters it.
|
|
147
|
+
def inst_lui(dst, imm)
|
|
148
|
+
check_register!(dst)
|
|
149
|
+
|
|
150
|
+
registers[dst] = (imm.to_i(16) << 12) & width_mask
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
# +li+ is the assembler's spelling of loading a constant, whatever the
|
|
154
|
+
# instructions it expands to.
|
|
155
|
+
def inst_li(dst, imm)
|
|
156
|
+
check_register!(dst)
|
|
157
|
+
|
|
158
|
+
registers[dst] = Integer(imm)
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
# This arch spells no modifier on an operand and has no 2-operand shorthand,
|
|
162
|
+
# so the arithmetic is the plain three-operand form; +addi+ differs from
|
|
163
|
+
# +add+ only in that its right operand is written as a literal.
|
|
164
|
+
def inst_add(dst, src, op2) = arith(:+, dst, src, op2)
|
|
165
|
+
alias inst_addi inst_add
|
|
166
|
+
|
|
167
|
+
# +sub dst, src, op2+. See {#inst_add}.
|
|
168
|
+
def inst_sub(dst, src, op2) = arith(:-, dst, src, op2)
|
|
169
|
+
|
|
170
|
+
def inst_mv(dst, src)
|
|
171
|
+
check_register!(dst)
|
|
172
|
+
|
|
173
|
+
registers[dst] = arg_to_lambda(src)
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
# Each data-processing mnemonic handled the one way, since they differ only
|
|
177
|
+
# in the operator applied (see {Processor#data_op} for the operands).
|
|
178
|
+
DATA_OPS.each do |mnem, op|
|
|
179
|
+
define_method(Instruction.handler_name(mnem)) do |dst, src, op2|
|
|
180
|
+
data_op(op, dst, src, op2, name: mnem)
|
|
181
|
+
end
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
# +not dst, src+ is every bit of +src+ flipped. Only a concrete value has a
|
|
185
|
+
# complement this emulator can name ({Processor#complement}); a symbolic one
|
|
186
|
+
# aborts rather than being recorded as a mask it isn't.
|
|
187
|
+
def inst_not(dst, src)
|
|
188
|
+
check_register!(dst)
|
|
189
|
+
|
|
190
|
+
registers[dst] = complement('not', src, dst, src)
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
# Each load and store handled the one way, since within a family they differ
|
|
194
|
+
# only in the width they touch (see {#load_value} and {#store_value}).
|
|
195
|
+
LOADS.each do |mnem, size|
|
|
196
|
+
define_method(Instruction.handler_name(mnem)) { |dst, mem| load_value(dst, mem, size) }
|
|
197
|
+
end
|
|
198
|
+
STORES.each do |mnem, size|
|
|
199
|
+
define_method(Instruction.handler_name(mnem)) { |src, mem| store_value(src, mem, size) }
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
# A load. The address is read like any other, so what the caller has to
|
|
203
|
+
# arrange about it is recorded the same way. A load narrower than a register
|
|
204
|
+
# only takes part of the word this emulator tracks, which is not a value it
|
|
205
|
+
# can name, so the register then holds what a call would have left: a path
|
|
206
|
+
# that goes on to depend on it is abandoned rather than described wrongly.
|
|
207
|
+
# @param [String] dst The destination register.
|
|
208
|
+
# @param [String] mem The memory operand, as written.
|
|
209
|
+
# @param [Integer] size How many bytes the load reads.
|
|
210
|
+
# @return [void]
|
|
211
|
+
def load_value(dst, mem, size)
|
|
212
|
+
check_register!(dst)
|
|
213
|
+
|
|
214
|
+
value = read_value(arg_to_lambda(mem_operand(mem)))
|
|
215
|
+
registers[dst] = size == size_t ? value : clobbered_value
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
# A store, tracked so a later load of the same slot reads it back, and
|
|
219
|
+
# requiring its target writable ({Processor#track_write}). A store narrower
|
|
220
|
+
# than a register leaves the rest of the slot holding whatever was there, so
|
|
221
|
+
# what the slot then holds is named as unknown rather than as the value
|
|
222
|
+
# stored -- the requirement that it be writable is what the candidate really
|
|
223
|
+
# establishes, and that is kept.
|
|
224
|
+
# @param [String] src The register holding the value stored.
|
|
225
|
+
# @param [String] mem The memory operand, as written.
|
|
226
|
+
# @param [Integer] size How many bytes the store writes.
|
|
227
|
+
# @return [void]
|
|
228
|
+
def store_value(src, mem, size)
|
|
229
|
+
check_register!(src)
|
|
230
|
+
|
|
231
|
+
dst_l = arg_to_lambda(mem_operand(mem)).ref!
|
|
232
|
+
track_write(dst_l, size == size_t ? registers[src] : clobbered_value)
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
# This arch writes a memory operand as an offset applied to one register,
|
|
236
|
+
# which the {Lambda} parser reads in its bracketed form. The offset is
|
|
237
|
+
# decimal, as objdump prints every operand but an upper immediate.
|
|
238
|
+
# @param [String] mem The operand, as written.
|
|
239
|
+
# @return [String]
|
|
240
|
+
# @example
|
|
241
|
+
# mem_operand('-1230(a5)') #=> '[a5-1230]'
|
|
242
|
+
# mem_operand('0(s1)') #=> '[s1+0]'
|
|
243
|
+
def mem_operand(mem)
|
|
244
|
+
m = mem.match(/\A(-?\d+)\((\w+)\)\z/)
|
|
245
|
+
raise_unsupported('memory operand', mem) if m.nil?
|
|
246
|
+
|
|
247
|
+
"[#{m[2]}#{format('%+d', Integer(m[1]))}]"
|
|
248
|
+
end
|
|
249
|
+
|
|
250
|
+
# The value +pc+ holds while the instruction at {@cur_addr} runs: this arch
|
|
251
|
+
# reads its own address, with no pipeline bias to add.
|
|
252
|
+
def pc_value
|
|
253
|
+
libc_base + @cur_addr
|
|
254
|
+
end
|
|
255
|
+
|
|
256
|
+
class << self
|
|
257
|
+
# RV64 is 64-bit.
|
|
258
|
+
# @return [Integer]
|
|
259
|
+
def bits
|
|
260
|
+
64
|
|
261
|
+
end
|
|
262
|
+
end
|
|
263
|
+
end
|
|
264
|
+
end
|
|
265
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OneGadget
|
|
4
|
+
module Emulators
|
|
5
|
+
# Arch-independent catalog of libc calls the emulator accepts without
|
|
6
|
+
# executing them (see {COMMON} for what each requirement means, and
|
|
7
|
+
# {Processor#dispatch_safe_call} for how they are applied). These
|
|
8
|
+
# functions -- syscall wrappers and +posix_spawn+'s setup
|
|
9
|
+
# helpers -- have identical semantics on every architecture, so their
|
|
10
|
+
# requirements live here once instead of being copied into each arch's
|
|
11
|
+
# emulator, keeping the arches from drifting.
|
|
12
|
+
#
|
|
13
|
+
# Order matters: the first key that is a substring of the call symbol wins, so
|
|
14
|
+
# the specific +posix_spawnattr_setsigmask+/+setsigdefault+ keys precede the
|
|
15
|
+
# generic +posix_spawnattr_+ prefix.
|
|
16
|
+
module SafeCalls
|
|
17
|
+
# What each requirement asks of the caller:
|
|
18
|
+
# * +:global_var?+ -- nothing; it must already hold, or the candidate is aborted.
|
|
19
|
+
# * +:closed_fd+ -- nothing; the descriptor is recorded (see {Processor#note_closed_fd}).
|
|
20
|
+
# * +:null+, +:nullable_deref+ -- +<arg> == NULL+.
|
|
21
|
+
# * +:deref+ -- +readable: <arg>+.
|
|
22
|
+
# * +:writable+ -- +writable: <arg>+.
|
|
23
|
+
# @return [Hash{String => Hash{Integer => Symbol}}]
|
|
24
|
+
# Function name (or name prefix) => argument index => requirement.
|
|
25
|
+
COMMON = {
|
|
26
|
+
# sigprocmask/__sigaction dereference a pointer arg unless it is NULL, which
|
|
27
|
+
# glibc guards with an explicit NULL check (and still reaches the call on the
|
|
28
|
+
# NULL path): sigprocmask's +set+ and __sigaction's +act+ (both arg 1).
|
|
29
|
+
# __sigaction also writes back through +oldact+ (arg 2), so oldact must be NULL.
|
|
30
|
+
'sigprocmask' => { 1 => :nullable_deref },
|
|
31
|
+
'__sigaction' => { 1 => :nullable_deref, 2 => :null },
|
|
32
|
+
# Record the descriptor __close closes: which one it is decides whether the
|
|
33
|
+
# spawned shell keeps its I/O (see {Processor#note_closed_fd}).
|
|
34
|
+
'__close' => { 0 => :closed_fd },
|
|
35
|
+
# unsetenv reads its name (arg 0); +:global_var?+ may over-constrain it
|
|
36
|
+
# (readable would suffice), but no current fixture reaches unsetenv near an
|
|
37
|
+
# exec to verify -- left as-is.
|
|
38
|
+
'unsetenv' => { 0 => :global_var? },
|
|
39
|
+
# setsigmask/setsigdefault copy *set into the attr unconditionally, so the
|
|
40
|
+
# source (arg 1) must be readable and the attr they write (arg 0) writable.
|
|
41
|
+
'posix_spawnattr_setsigmask' => { 0 => :writable, 1 => :deref },
|
|
42
|
+
'posix_spawnattr_setsigdefault' => { 0 => :writable, 1 => :deref },
|
|
43
|
+
# every other attr setup helper writes its attr object (arg 0).
|
|
44
|
+
'posix_spawnattr_' => { 0 => :writable }
|
|
45
|
+
# posix_spawn_file_actions_* helpers are deliberately absent, so a candidate
|
|
46
|
+
# that calls one is aborted (see {Processor#dispatch_safe_call}) rather than
|
|
47
|
+
# walked through. Accepting them would need a model out of reach today:
|
|
48
|
+
# * the helper returns 0 only when its fd argument is a valid fd
|
|
49
|
+
# (0 <= fd < INT_MAX), and the caller branches on that return -- a nonzero
|
|
50
|
+
# result skips the following +posix_spawn+ -- so treating the call as
|
|
51
|
+
# always succeeding emits a gadget whose reachability doesn't actually hold;
|
|
52
|
+
# * appending the action grows +__actions+ via +realloc+, which can fail
|
|
53
|
+
# (ENOMEM) or fault on a bogus object -- not guaranteeable from a symbolic
|
|
54
|
+
# writable pointer;
|
|
55
|
+
# * +posix_spawn_file_actions_t+ is a glibc-internal, version-dependent
|
|
56
|
+
# layout, so modeling its fields soundly across libc versions is fragile;
|
|
57
|
+
# * and a successful call injects a close/open/dup2 into the spawned child
|
|
58
|
+
# whose harmlessness depends on the fd, which isn't expressible.
|
|
59
|
+
}.freeze
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'one_gadget/emulators/lambda'
|
|
4
|
+
|
|
5
|
+
module OneGadget
|
|
6
|
+
module Emulators
|
|
7
|
+
# The memory a candidate reads and writes. Every store is filed under the base
|
|
8
|
+
# its address is an offset from -- the stack pointer, the frame pointer, or any
|
|
9
|
+
# register holding a pointer the caller supplies -- so a later load of the same
|
|
10
|
+
# slot reads back what this candidate put there, and a load of an untouched one
|
|
11
|
+
# is answered as what the caller left. Mixed into {Processor}.
|
|
12
|
+
module TrackedMemory
|
|
13
|
+
# @return [Hash{Integer => OneGadget::Emulators::Lambda}] Memory written through +sp+.
|
|
14
|
+
def sp_based_stack = get_corresponding_stack(sp)
|
|
15
|
+
|
|
16
|
+
# @return [Hash{Integer => Lambda}, nil] Memory written through {Processor#bp}, or nil when the arch has none.
|
|
17
|
+
def bp_based_stack = bp && get_corresponding_stack(bp)
|
|
18
|
+
|
|
19
|
+
# Enable frame-pointer stack tracking with +bp+ as the frame register, so a
|
|
20
|
+
# gadget staging data at +[bp+imm]+ (e.g. an argv array off the frame
|
|
21
|
+
# pointer) is recovered instead of collapsing to a bare +writable:+. A nil
|
|
22
|
+
# +bp+ leaves the arch +sp+-only. Call from the arch initializer after +super+.
|
|
23
|
+
# @param [String, nil] bp The frame register's name, or nil for an arch with none.
|
|
24
|
+
# @return [void]
|
|
25
|
+
def setup_frame_pointer(bp)
|
|
26
|
+
@bp = bp
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Where +address+ lands in the memory this emulator tracks: the stack it
|
|
30
|
+
# falls in and its offset within it. A load or store passes the address it
|
|
31
|
+
# dereferences, i.e. its operand with that dereference peeled off.
|
|
32
|
+
# @param [Lambda, String] address An address.
|
|
33
|
+
# @return [(Hash{Integer => Lambda}?, Integer)] The stack, +nil+ if none
|
|
34
|
+
# tracks this address, and the offset to index it at.
|
|
35
|
+
# @example an offset from a register
|
|
36
|
+
# resolve_address(Lambda.parse('rsp+0x10')) #=> [sp_based_stack, 0x10]
|
|
37
|
+
# @example an offset from a pointer no register names
|
|
38
|
+
# resolve_address(Lambda.parse('[rbp-0x48]+0x8')) #=> [the "[rbp-0x48]" stack, 0x8]
|
|
39
|
+
def resolve_address(address)
|
|
40
|
+
base, offset = address_base(address)
|
|
41
|
+
[get_corresponding_stack(base), offset]
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# The memory +base+ addresses: what this candidate has written through it,
|
|
45
|
+
# keyed by offset. Every base gets one -- the stack pointer, the frame
|
|
46
|
+
# pointer, any other register, and a value no register names at all (a
|
|
47
|
+
# pointer the candidate derived and then built an array through).
|
|
48
|
+
#
|
|
49
|
+
# Keyed by how the base renders, which is what makes one store enough: a
|
|
50
|
+
# register that gets reassigned addresses somewhere else and renders
|
|
51
|
+
# differently, so it lands on a different key without any invalidation to
|
|
52
|
+
# arrange. Only a store overwriting what the base itself reads from would
|
|
53
|
+
# break that, which a candidate short enough to be a gadget doesn't do.
|
|
54
|
+
# @example (amd64) After +mov QWORD PTR [rsp+0x10], rdi+, keyed by offset.
|
|
55
|
+
# get_corresponding_stack('rsp') #=> { 0x10 => rdi }
|
|
56
|
+
# @param [String, Lambda] base A base, as {#resolve_address} yields it --
|
|
57
|
+
# not an offset expression, whose offset belongs in the key it indexes.
|
|
58
|
+
# @return [Hash{Integer => Lambda}, nil] nil when +base+ names nothing this
|
|
59
|
+
# emulator tracks memory for.
|
|
60
|
+
def get_corresponding_stack(base)
|
|
61
|
+
return nil unless base.is_a?(OneGadget::Emulators::Lambda) || registers.key?(base.to_s)
|
|
62
|
+
|
|
63
|
+
tracked_memory[base.to_s]
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# The values this candidate wrote through an address built from +text+, which
|
|
67
|
+
# the array reported at +text+ therefore holds -- wherever in it they landed.
|
|
68
|
+
# A reader told about that array has to be told about these too, or it is
|
|
69
|
+
# described as though the gadget had not written to it.
|
|
70
|
+
# @param [String] text How the address is named.
|
|
71
|
+
# @return [Array<String>] Each value written, rendered, without duplicates.
|
|
72
|
+
# @example (riscv64) a store of +s8+ through +((a5 << 0x3) + [sp+0xd0])+
|
|
73
|
+
# writes_through('[sp+0xd0]') #=> ['s8']
|
|
74
|
+
def writes_through(text)
|
|
75
|
+
return [] if text.empty?
|
|
76
|
+
|
|
77
|
+
derived_writes.filter_map do |base, values|
|
|
78
|
+
next unless operands_of(base).any? { |operand| operand.to_s == text }
|
|
79
|
+
|
|
80
|
+
# A literal is not the caller's to arrange -- it is already what it is,
|
|
81
|
+
# and the NULL such a loop writes to terminate the array is one.
|
|
82
|
+
values.grep_v(Integer).map(&:to_s)
|
|
83
|
+
end.flatten.uniq
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
private
|
|
87
|
+
|
|
88
|
+
# Every base this candidate has written through, each mapped to the memory
|
|
89
|
+
# it addresses. See {#get_corresponding_stack}, which is how it is reached.
|
|
90
|
+
# @return [Hash{String => Hash{Integer => Lambda}}]
|
|
91
|
+
def tracked_memory
|
|
92
|
+
@tracked_memory ||= Hash.new { |memory, base| memory[base] = tracked_stack(base) }
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# Split +address+ into the base it is offset from and that offset, in the
|
|
96
|
+
# forms {#get_corresponding_stack} and a tracked stack expect.
|
|
97
|
+
# @param [Lambda, String] address See {#resolve_address}.
|
|
98
|
+
# @return [(String, Lambda), Integer]
|
|
99
|
+
def address_base(address)
|
|
100
|
+
return [address, 0] unless address.is_a?(OneGadget::Emulators::Lambda)
|
|
101
|
+
# Still a dereference deep, so the whole thing names one value rather than
|
|
102
|
+
# an offset from anything: its own immediate is part of that name.
|
|
103
|
+
return [address, 0] if address.deref_count.positive?
|
|
104
|
+
# An operation's +obj+ is only the value it operates on, which addresses
|
|
105
|
+
# somewhere else entirely -- a candidate building an array through
|
|
106
|
+
# +(rsi & ~0xf)+ is not writing through +rsi+.
|
|
107
|
+
return [address.dup.tap { |base| base.immi = 0 }, address.immi] if address.operation?
|
|
108
|
+
|
|
109
|
+
[address.obj, address.immi]
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
# An always-on tracked stack keyed by offset: a Hash that lazily materialises
|
|
113
|
+
# +[reg+off]+ as a one-deref {Lambda}. Used for the +sp+- and {Processor#bp}-based stacks.
|
|
114
|
+
def tracked_stack(reg)
|
|
115
|
+
Hash.new do |h, k|
|
|
116
|
+
h[k] = OneGadget::Emulators::Lambda.new(reg).tap do |lmda|
|
|
117
|
+
lmda.immi = k
|
|
118
|
+
lmda.deref!
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# The value an instruction reads through +val+: what this candidate put at
|
|
124
|
+
# that address, when it is one the candidate has written, and the
|
|
125
|
+
# dereference itself otherwise (recording the read, see {#note_read}).
|
|
126
|
+
#
|
|
127
|
+
# A slot the gadget fills in reads back as what was put there, so a
|
|
128
|
+
# constraint on it names the value the caller has to arrange rather than
|
|
129
|
+
# whatever the slot held on entry -- which the gadget has already replaced.
|
|
130
|
+
# @param [Object] val The operand's value, as produced by {#arg_to_lambda}.
|
|
131
|
+
# @return [Object]
|
|
132
|
+
# @example (arm) +str r3, [sp, #4]+ then +ldr r0, [sp, #4]+ reads back r3
|
|
133
|
+
def read_value(val)
|
|
134
|
+
stored = stored_value(val)
|
|
135
|
+
return stored unless stored.nil?
|
|
136
|
+
|
|
137
|
+
note_read(val)
|
|
138
|
+
val
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
# What this candidate stored at the address +val+ dereferences, or +nil+ if
|
|
142
|
+
# it stored nothing there. Only a single dereference of an address this
|
|
143
|
+
# emulator tracks names a slot it can answer for (see {#resolve_address}).
|
|
144
|
+
# @param [Object] val
|
|
145
|
+
# @return [Object, nil]
|
|
146
|
+
def stored_value(val)
|
|
147
|
+
return nil unless val.is_a?(OneGadget::Emulators::Lambda) && val.deref_count.positive?
|
|
148
|
+
|
|
149
|
+
stack, offset = resolve_address(val.dup.ref!)
|
|
150
|
+
stack&.key?(offset) ? stack[offset] : nil
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
# The innermost base name of a (possibly nested or dereferenced) address
|
|
154
|
+
# lambda, following +obj+ through any nested lambdas.
|
|
155
|
+
# @param [OneGadget::Emulators::Lambda] lmda
|
|
156
|
+
# @return [String, nil] The root base name, or +nil+ for an absolute address.
|
|
157
|
+
# @example
|
|
158
|
+
# root_base(arg_to_lambda('[[$base+0x10]+0x8]')) #=> '$base'
|
|
159
|
+
# root_base(arg_to_lambda('x19+0xed8')) #=> 'x19'
|
|
160
|
+
def root_base(lmda)
|
|
161
|
+
obj = lmda.obj
|
|
162
|
+
obj = obj.obj while obj.is_a?(OneGadget::Emulators::Lambda)
|
|
163
|
+
obj
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
# Stores whose address is an operation rather than a base and a displacement
|
|
167
|
+
# -- a scaled index added to a pointer, say. Such a write lands somewhere in
|
|
168
|
+
# whatever that pointer addresses, at an offset only a value the caller
|
|
169
|
+
# supplies decides, so it is tracked under a base of its own that nothing
|
|
170
|
+
# reads back (see {#writes_through}).
|
|
171
|
+
# @return [Array<(Lambda, Array)>] Each address operation, and what went there.
|
|
172
|
+
def derived_writes
|
|
173
|
+
@derived_writes ||= []
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
# The values an operation is built from, flattened out of its tree, so an
|
|
177
|
+
# operand is recognised as itself rather than as text inside a rendering
|
|
178
|
+
# (where +x3+ would be found in +x30+).
|
|
179
|
+
# @param [Lambda, Object] lmda An address, or one part of one.
|
|
180
|
+
# @return [Array] Its leaf operands, or +lmda+ itself when it is not an operation.
|
|
181
|
+
def operands_of(lmda)
|
|
182
|
+
return [lmda] unless lmda.is_a?(OneGadget::Emulators::Lambda) && lmda.operation?
|
|
183
|
+
|
|
184
|
+
operands_of(lmda.obj) + operands_of(lmda.rhs)
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
# Track a store: write +values+ (one per word from +dst_l+) into the stack
|
|
188
|
+
# {#resolve_address} resolves +dst_l+ to, and require +dst_l+
|
|
189
|
+
# writable -- unless it is a pure +sp+ store. +sp+ is invariantly the
|
|
190
|
+
# writable stack; the frame pointer only conventionally is, so a store
|
|
191
|
+
# through it stays a real precondition (like amd64's +writable: rbp+imm+).
|
|
192
|
+
# @param [OneGadget::Emulators::Lambda] dst_l The destination, zero-deref.
|
|
193
|
+
# @param [Array<OneGadget::Emulators::Lambda, Integer>] values One per word.
|
|
194
|
+
# @return [void]
|
|
195
|
+
def track_write(dst_l, *values)
|
|
196
|
+
stack, offset = resolve_address(dst_l)
|
|
197
|
+
base, = address_base(dst_l)
|
|
198
|
+
derived_writes << [base, values] if base.is_a?(OneGadget::Emulators::Lambda) && base.operation?
|
|
199
|
+
values.each_with_index { |v, i| stack[offset + size_t * i] = v } if stack
|
|
200
|
+
add_writable(dst_l) unless stack.equal?(sp_based_stack)
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
# Resolve +sp+- and (when tracked) {Processor#bp}-relative operands to their offset.
|
|
204
|
+
def eval_dict
|
|
205
|
+
bp ? { sp => 0, bp => 0 } : { sp => 0 }
|
|
206
|
+
end
|
|
207
|
+
end
|
|
208
|
+
end
|
|
209
|
+
end
|