one_gadget 1.9.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +217 -0
- data/README.md +381 -118
- data/lib/one_gadget/abi.rb +49 -2
- 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.26-2104f3d4ad5cf68603afbe7ba1a17f5ac99c5988.rb +192 -8
- data/lib/one_gadget/builds/libc-2.26-ddcc13122ddbfe5e5ef77d4ebe66d124ae5762c2.rb +246 -10
- data/lib/one_gadget/builds/libc-2.26-f65648a832414f2144ce795d75b6045a1ec2e252.rb +151 -4
- 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-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-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-a7e93008cd7dad7a713e3eaf1f9dec78ce7c68a6.rb +66 -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 +447 -0
- data/lib/one_gadget/cli.rb +50 -30
- data/lib/one_gadget/emulators/aarch64.rb +56 -77
- data/lib/one_gadget/emulators/amd64.rb +48 -2
- data/lib/one_gadget/emulators/arm.rb +306 -0
- data/lib/one_gadget/emulators/arm_family.rb +300 -0
- data/lib/one_gadget/emulators/conditional.rb +348 -0
- data/lib/one_gadget/emulators/i386.rb +2 -2
- data/lib/one_gadget/emulators/instruction.rb +6 -5
- data/lib/one_gadget/emulators/lambda.rb +58 -9
- data/lib/one_gadget/emulators/processor.rb +594 -29
- data/lib/one_gadget/emulators/register_file.rb +97 -0
- data/lib/one_gadget/emulators/safe_calls.rb +56 -0
- data/lib/one_gadget/emulators/x86.rb +165 -73
- data/lib/one_gadget/error.rb +12 -0
- data/lib/one_gadget/fetchers/aarch64.rb +42 -7
- data/lib/one_gadget/fetchers/amd64.rb +7 -34
- data/lib/one_gadget/fetchers/arm.rb +256 -0
- data/lib/one_gadget/fetchers/base.rb +727 -87
- data/lib/one_gadget/fetchers/i386.rb +27 -6
- data/lib/one_gadget/fetchers/objdump.rb +1 -1
- data/lib/one_gadget/fetchers/x86.rb +41 -4
- data/lib/one_gadget/fetchers.rb +99 -0
- data/lib/one_gadget/gadget.rb +344 -26
- data/lib/one_gadget/helper.rb +53 -39
- data/lib/one_gadget/logger.rb +4 -1
- data/lib/one_gadget/one_gadget.rb +20 -11
- data/lib/one_gadget/update.rb +2 -2
- data/lib/one_gadget/version.rb +1 -1
- metadata +53 -859
- 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-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-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
|
@@ -1,17 +1,34 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require 'one_gadget/abi'
|
|
4
|
+
require 'one_gadget/emulators/conditional'
|
|
3
5
|
require 'one_gadget/emulators/lambda'
|
|
6
|
+
require 'one_gadget/emulators/register_file'
|
|
7
|
+
require 'one_gadget/emulators/safe_calls'
|
|
4
8
|
require 'one_gadget/error'
|
|
5
9
|
|
|
6
10
|
module OneGadget
|
|
7
11
|
# Instruction emulator to solve the constraint of gadgets.
|
|
8
12
|
module Emulators
|
|
9
|
-
# Base
|
|
13
|
+
# Base of the per-architecture instruction emulators, used to symbolically
|
|
14
|
+
# execute a candidate and solve its constraints. A subclass implements the
|
|
15
|
+
# arch's supported instructions, calling convention and stack model; the
|
|
16
|
+
# shared branch/compare machinery comes from {Conditional}.
|
|
17
|
+
#
|
|
18
|
+
# To add an architecture, see +docs/adding-an-architecture.md+.
|
|
10
19
|
class Processor
|
|
11
|
-
|
|
12
|
-
|
|
20
|
+
include Conditional
|
|
21
|
+
|
|
22
|
+
attr_reader :registers # @return [RegisterFile] The current registers' state.
|
|
13
23
|
attr_reader :sp # @return [String] Stack pointer.
|
|
14
24
|
attr_reader :pc # @return [String] Program counter.
|
|
25
|
+
attr_reader :bp # @return [String, nil] Frame pointer, or nil when this arch tracks none.
|
|
26
|
+
|
|
27
|
+
# @return [Hash{Integer => OneGadget::Emulators::Lambda}] Memory written through +sp+.
|
|
28
|
+
def sp_based_stack = get_corresponding_stack(sp)
|
|
29
|
+
|
|
30
|
+
# @return [Hash{Integer => Lambda}, nil] Memory written through {#bp}, or nil when the arch has none.
|
|
31
|
+
def bp_based_stack = bp && get_corresponding_stack(bp)
|
|
15
32
|
|
|
16
33
|
# Instantiate a {Processor} object.
|
|
17
34
|
# @param [Array<String>] registers
|
|
@@ -19,15 +36,51 @@ module OneGadget
|
|
|
19
36
|
# @param [String] sp
|
|
20
37
|
# The stack register.
|
|
21
38
|
def initialize(registers, sp)
|
|
22
|
-
@registers = registers.
|
|
39
|
+
@registers = RegisterFile.build(registers, OneGadget::ABI::NARROW_VIEWS.fetch(arch_name, {})) do |reg|
|
|
40
|
+
to_lambda(reg)
|
|
41
|
+
end
|
|
23
42
|
@sp = sp
|
|
24
43
|
@constraints = []
|
|
25
|
-
@
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
44
|
+
@deferred_reads = [] # pointer args of safe calls, resolved once emulation ends
|
|
45
|
+
@closed_fds = [] # where each descriptor closed before the terminal call comes from
|
|
46
|
+
@flags = nil # last compare, for a following conditional branch
|
|
47
|
+
@pending = nil # a conditional branch awaiting one-line-ahead resolution
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Enable frame-pointer stack tracking with +bp+ as the frame register, so a
|
|
51
|
+
# gadget staging data at +[bp+imm]+ (e.g. an argv array off the frame
|
|
52
|
+
# pointer) is recovered instead of collapsing to a bare +writable:+. A nil
|
|
53
|
+
# +bp+ leaves the arch +sp+-only. Call from the arch initializer after +super+.
|
|
54
|
+
# @return [void]
|
|
55
|
+
def setup_frame_pointer(bp)
|
|
56
|
+
@bp = bp
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# Function names whose call ends a gadget: the real +exec*+ entry points.
|
|
60
|
+
# Deliberately excludes the +posix_spawn+ setup helpers
|
|
61
|
+
# (+posix_spawnattr_*+, +posix_spawn_file_actions_*+), which merely share the
|
|
62
|
+
# +posix_spawn+ prefix.
|
|
63
|
+
# @example matches +posix_spawn+, +execve+, +execveat+, +execlp+; not +posix_spawnattr_init+
|
|
64
|
+
TERMINAL_CALL_RE = /\A(?:posix_spawnp?|exec(?:ve|l|v)[a-z]*)\z/
|
|
65
|
+
|
|
66
|
+
# Whether +addr+ calls a terminal +exec*+ entry point (see
|
|
67
|
+
# {#reach_terminal_call}). Matches the resolved symbol name exactly so a
|
|
68
|
+
# setup helper isn't mistaken for the call it precedes.
|
|
69
|
+
# @param [String] addr The call target, e.g. +"10c7d0 <posix_spawn@@GLIBC_2.15>"+.
|
|
70
|
+
# @return [Boolean]
|
|
71
|
+
def terminal_call?(addr)
|
|
72
|
+
name = addr[/<([^@>]+)/, 1]
|
|
73
|
+
!name.nil? && TERMINAL_CALL_RE.match?(name)
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
# Record a reached terminal +exec*+ call as the gadget's effect and stop
|
|
77
|
+
# emulating: it is the gadget's goal, and any following instruction would
|
|
78
|
+
# clobber the argument registers that {#resolve} reads to describe it.
|
|
79
|
+
# @param [String] addr The call target.
|
|
80
|
+
# @return [Symbol] +:fail+, the sentinel {#process!} maps to "stop".
|
|
81
|
+
def reach_terminal_call(addr)
|
|
82
|
+
registers[pc] = addr
|
|
83
|
+
:fail
|
|
31
84
|
end
|
|
32
85
|
|
|
33
86
|
# Parse one command into instruction and arguments.
|
|
@@ -35,10 +88,41 @@ module OneGadget
|
|
|
35
88
|
# @return [(Instruction, Array<String>)]
|
|
36
89
|
# The parsing result.
|
|
37
90
|
def parse(cmd)
|
|
38
|
-
|
|
39
|
-
|
|
91
|
+
self.class.line_memo(:parse)[cmd] ||= begin
|
|
92
|
+
list, index = self.class.instruction_table { instructions }
|
|
93
|
+
mnem = cmd[/\A[0-9a-f]+:\s*(\S+)/, 1] || cmd[/\A\s*(\S+)/, 1]
|
|
94
|
+
inst = index[mnem]
|
|
95
|
+
# Fall back to the original scan for any mnemonic that isn't a bare word.
|
|
96
|
+
inst ||= list.find { |i| i.match?(cmd) }
|
|
97
|
+
raise Error::UnsupportedInstructionError, "Not implemented instruction in #{cmd}" if inst.nil?
|
|
98
|
+
|
|
99
|
+
[inst, inst.fetch_args(cmd)]
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
class << self
|
|
104
|
+
# What a line always reads as, remembered per architecture and +kind+ of
|
|
105
|
+
# reading: a candidate is emulated once for every window it yields, so the
|
|
106
|
+
# same line is read thousands of times, and nothing about how it reads
|
|
107
|
+
# depends on the state the emulator holds.
|
|
108
|
+
# @param [Symbol] kind
|
|
109
|
+
# @return [Hash]
|
|
110
|
+
def line_memo(kind)
|
|
111
|
+
(@line_memo ||= Hash.new { |memo, k| memo[k] = {} })[kind]
|
|
112
|
+
end
|
|
40
113
|
|
|
41
|
-
|
|
114
|
+
# The architecture's supported instructions, and the same set indexed by
|
|
115
|
+
# mnemonic, built on first use and shared by every emulator of that
|
|
116
|
+
# architecture: the set is fixed, while an emulator is made for each of the
|
|
117
|
+
# thousands of windows a candidate yields.
|
|
118
|
+
# @yieldreturn [Array<Instruction>] The table, asked for only on first use.
|
|
119
|
+
# @return [(Array<Instruction>, Hash{String => Instruction})]
|
|
120
|
+
def instruction_table
|
|
121
|
+
@instruction_table ||= begin
|
|
122
|
+
list = yield
|
|
123
|
+
[list, list.each_with_object({}) { |i, h| h[i.inst] ||= i }]
|
|
124
|
+
end
|
|
125
|
+
end
|
|
42
126
|
end
|
|
43
127
|
|
|
44
128
|
# Process one command, without raising any exceptions.
|
|
@@ -48,10 +132,20 @@ module OneGadget
|
|
|
48
132
|
def process(cmd)
|
|
49
133
|
process!(cmd)
|
|
50
134
|
# rescue OneGadget::Error::UnsupportedError => e; p e # for debugging
|
|
135
|
+
rescue OneGadget::Error::UnsupportedInstructionError
|
|
136
|
+
@refused_line = cmd
|
|
137
|
+
false
|
|
51
138
|
rescue OneGadget::Error::Error
|
|
52
139
|
false
|
|
53
140
|
end
|
|
54
141
|
|
|
142
|
+
# The line this emulator could not run at all: an instruction outside
|
|
143
|
+
# {#instructions}. Only what {#parse} reads decides that -- the mnemonic and
|
|
144
|
+
# the operands, never the state the emulator holds -- so the same line stops
|
|
145
|
+
# every emulation that reaches it.
|
|
146
|
+
# @return [String, nil]
|
|
147
|
+
attr_reader :refused_line
|
|
148
|
+
|
|
55
149
|
# Method need to be implemented in inheritors.
|
|
56
150
|
#
|
|
57
151
|
# Process one command.
|
|
@@ -78,34 +172,184 @@ module OneGadget
|
|
|
78
172
|
def argument(_idx); raise NotImplementedError
|
|
79
173
|
end
|
|
80
174
|
|
|
175
|
+
# Marks a register holding whatever a call returned or left behind; see
|
|
176
|
+
# {#clobber_caller_saved}.
|
|
177
|
+
CLOBBERED = '$clobbered'
|
|
178
|
+
|
|
179
|
+
# Constraint types whose payload is an address {Lambda} asserting the target
|
|
180
|
+
# is mapped -- +:writable+ (a store target) and +:readable+ (an unconditional
|
|
181
|
+
# dereference, see {#finalize_deferred_reads}). Both are keyed, offset-
|
|
182
|
+
# normalised, and imply non-NULL identically; they differ only in how they
|
|
183
|
+
# render (see {#render_constraint}). The remaining type, +:raw+, carries a
|
|
184
|
+
# ready-made constraint string that keys on itself, and +:cmp+ a comparison
|
|
185
|
+
# recorded as its +[lhs, operator, rhs]+ parts (see {Conditional}), so it can
|
|
186
|
+
# be inspected rather than re-parsed from the rendered text.
|
|
187
|
+
ADDRESS_TYPES = %i[writable readable].freeze
|
|
188
|
+
|
|
189
|
+
# {SafeCalls} requirements naming what a callee does with a pointer argument,
|
|
190
|
+
# each recorded as something the caller must arrange (see {#record_pointer}),
|
|
191
|
+
# as opposed to a precondition read off the value as it stands.
|
|
192
|
+
POINTER_REQUIREMENTS = %i[writable deref nullable_deref null].freeze
|
|
193
|
+
|
|
194
|
+
# The {POINTER_REQUIREMENTS} a NULL argument already satisfies: both ask for
|
|
195
|
+
# a pointer the callee will leave alone, and NULL is how that is asked for.
|
|
196
|
+
NULLABLE_REQUIREMENTS = %i[nullable_deref null].freeze
|
|
197
|
+
|
|
198
|
+
# @return [Array<String>] Where each descriptor this candidate closes is read
|
|
199
|
+
# from, in the order they are closed, without repeats.
|
|
200
|
+
def closed_fds
|
|
201
|
+
@closed_fds.uniq
|
|
202
|
+
end
|
|
203
|
+
|
|
81
204
|
# @return [Array<String>]
|
|
82
205
|
# Extra constraints found during execution.
|
|
83
206
|
def constraints
|
|
207
|
+
finalize_deferred_reads
|
|
84
208
|
return [] if @constraints.empty?
|
|
85
209
|
|
|
86
|
-
#
|
|
87
|
-
#
|
|
88
|
-
#
|
|
89
|
-
|
|
90
|
-
|
|
210
|
+
# An address constraint is keyed by its base register (deref-0) or full
|
|
211
|
+
# expression (compound); several through one base (e.g. stores at reg+0x0
|
|
212
|
+
# and reg+0x8) impose the same requirement, so keep just the smallest
|
|
213
|
+
# offset (sort ascending, then uniq keeps that first).
|
|
214
|
+
cons = @constraints.sort_by { |type, obj| address_deref0?(type, obj) ? obj.immi : 0 }
|
|
215
|
+
.uniq { |type, obj| constraint_key(type, obj) }
|
|
216
|
+
cons = drop_restated_null(drop_implied_nonzero(cons))
|
|
217
|
+
cons.map { |type, obj| render_constraint(type, obj) }.sort
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
# Whether +(type, obj)+ is an address constraint on a bare (deref-0) target,
|
|
221
|
+
# i.e. one carrying a base register and offset to normalise.
|
|
222
|
+
def address_deref0?(type, obj)
|
|
223
|
+
ADDRESS_TYPES.include?(type) && obj.deref_count.zero?
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
# De-duplication key: an address constraint collapses per (type, base) so
|
|
227
|
+
# constraints of different types on the same register stay distinct; a raw
|
|
228
|
+
# constraint keys on its own text.
|
|
229
|
+
def constraint_key(type, obj)
|
|
230
|
+
return obj unless ADDRESS_TYPES.include?(type)
|
|
91
231
|
|
|
92
|
-
|
|
232
|
+
[type, obj.deref_count.zero? ? obj.obj.to_s : obj.to_s]
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
# Render a constraint to its output string.
|
|
236
|
+
def render_constraint(type, obj)
|
|
237
|
+
case type
|
|
238
|
+
when :writable then "writable: #{obj}"
|
|
239
|
+
when :readable then "readable: #{obj}"
|
|
240
|
+
when :cmp then obj.join(' ')
|
|
241
|
+
else obj
|
|
93
242
|
end
|
|
94
|
-
cons.map { |type, obj| type == :writable ? "writable: #{obj}" : obj }.sort
|
|
95
243
|
end
|
|
96
244
|
|
|
97
|
-
#
|
|
245
|
+
# Drop a "<reg> != 0x0" branch constraint that another constraint already
|
|
246
|
+
# implies: an address constraint (+writable: <reg>+imm+ store target, or
|
|
247
|
+
# +readable: <reg>+) forces <reg> to be a valid (mapped, non-NULL) pointer,
|
|
248
|
+
# so a NULL-check branch on the same register adds nothing. Keeps the
|
|
249
|
+
# emitted set minimal.
|
|
250
|
+
# @param [Array<[Symbol, Object]>] cons The de-duplicated constraint list.
|
|
251
|
+
# @return [Array<[Symbol, Object]>]
|
|
252
|
+
def drop_implied_nonzero(cons)
|
|
253
|
+
nonzero_regs = cons.filter_map do |type, obj|
|
|
254
|
+
obj.obj.to_s if address_deref0?(type, obj)
|
|
255
|
+
end
|
|
256
|
+
return cons if nonzero_regs.empty?
|
|
257
|
+
|
|
258
|
+
cons.reject do |type, obj|
|
|
259
|
+
type == :cmp && obj[1] == '!=' && obj[2] == ZERO && nonzero_regs.include?(obj[0])
|
|
260
|
+
end
|
|
261
|
+
end
|
|
262
|
+
|
|
263
|
+
# Drop a "<X> == 0x0" branch constraint that a NULL requirement on the same
|
|
264
|
+
# value already states (see {#require_null}). Both ask for the same zero, and
|
|
265
|
+
# the one naming it NULL is the one that says what the zero is for.
|
|
266
|
+
# @param [Array<[Symbol, Object]>] cons The de-duplicated constraint list.
|
|
267
|
+
# @return [Array<[Symbol, Object]>]
|
|
268
|
+
def drop_restated_null(cons)
|
|
269
|
+
nulls = cons.filter_map { |type, obj| obj[/\A(.+) == NULL\z/, 1] if type == :raw }
|
|
270
|
+
return cons if nulls.empty?
|
|
271
|
+
|
|
272
|
+
cons.reject do |type, obj|
|
|
273
|
+
type == :cmp && obj[1] == '==' && obj[2] == ZERO && nulls.include?(obj[0])
|
|
274
|
+
end
|
|
275
|
+
end
|
|
276
|
+
|
|
277
|
+
# Where +address+ lands in the memory this emulator tracks: the stack it
|
|
278
|
+
# falls in and its offset within it. A load or store passes the address it
|
|
279
|
+
# dereferences, i.e. its operand with that dereference peeled off.
|
|
280
|
+
# @param [Lambda, String] address An address.
|
|
281
|
+
# @return [(Hash{Integer => Lambda}?, Integer)] The stack, +nil+ if none
|
|
282
|
+
# tracks this address, and the offset to index it at.
|
|
283
|
+
# @example an offset from a register
|
|
284
|
+
# resolve_address(Lambda.parse('rsp+0x10')) #=> [sp_based_stack, 0x10]
|
|
285
|
+
# @example an offset from a pointer no register names
|
|
286
|
+
# resolve_address(Lambda.parse('[rbp-0x48]+0x8')) #=> [the "[rbp-0x48]" stack, 0x8]
|
|
287
|
+
def resolve_address(address)
|
|
288
|
+
base, offset = address_base(address)
|
|
289
|
+
[get_corresponding_stack(base), offset]
|
|
290
|
+
end
|
|
291
|
+
|
|
292
|
+
# The memory +base+ addresses: what this candidate has written through it,
|
|
293
|
+
# keyed by offset. Every base gets one -- the stack pointer, the frame
|
|
294
|
+
# pointer, any other register, and a value no register names at all (a
|
|
295
|
+
# pointer the candidate derived and then built an array through).
|
|
98
296
|
#
|
|
99
|
-
#
|
|
100
|
-
#
|
|
101
|
-
#
|
|
102
|
-
#
|
|
103
|
-
#
|
|
104
|
-
|
|
297
|
+
# Keyed by how the base renders, which is what makes one store enough: a
|
|
298
|
+
# register that gets reassigned addresses somewhere else and renders
|
|
299
|
+
# differently, so it lands on a different key without any invalidation to
|
|
300
|
+
# arrange. Only a store overwriting what the base itself reads from would
|
|
301
|
+
# break that, which a candidate short enough to be a gadget doesn't do.
|
|
302
|
+
# @example a register
|
|
303
|
+
# get_corresponding_stack('x21')
|
|
304
|
+
# @example a pointer rounded down before use
|
|
305
|
+
# get_corresponding_stack(Lambda.parse('(rsi & 0xfffffffffffffff0)'))
|
|
306
|
+
# @param [String, Lambda] base A base, as {#resolve_address} yields it --
|
|
307
|
+
# not an offset expression, whose offset belongs in the key it indexes.
|
|
308
|
+
# @return [Hash{Integer => Lambda}, nil] nil when +base+ names nothing this
|
|
309
|
+
# emulator tracks memory for.
|
|
310
|
+
def get_corresponding_stack(base)
|
|
311
|
+
return nil unless base.is_a?(OneGadget::Emulators::Lambda) || registers.key?(base.to_s)
|
|
312
|
+
|
|
313
|
+
tracked_memory[base.to_s]
|
|
105
314
|
end
|
|
106
315
|
|
|
107
316
|
private
|
|
108
317
|
|
|
318
|
+
# Every base this candidate has written through, each mapped to the memory
|
|
319
|
+
# it addresses. See {#get_corresponding_stack}, which is how it is reached.
|
|
320
|
+
# @return [Hash{String => Hash{Integer => Lambda}}]
|
|
321
|
+
def tracked_memory
|
|
322
|
+
@tracked_memory ||= Hash.new { |memory, base| memory[base] = tracked_stack(base) }
|
|
323
|
+
end
|
|
324
|
+
|
|
325
|
+
# Split +address+ into the base it is offset from and that offset, in the
|
|
326
|
+
# forms {#get_corresponding_stack} and a tracked stack expect.
|
|
327
|
+
# @param [Lambda, String] address See {#resolve_address}.
|
|
328
|
+
# @return [(String, Lambda), Integer]
|
|
329
|
+
def address_base(address)
|
|
330
|
+
return [address, 0] unless address.is_a?(OneGadget::Emulators::Lambda)
|
|
331
|
+
# Still a dereference deep, so the whole thing names one value rather than
|
|
332
|
+
# an offset from anything: its own immediate is part of that name.
|
|
333
|
+
return [address, 0] if address.deref_count.positive?
|
|
334
|
+
# An operation's +obj+ is only the value it operates on, which addresses
|
|
335
|
+
# somewhere else entirely -- a candidate building an array through
|
|
336
|
+
# +(rsi & ~0xf)+ is not writing through +rsi+.
|
|
337
|
+
return [address.dup.tap { |base| base.immi = 0 }, address.immi] if address.operation?
|
|
338
|
+
|
|
339
|
+
[address.obj, address.immi]
|
|
340
|
+
end
|
|
341
|
+
|
|
342
|
+
# An always-on tracked stack keyed by offset: a Hash that lazily materialises
|
|
343
|
+
# +[reg+off]+ as a one-deref {Lambda}. Used for the +sp+- and {#bp}-based stacks.
|
|
344
|
+
def tracked_stack(reg)
|
|
345
|
+
Hash.new do |h, k|
|
|
346
|
+
h[k] = OneGadget::Emulators::Lambda.new(reg).tap do |lmda|
|
|
347
|
+
lmda.immi = k
|
|
348
|
+
lmda.deref!
|
|
349
|
+
end
|
|
350
|
+
end
|
|
351
|
+
end
|
|
352
|
+
|
|
109
353
|
def check_register!(reg)
|
|
110
354
|
raise Error::InstructionArgumentError, "#{reg.inspect} is not a valid register" unless register?(reg)
|
|
111
355
|
end
|
|
@@ -113,10 +357,307 @@ module OneGadget
|
|
|
113
357
|
def check_argument(idx, expect)
|
|
114
358
|
case expect
|
|
115
359
|
when :global_var? then global_var?(argument(idx))
|
|
116
|
-
when :zero? then argument(idx).is_a?(Integer) && argument(idx).zero?
|
|
117
360
|
end
|
|
118
361
|
end
|
|
119
362
|
|
|
363
|
+
# Accept a +call+ to a libc function the emulator treats as non-terminal
|
|
364
|
+
# (a syscall wrapper). {SafeCalls::COMMON} maps each function name to its
|
|
365
|
+
# per-argument requirements: an argument index paired with one of
|
|
366
|
+
# * +:global_var?+ - a precondition that must already hold, else the
|
|
367
|
+
# candidate is aborted (+:fail+).
|
|
368
|
+
# * +:closed_fd+ - the descriptor the callee closes. Nothing is required of
|
|
369
|
+
# it; it is recorded, because closing a standard descriptor changes what
|
|
370
|
+
# the spawned shell can still do (see {#note_closed_fd}).
|
|
371
|
+
# * +:null+ - the callee must be given NULL here, so +<arg> == NULL+ is
|
|
372
|
+
# recorded for the caller to arrange. A value that can never be NULL --
|
|
373
|
+
# a fixed address, or any other non-zero literal -- aborts the candidate.
|
|
374
|
+
# @example +__sigaction(sig, act, oldact)+ writes the old action through
|
|
375
|
+
# +oldact+ unless it is NULL
|
|
376
|
+
# * +:nullable_deref+ - the callee dereferences this argument *unless it is
|
|
377
|
+
# NULL*, which glibc guards with an explicit NULL check. When the pointer
|
|
378
|
+
# isn't already known to be mapped, +<arg> == NULL+ is recorded so the
|
|
379
|
+
# callee takes the skip-the-dereference path. Only tag an argument this way
|
|
380
|
+
# after confirming the callee both NULL-checks it and still reaches the
|
|
381
|
+
# terminal call on the NULL path.
|
|
382
|
+
# * +:deref+ - the callee dereferences this argument *unconditionally* (no
|
|
383
|
+
# NULL guard), so it can't be made safe by forcing it NULL. When the pointer
|
|
384
|
+
# isn't already known to be mapped, +readable: <arg>+ is recorded so the
|
|
385
|
+
# attacker knows it must reference readable memory.
|
|
386
|
+
# @example +posix_spawnattr_setsigmask(attr, set)+ runs +attr->__ss = *set+
|
|
387
|
+
# * +:writable+ - the callee *writes through* this argument (an out-param), so
|
|
388
|
+
# +writable: <arg>+ is recorded (via {#add_writable}, which drops the
|
|
389
|
+
# pc/+$base+/sp targets that are writable or fixed for free).
|
|
390
|
+
# @example +posix_spawnattr_init(attr)+ writes +*attr+
|
|
391
|
+
# Both deref checks are deferred to {#finalize_deferred_reads} because a
|
|
392
|
+
# +<reg>+<imm>+ pointer may only become known-mapped once a later store marks
|
|
393
|
+
# +<reg>+ writable.
|
|
394
|
+
# @return [nil, :fail] +nil+ = call accepted, +:fail+ = abort the candidate.
|
|
395
|
+
def dispatch_safe_call(addr)
|
|
396
|
+
func = SafeCalls::COMMON.keys.find { |n| addr.include?(n) }
|
|
397
|
+
return :fail unless func
|
|
398
|
+
|
|
399
|
+
SafeCalls::COMMON[func].each do |idx, req|
|
|
400
|
+
next note_closed_fd(argument(idx)) if req == :closed_fd
|
|
401
|
+
|
|
402
|
+
ok = POINTER_REQUIREMENTS.include?(req) ? record_pointer(argument(idx), req) : check_argument(idx, req)
|
|
403
|
+
return :fail unless ok
|
|
404
|
+
end
|
|
405
|
+
clobber_caller_saved
|
|
406
|
+
nil
|
|
407
|
+
end
|
|
408
|
+
|
|
409
|
+
# Forget the caller-saved registers, which the call it just accepted is free
|
|
410
|
+
# to leave in any state (see {OneGadget::ABI::CALLER_SAVED}). Keeping their
|
|
411
|
+
# entry values would let a later branch on one -- +call __close+ then
|
|
412
|
+
# +test eax, eax+ -- read as a condition on a value the caller chooses, when
|
|
413
|
+
# it is really the callee's return.
|
|
414
|
+
#
|
|
415
|
+
# The return register is set to zero rather than forgotten: these calls are
|
|
416
|
+
# accepted on the basis that they succeed, and success is what they all
|
|
417
|
+
# report that way, so a branch on the result resolves instead of ending the
|
|
418
|
+
# path. A path that needs the failing side then contradicts itself and drops.
|
|
419
|
+
#
|
|
420
|
+
# TODO: success is assumed, not required. A path that keeps going after the
|
|
421
|
+
# call fails can reach a terminal call just as well, and is dropped here
|
|
422
|
+
# only because the return is pinned. Modelling the result per function --
|
|
423
|
+
# which values it can return, and what each one requires -- would let both
|
|
424
|
+
# sides be walked, at the cost of a constraint describing the failing one.
|
|
425
|
+
# @return [void]
|
|
426
|
+
def clobber_caller_saved
|
|
427
|
+
caller_saved.each do |reg|
|
|
428
|
+
next unless registers.key?(reg)
|
|
429
|
+
|
|
430
|
+
# A vector register holds one value per lane; keep that shape.
|
|
431
|
+
current = registers[reg]
|
|
432
|
+
registers[reg] = current.is_a?(Array) ? Array.new(current.size) { clobbered_value } : clobbered_value
|
|
433
|
+
end
|
|
434
|
+
reg = return_register
|
|
435
|
+
registers[reg] = 0 if reg && registers.key?(reg)
|
|
436
|
+
end
|
|
437
|
+
|
|
438
|
+
# The register this architecture's calling convention returns a value in.
|
|
439
|
+
def return_register
|
|
440
|
+
OneGadget::ABI::RETURN_REGISTER[arch_name]
|
|
441
|
+
end
|
|
442
|
+
|
|
443
|
+
# Registers this architecture's calling convention lets a call destroy.
|
|
444
|
+
def caller_saved
|
|
445
|
+
@caller_saved ||= OneGadget::ABI::CALLER_SAVED.fetch(arch_name, [])
|
|
446
|
+
end
|
|
447
|
+
|
|
448
|
+
def arch_name
|
|
449
|
+
self.class.name.split('::').last.downcase.to_sym
|
|
450
|
+
end
|
|
451
|
+
|
|
452
|
+
# Stands for a value left by a call: unknowable, and not the caller's to pick.
|
|
453
|
+
def clobbered_value
|
|
454
|
+
OneGadget::Emulators::Lambda.new(CLOBBERED)
|
|
455
|
+
end
|
|
456
|
+
|
|
457
|
+
# Whether +value+ is one a call left behind. Nothing can be said about it, so
|
|
458
|
+
# reading one as a constraint operand abandons the path (see
|
|
459
|
+
# {Conditional#operand_str}).
|
|
460
|
+
def clobbered?(value)
|
|
461
|
+
return value.any? { |v| clobbered?(v) } if value.is_a?(Array)
|
|
462
|
+
|
|
463
|
+
value.is_a?(OneGadget::Emulators::Lambda) && value.obj == CLOBBERED
|
|
464
|
+
end
|
|
465
|
+
|
|
466
|
+
# Record a descriptor the gadget closes on its way to the terminal call, by
|
|
467
|
+
# where it is read from.
|
|
468
|
+
#
|
|
469
|
+
# Only one the caller chooses is worth recording, since which descriptor
|
|
470
|
+
# lands there decides whether the spawned shell keeps its I/O. One fixed in
|
|
471
|
+
# the code is nobody's to change, and no path that reaches a terminal call
|
|
472
|
+
# closes one, so it isn't modelled.
|
|
473
|
+
# @param [Object] fd The descriptor argument, as {#argument} returns it.
|
|
474
|
+
# @return [void]
|
|
475
|
+
def note_closed_fd(fd)
|
|
476
|
+
@closed_fds << fd.to_s unless fd.is_a?(Integer)
|
|
477
|
+
end
|
|
478
|
+
|
|
479
|
+
# Record what the callee does through a pointer argument.
|
|
480
|
+
#
|
|
481
|
+
# Only a symbolic value carries a precondition the caller can arrange: an
|
|
482
|
+
# address that arrived as a literal is either one nobody can make readable
|
|
483
|
+
# or writable, or NULL. The exception is the argument a callee leaves alone
|
|
484
|
+
# when it is NULL -- passing NULL is exactly how that is asked for, so it is
|
|
485
|
+
# accepted and needs nothing of the caller.
|
|
486
|
+
# @return [Boolean] false to abort the candidate.
|
|
487
|
+
def record_pointer(arg, req)
|
|
488
|
+
return NULLABLE_REQUIREMENTS.include?(req) if arg.is_a?(Integer) && arg.zero?
|
|
489
|
+
return false unless arg.is_a?(OneGadget::Emulators::Lambda)
|
|
490
|
+
|
|
491
|
+
case req
|
|
492
|
+
when :writable then add_writable(arg)
|
|
493
|
+
when :deref then @deferred_reads << [arg, :readable]
|
|
494
|
+
when :nullable_deref then @deferred_reads << [arg, :nullable]
|
|
495
|
+
when :null then return require_null(arg)
|
|
496
|
+
end
|
|
497
|
+
true
|
|
498
|
+
end
|
|
499
|
+
|
|
500
|
+
# Record that +arg+ has to be NULL. An address that is mapped by the time
|
|
501
|
+
# the gadget runs -- the stack, a libc global -- names real memory and so
|
|
502
|
+
# can't also be NULL, and no caller can arrange otherwise.
|
|
503
|
+
# @return [Boolean] false to abort the candidate.
|
|
504
|
+
def require_null(arg)
|
|
505
|
+
return false if mapped_nonnull_pointer?(arg)
|
|
506
|
+
|
|
507
|
+
@constraints << [:raw, "#{arg} == NULL"]
|
|
508
|
+
true
|
|
509
|
+
end
|
|
510
|
+
|
|
511
|
+
# Now that emulation is complete and the full writable set is known, record
|
|
512
|
+
# the residual constraint for each deferred pointer argument, unless it is
|
|
513
|
+
# already known to reference mapped memory. A +:nullable+ deref becomes a
|
|
514
|
+
# +:raw+ +<arg> == NULL+ (take the skip-the-dereference path); a +:readable+
|
|
515
|
+
# deref becomes a +:readable+ constraint (NULL can't satisfy an unconditional
|
|
516
|
+
# dereference) -- a typed address constraint handled like +:writable+ (see
|
|
517
|
+
# {#constraints}). Idempotent: the queue is cleared once resolved.
|
|
518
|
+
def finalize_deferred_reads
|
|
519
|
+
@deferred_reads.each do |arg, kind|
|
|
520
|
+
if kind == :readable
|
|
521
|
+
next if mapped_nonnull_pointer?(arg) || writable_pointer?(arg)
|
|
522
|
+
|
|
523
|
+
@constraints << [:readable, arg]
|
|
524
|
+
else
|
|
525
|
+
next if deref_safe_pointer?(arg) || writable_pointer?(arg)
|
|
526
|
+
|
|
527
|
+
@constraints << [:raw, "#{arg} == NULL"]
|
|
528
|
+
end
|
|
529
|
+
end
|
|
530
|
+
@deferred_reads = []
|
|
531
|
+
end
|
|
532
|
+
|
|
533
|
+
# Whether dereferencing +val+ is safe: it is NULL, or a pointer already known
|
|
534
|
+
# to reference mapped memory (see {#mapped_pointer?}).
|
|
535
|
+
def deref_safe_pointer?(val)
|
|
536
|
+
return true if val.is_a?(Integer) && val.zero?
|
|
537
|
+
return false unless val.is_a?(OneGadget::Emulators::Lambda) && val.deref_count.zero?
|
|
538
|
+
|
|
539
|
+
mapped_pointer?(val.obj.to_s)
|
|
540
|
+
end
|
|
541
|
+
|
|
542
|
+
# Whether +val+ is already known to be a non-NULL pointer into mapped memory
|
|
543
|
+
# -- the safety bar for an *unconditional* dereference, which (unlike
|
|
544
|
+
# {#deref_safe_pointer?}) NULL cannot clear.
|
|
545
|
+
def mapped_nonnull_pointer?(val)
|
|
546
|
+
return false unless val.is_a?(OneGadget::Emulators::Lambda) && val.deref_count.zero?
|
|
547
|
+
|
|
548
|
+
mapped_pointer?(val.obj.to_s)
|
|
549
|
+
end
|
|
550
|
+
|
|
551
|
+
# Whether +val+ points into memory already known mapped from a store
|
|
552
|
+
# through its base during emulation -- either an explicit +writable+
|
|
553
|
+
# constraint (a store {#get_corresponding_stack} couldn't place, e.g. a
|
|
554
|
+
# compound destination), or memory tracked against that base (a store it
|
|
555
|
+
# could place -- the same evidence, a different bookkeeping path).
|
|
556
|
+
def writable_pointer?(val)
|
|
557
|
+
return false unless val.is_a?(OneGadget::Emulators::Lambda) && val.deref_count.zero?
|
|
558
|
+
|
|
559
|
+
base = val.obj.to_s
|
|
560
|
+
return true if @constraints.any? { |type, obj| type == :writable && obj.obj.to_s == base }
|
|
561
|
+
|
|
562
|
+
stack = get_corresponding_stack(base)
|
|
563
|
+
!!stack && !stack.empty?
|
|
564
|
+
end
|
|
565
|
+
|
|
566
|
+
# Whether an address expression names memory known to be mapped: a stack slot,
|
|
567
|
+
# the libc base, or a libc global.
|
|
568
|
+
def mapped_pointer?(obj)
|
|
569
|
+
obj.include?(sp) || obj == libc_base.obj.to_s || global_var?(obj)
|
|
570
|
+
end
|
|
571
|
+
|
|
572
|
+
# The libc load base as a symbolic +$base+ lambda. Only the arches that
|
|
573
|
+
# concretize libc-relative operands (amd64's +rip+, arm's +pc+) ever produce
|
|
574
|
+
# it; elsewhere it never matches a real operand, so it's harmless.
|
|
575
|
+
# @example
|
|
576
|
+
# libc_base.to_s #=> '$base'
|
|
577
|
+
def libc_base
|
|
578
|
+
@libc_base ||= OneGadget::Emulators::Lambda.new('$base')
|
|
579
|
+
end
|
|
580
|
+
|
|
581
|
+
# Record a "must be writable" constraint for a store's target address.
|
|
582
|
+
# @param [OneGadget::Emulators::Lambda] lmda The destination address, zero-deref
|
|
583
|
+
# (already +ref!+'d by the caller).
|
|
584
|
+
def add_writable(lmda)
|
|
585
|
+
@constraints << [:writable, lmda] if needs_writable?(lmda)
|
|
586
|
+
end
|
|
587
|
+
|
|
588
|
+
# The value an instruction reads through +val+: what this candidate put at
|
|
589
|
+
# that address, when it is one the candidate has written, and the
|
|
590
|
+
# dereference itself otherwise (recording the read, see {#note_read}).
|
|
591
|
+
#
|
|
592
|
+
# A slot the gadget fills in reads back as what was put there, so a
|
|
593
|
+
# constraint on it names the value the caller has to arrange rather than
|
|
594
|
+
# whatever the slot held on entry -- which the gadget has already replaced.
|
|
595
|
+
# @param [Object] val The operand's value, as produced by {#arg_to_lambda}.
|
|
596
|
+
# @return [Object]
|
|
597
|
+
# @example (arm) +str r3, [sp, #4]+ then +ldr r0, [sp, #4]+ reads back r3
|
|
598
|
+
def read_value(val)
|
|
599
|
+
stored = stored_value(val)
|
|
600
|
+
return stored unless stored.nil?
|
|
601
|
+
|
|
602
|
+
note_read(val)
|
|
603
|
+
val
|
|
604
|
+
end
|
|
605
|
+
|
|
606
|
+
# What this candidate stored at the address +val+ dereferences, or +nil+ if
|
|
607
|
+
# it stored nothing there. Only a single dereference of an address this
|
|
608
|
+
# emulator tracks names a slot it can answer for (see {#resolve_address}).
|
|
609
|
+
# @param [Object] val
|
|
610
|
+
# @return [Object, nil]
|
|
611
|
+
def stored_value(val)
|
|
612
|
+
return nil unless val.is_a?(OneGadget::Emulators::Lambda) && val.deref_count.positive?
|
|
613
|
+
|
|
614
|
+
stack, offset = resolve_address(val.dup.ref!)
|
|
615
|
+
stack&.key?(offset) ? stack[offset] : nil
|
|
616
|
+
end
|
|
617
|
+
|
|
618
|
+
# Require +val+'s pointer be readable when a load dereferences an
|
|
619
|
+
# uncontrolled base -- one that doesn't root at mapped memory (see
|
|
620
|
+
# {#mapped_pointer?}), since a value read from the stack or a libc global is
|
|
621
|
+
# reliably valid. Deferred like a safe call's +:deref+ so a later store
|
|
622
|
+
# proving the base writable still discharges it.
|
|
623
|
+
# @param [Object] val The loaded value, as produced by {#arg_to_lambda}.
|
|
624
|
+
# @example note_read(arg_to_lambda('[x19+0xed8]')) records readable: x19+0xed8
|
|
625
|
+
def note_read(val)
|
|
626
|
+
return unless val.is_a?(OneGadget::Emulators::Lambda) && val.deref_count.positive?
|
|
627
|
+
|
|
628
|
+
ptr = val.dup.ref!
|
|
629
|
+
root = root_base(ptr)
|
|
630
|
+
return if root && mapped_pointer?(root.to_s)
|
|
631
|
+
|
|
632
|
+
@deferred_reads << [ptr, :readable]
|
|
633
|
+
end
|
|
634
|
+
|
|
635
|
+
# The innermost base name of a (possibly nested or dereferenced) address
|
|
636
|
+
# lambda, following +obj+ through any nested lambdas.
|
|
637
|
+
# @param [OneGadget::Emulators::Lambda] lmda
|
|
638
|
+
# @return [String, nil] The root base name, or +nil+ for an absolute address.
|
|
639
|
+
# @example
|
|
640
|
+
# root_base(arg_to_lambda('[[$base+0x10]+0x8]')) #=> '$base'
|
|
641
|
+
# root_base(arg_to_lambda('x19+0xed8')) #=> 'x19'
|
|
642
|
+
def root_base(lmda)
|
|
643
|
+
obj = lmda.obj
|
|
644
|
+
obj = obj.obj while obj.is_a?(OneGadget::Emulators::Lambda)
|
|
645
|
+
obj
|
|
646
|
+
end
|
|
647
|
+
|
|
648
|
+
# Whether a store through +lmda+ imposes a "must be writable" constraint. It
|
|
649
|
+
# lands on writable-or-fixed memory for free when the target is the stack
|
|
650
|
+
# pointer (the stack is always writable), the program counter, or the libc
|
|
651
|
+
# base (a fixed libc-internal address); a frame pointer or attacker register
|
|
652
|
+
# still needs the constraint.
|
|
653
|
+
# @example (sp is +rsp+, pc is +rip+)
|
|
654
|
+
# needs_writable?(arg_to_lambda('rax')) #=> true # an attacker register
|
|
655
|
+
# needs_writable?(arg_to_lambda('[rsp+0x8]')) #=> false # the stack is writable
|
|
656
|
+
# needs_writable?(arg_to_lambda('$base+0x10')) #=> false # a fixed libc global
|
|
657
|
+
def needs_writable?(lmda)
|
|
658
|
+
![sp, pc, libc_base.obj.to_s].include?(lmda.obj.to_s)
|
|
659
|
+
end
|
|
660
|
+
|
|
120
661
|
def register?(reg)
|
|
121
662
|
registers.include?(reg)
|
|
122
663
|
end
|
|
@@ -133,12 +674,36 @@ module OneGadget
|
|
|
133
674
|
OneGadget::Emulators::Lambda.parse(arg, predefined: registers)
|
|
134
675
|
end
|
|
135
676
|
|
|
677
|
+
# The value +op+ produces from +lhs+ and +rhs+: folded when both are
|
|
678
|
+
# concrete, and otherwise named as the operation itself, since no
|
|
679
|
+
# base+offset expresses it (see {Lambda.operation}). +nil+ when it is
|
|
680
|
+
# neither -- an operation on something this emulator cannot name, which the
|
|
681
|
+
# caller reports against its own mnemonic.
|
|
682
|
+
# @param [Symbol] op A Ruby operator that doubles as how the operation renders.
|
|
683
|
+
# @param [Lambda, Integer] lhs The value operated on.
|
|
684
|
+
# @param [Lambda, Integer] rhs The value it is operated on with.
|
|
685
|
+
# @return [Lambda, Integer, nil] The result, or nil when it is not one this
|
|
686
|
+
# emulator can name.
|
|
687
|
+
# @example (amd64) +and rax, 0xf+ with rax unknown leaves +(rax & 0xf)+
|
|
688
|
+
# operation_result(:&, registers['rax'], 0xf)
|
|
689
|
+
def operation_result(op, lhs, rhs)
|
|
690
|
+
return lhs.send(op, rhs) if lhs.is_a?(Integer) && rhs.is_a?(Integer)
|
|
691
|
+
return nil unless lhs.is_a?(OneGadget::Emulators::Lambda)
|
|
692
|
+
|
|
693
|
+
# Exclusive-or of a value with itself is zero whether or not the value is
|
|
694
|
+
# known -- how every arch spells "zero this register".
|
|
695
|
+
return 0 if op == :^ && lhs.to_s == rhs.to_s
|
|
696
|
+
|
|
697
|
+
OneGadget::Emulators::Lambda.operation(lhs, op.to_s, rhs)
|
|
698
|
+
end
|
|
699
|
+
|
|
136
700
|
def raise_unsupported(inst, *args)
|
|
137
701
|
raise OneGadget::Error::UnsupportedInstructionArgumentError, "#{inst} #{args.join(', ')}"
|
|
138
702
|
end
|
|
139
703
|
|
|
704
|
+
# Resolve +sp+- and (when tracked) {#bp}-relative operands to their offset.
|
|
140
705
|
def eval_dict
|
|
141
|
-
{ sp => 0 }
|
|
706
|
+
bp ? { sp => 0, bp => 0 } : { sp => 0 }
|
|
142
707
|
end
|
|
143
708
|
|
|
144
709
|
def size_t
|