通过测试得出以下猜想:
1、正版的burpsuite应该没有经过混淆,从BurpLoader.jar和burpsuite_pro_v1.5.18.jar的混淆方式来
看是用了同一款混淆工具,所以如果有正版的话,大概可以逆向出授权算法,例如larry_lau大神。
2、BurpLoader.jar最新版添加了反调试代码,并对混淆过的burpsuite_pro_vx.x.x.jar进行了md5值校验;
3、混淆过的burpsuite_pro_vx.x.x.jar中添加了对BurpLoader.jar的校验,防止有人对BurpLoader.jar进行patch。
第三点可以这样简单验证,将BurpLoader.class文件中的字符串larry_lau@163.com随便改掉一个字符再放回BurpLoader.jar中,该程序就不能正常运行了。
这就是我百思不得其解的地方,因为我逆向出了loader的源代码,编译却执行不了,问题就出在这里。larry_lau大神浪费我不少时间啊:)
下面贴几张图:
上图需要先如下配置:
如果要看字节码文件可以这样操作:
字节码文件也可以调试,需要用到eclipse的Bytecode Visualizer插件,以下是调试中的几张截图:
1.5.18版本的BurpLoader.jar经过了混淆,但主要参数可以用python解密得到。解密算法类似:
def decrypt(s): s=s.decode('unicode-escape') key=[113,101,11,8,33] p='' for i in range(len(s)): p+=chr(ord(s[i])^key[i%5]) return p s=[r"\u001b\u0001|x",r"\u0015\u0000i}F",r"\u0007\u0000yjN\u0002\u0000",r"\u0010\u0002nfU\u001d\u000ci",r"\u0010\u0002nfU\u0001\u0004`",r"\u001b\u0004}i@\u0016\u0000e|"] print map(decrypt,s) 输出:['jdwp', 'debug', 'verbose', 'agentlib', 'agentpath', 'javaagent']
上面是loader新版本中反调试检测用到的一些字符串。你可以在字节码文件中将混淆加密的utf8格式的字符串用该算法解密,只需要替换一下key。
上面图中连续5个bipush指令后面的常数就是解密key了。1.5.18版本的源代码大概如下:
import burp.StartBurp; import java.lang.reflect.Field; import java.util.prefs.Preferences; import javax.swing.JOptionPane; public class test { private static final String[] strData = { "38d0c8c1cb775995e457f5742a5f7bcad69c2b75308a27f3ed54eea6f00c3dadc93f003c046d652130e61da55baa67892fcf88182d982b118918771f23eef0505134be2dac47e1ac3e7b70ec39e1d278adf074c6630bd3397f5720bc1470fb5475d64b3881ec55987845817a5137f8b10d47d4d7ac41b6807b5e812b894f1ff50214950fbd6023c98497df3332ba5e02ed23cb6f5ba16454563705c720ee4da909b15784a90aeaca156c9924d00f4e85ea2712ee782a91e492da9cc1deb2c59edac929af784d2deff7c72a6c5c5c69e34ca2050ce0cac574e3bcc09ae4d851b067c596d33833cb764dcf533fe1fc089babc2396fc4e8586e34dca2db69f7ac0f5fd4954f641b51e619fd4d0ea2bf75d3e0ee069ca447e6fa71413a16f79ac2878b84718c963be49d4aa3756b3ee02b7a90814ad7610ae3fad6f1c25bfa33363a585f84f310258d1ea08443e8f2fe71be8ccc204f41016ba865485202e9a86714a26739d30df1db61d8c3bb8931fd2d15f20010c220217d661aec6aa81058383b07e497e8c8bf00d5dd8cfc0d618221f78a696cc99978fc0ab78efced7eedbcdb8b79ea9400daa347621a66f00159d433f0b9e434043f2b9d0c033b0227f7e60e4ecb92c1c585edf213c820d119b985acaaa623e962e73dc23391ed30834edb5a67df0b558e35f5f97c2e908617d76cdda13de8a7e63d12bd44ef22f5a98455945bb9d8e11d58dc478a472847a94c9b7b0cc340721c3590d636c4766b0f6cc1da688ded25e6d8a235de558b6b143a7323e5d10f63a25960e9113887f14f2596ac0e7706b3808585b17b3c21de541cb836e8a093efcbdf24b0da5482d8a100eaa16e242c76b90335045208332af89aa58a24557404b52c33aa54e7a1282ef34e4dbfacf63eb0caf1c59b1e789c3cdd9223cf2035edbe7ea5c36e3fa4f4501a9ba270f23dfeef052aebfa478cdeb297de12e7c38d38906cfe3e28242cdc89af32bd8f2946cae23e66c8bec29c95de401d6c1aa285900391a6e1b52baadd6f84b9f3df3b18ec49b491829d9faa958a690a08c268e6e24c4eb3b619b96fc32751a26aef09e23e44006cec0569b16151f143a236bcaffc355336fcd22c5a47cd3fd7aa0f29d28dd06b90de4b596e8673c3f6499bb6855efbd219c640374e830e84b93e48f1aa983694331baa9650729568787d478c689282d487a54e65292523ef949e555207c1e87fdf46c246c483c9e8f51ddc6229823d98a607b570eeff6a37b8fe862a7db8acd5cc29a600cbf0ee74f06494cb3a12a6dcf81ff898f0ea02430636408c87e0c6ee52dd22360f25af8f88563ab04a92cef8dce28cef5d4e7cbdd4fc38f667746c4281c3b86589d0ec80d243296302c93209804fc76e90d60dc7eadf9f55f2bf7eff3ba049a8965fde45205e1e49884a8efa3e3998f87eb3e5f7e46704f24cc12c73ef15be1ff5d4edb861e481a069a2304479adbb1ffea7937a1b11422585fa0911356334ed396de9a68c06c95c7143a628c98e267b1a6a8a11a1a51e130189313b4f60a8a9e17a4499a79a8dd0a8a4c95369e27248e985e2106a5f8791d74a415bb4f87411d4ecfac94743c368f31b50295370cf3a6f9cf00b4f7cd26a5a98cc79f1c897ff86a2fd2550e16fd3e988ac0e1f1429ba7fa7fc15e9cce37d8e5442d7360fe34c430a0fe798784f9330ac80abec883f9138af73a3fd6eaf0e99eec3c9fdea9cabd67beceb1fe8b9a9676cc8b24b8f45d4fd0c9ca1991b931b0cccd6baf0c192057f5a3e70948066ccb55f7ce009fdd168f1254fc558961c9569e73570ef5070ce3e4065b0177bb58a05a9b9fabf140a3f669cdec695336a7a357cc069f63342f764d4e5a51d50cf90eff944d95fdc8b87393ea8f199356a11da0227347c96357bb9f671ee5c4bc9ccbfd6cb5a38fd1d81cb619bf34758516b190cdd562923c98d7a439925ed4a8c0b8c7856df9b88fb535939245e6bcd6cb2026d20c3a20d6735acc0e8326a999a688bd7267b4b78d57c16df1ab375bac9606817a0f1a585f8f70f359df7c01a2b71b4f9f4b2135512eeb00bf2218e52627968927cace11f76bdc34c2e3f9074e33ade0a67f4bc9a902202774283fc780a4eb3364c33e5152735923f5f150e5fbc5b679ee355f5c18c80d997d3615c7a87fee7e5833229fc9eae30b0e0a59d793c63eddf90b98d02b409e314d83fb8e3b3d9c82c88f7c3f1f77c9b320651deea7dd9b6f8f5240c1ed2475c5bea686e2670c3de6ad533b10092d86b5fd9397144fcee390869feace3421de5933db6fad8d9638d4f6869909e7fb325ad9be48fdfff285928403cebd3cc6c6919ffb7b2c86e0776678c0752f054618b00b1118f422428a6518c5ee47525c3009c191f6ec0a79c48e1044dd6701cb9dff590930e8cdf4f59fe39a6bbcca86e894599a1632f3fbd2291fc4cb64c3f8fb272fc9e8c1774fc72ec33ad5ddffed811177a69e9f2a0df374535987ee98231f218e0cb2c3f1700c273f540d3dec432d153016a537b5746637421beccc1d31eb1c5b9c8541fc6aa15bd39f36102d25fe2e9ad3ad57530415e1891f72dac5e129d900fe387d2893dea6de95877a257b67b61b111034776070ae1125850f4a94cdc4bda6aefa85cb1980e8ae80df0f9ee03e82ff20ab33f4a0533cbf982abf6e173a8f71c5c40a63abaac69787d6a502cc092440bde30776e2880e986605f9ee41d420cfcab5c1a48b85162ddbe3aa0be65fadf7e867443e4f50da84f7ff0ff612da683e0a4fada217143b7b653eb49581d11b65ce75cbe4fde2148b9b4530063aab7d8b96573ad9812ae499e88bd6878ee8317ff1d047115c2888065f13daafe0e51d121a68aad7aad40644dae8c7baa22b6322901f6aa38a121fd575d343b3faca0d78d6a389e331881021816d39b39850279ee8f368515ab41c5fac6cbdf00d12135ff4d2229512a20e8ff0788dae99736d927f342c787b97b4d595552b6e58062e846ae40b1e66a83976b9573bd7e3dcf31f4ee173cb0fbb5384572697e115caf05ece44c495bf10ce7238a6c0be5f16603336ee6940026c87bb8a6ce39806386b67e44abf27a18763bcabb4e8021ac2143f6fb582d391418919717dd93cd45f1c12458f7cc53645fde27661698b5040f17a4bba03be54f9ebfb1b8bd3c48def85952c9f086672c4d2e12270eea39e4895286e553f5f88b1ad19361e3123bad5aca3497c7b451ae0ed67c7903bdf43302ce15d01dc5637a93c30d9f1f59782979ff1b80e7ffed887311498ef85d779af91d8caa63db6467a8dc7ac9cb0fa2607be780d88598097588b5f4335ef026bf37", "8d19e8cc60daf87e885313c35713c10a96bfaba0c9aaf0fea189ba80f3dd95201732ede8deedbd296f02e53c0d8bd4cfa731ab2de0465f7cb4ee308d0f080413df1f42b75d2d03f7cba7e5c6a0f6e35c4f11c05fa4caeb2093bfa1fcb1a440dd5747a194fe5ae6404bd91f0f3ab0587400e2b15486e39266606412175b588018eb79467633a9f0191de613d41b7133d613cfc9b27f0ae04bb7bf2b86faa8230a6ca2b0ae7b0212879e0bc342783cf7f7fc1ff6a097f3a44ce8c3546beac78da833feb44830c9a5078f464f7ff7c2e6a6f6d4049f9a45984222e498483a811e2d33b59154fbe57e3e4d57f0c4dd6ed32f48531009455ab1778e981c5930bf8989f6cabb4c494a415312021a6c341e4f17f929e69dbcc71d60eb4de8244b3b36d7e85256995a4d58995389aeb5e270b9493d636215f5e568e6d04ff30b2763b20f140ba7129d255f79a48cb12ea0fd80a0d777c16b87b4f2379f8b0824a704008473ba21e5ceec2d32029e467af875b881163b4427e3a1458b7067609aac92c345929b6f8b2f628d91b0201f8009ba58fe62fe45306c5fca5c70533690b98f696ecefc08725c610822f23caca1db08755305f310981ae5225f5e5b078582baa6b673f05cca4b0f1360ebb225958f4b7eff733aa8da5fe74c5f2f874c0358ef84a87d3280e73702afe9b9326efef00fe0ba1948f07fdff5159f67026b5589a53441da26186683fbe55ffd2c50937daa58b53e8df4b856169c067de7b17a2a5feb0c84671972a26291fd3c9e79742ed37ac3fd002aaf9dba0c3cfa38dabfd843d67fe68ad291330d0c86f3f746f8dacdc1dfc75203ee07f2659f6606638d4646eac12d534b611fac15b1daad1659ef9e7d34a7070c42d9ce342b2690b2087bd44ba1389582213360d5dca28e77ec907eebec40c61f46f3deeb78918587612cd5f0f78d5b27546e15f55c4675239aa941f47ede0cc532a779e553cf59c0c845d7c1fa040a58fa0c27b85ef6600d4f64d2d1e9a5b408a08d15f100cb3d4ae506ba34afbc954b387f3c29ef24c45920af7ac770a3f04171e6b2d15a3b6e07b9d93b1d0639bef1f784706b12bce61c1a72ce3078d22caabe5dc46e064b00d181bb6851872d34930879fa03c1de4790993ce065c2d1f26bdb8e7dd63b020cf1f3b261ae120d7facb94a52061aa8959ddb00798fa575cd90bffe505ef1f7b58dd1ada73db8e83b457b5d15112b17e94604b2a1fcf88cf0a1ad2a0d986d02515c1cc1193dab590ede7b79c194ba91b259e216f30aa7db72bbe6640683d37e3aaf52f759766daefe537317f7a6cbfd2f0644de9ef902edbf6cad811ae1157cb76f9f381c0b39ec25c6c2872b9ac8274c59155d46ee1d062b0ee4ff30c18bab8a5cbdc5b7fcded55d11261ed40b0ff49e28593b078cbe68d4bda1bb8dae8a877f38c2decc92e92e3033b75d738ffdc82925192ee6995fec48d4074b6ca69c8e02cab6cd12b17ead82a309cd8bac8d82521259788b2aab2e212133ff01d190f029177d7a281491a103b1810a4cd676b2b8e3c2349dc72b0b351bdb7d235e26dec8cc6677c7930dad5feaf0c9686d31255cf9e698f84bd5e76f6d0e38e5d2f1923420fd221618254ab2555d6ef864d46e7112722fa15791f4c2211b3f013062f8a64bec70d622a3f3b2a3af18bceccae421ae67c9e106ba6972ed9030c27752bd70680e6c29eb6268d6a0c511d0defb23379c4868fdcf922a43029df5d62587a5b878daaccea14dd13047b5fc00b8b3cf7b7dac5e329fe5d626be4574971855b2722cf4b24517146f5352d6f4202854ca95dace79199fced52c775c2f65d3f2bd78752d169d84a68ea744614bb687804b84208ba8c2c5939e3e15d2ca9167a671f62d6e4b318fc953f9214f6cf8e4924c3a19946c2f2cb32aab79cb6926e42d48a2587e120c36fa6ae63a87d7346b77ad233413dbde0cfc71da2f284d336ee44ed00008ef7dd3a45676d7965f46f4e8867c29ad524508ff09b9ec2498ccffb23b77c5d714496d0c1448797a2c510f695d09dfbde84aee84a38ea53107287f95fefdccc429530db786ea63d813dc4a8cac479b6c40fad4504324ef381f15ba8f6c3bc851f53b97c3df1c640373e8de06f23ae01662db11fc82b45e3e1d61631b291f32fac2448a0094d43d1a3a992d65d007f3199ab59c675146fa78dab6c36408847c1a5135f2742e4a3fd8feec310d5cd33a1ad6542e1aa77a895633ee8e248522bee9589b4d68971f6836608fabeae6e6f593c69af609ceeb62f15987e411bfa6e9a3066b8ea9083a7c38827cb8af42a2eae57ce667bbbe83aa060e91900c20ba1d88ec15aa3ab00f32ddb32968d877e3dd4d494134c3175c4079fb887a128048dff04e91fb851d1d4739ec3f495ad7e6fc267d4426887e6a995b9b8f8fad92aa01f81372380fbbc9c546a969007953861324c4afa087481d4e7227c9ccefb85c275d6bdd8575707cf23d4717665c02acf3fb91c56eccf6bad857b9c6b10c22ead3b8a472582ef8e0fba377c569bf667c78a64fe98aeecbe64fb7d9ad4598c9710cb0a69f273f7d13c1c3a2b67aaab371a4f9e28e8787114ac46e70b2b7d0b63f85c96100c8dfbfc0a2dbdad9944961fcda12122b898796642f69d76c3dfd54036450a1d69edcfdf11af2749b5f589cefc85d1ea91390cb4e2ed8d4a5c7ab0d3828eb6832bfe87d19f489ce1d53ed99d5e7f689a5bb71221cd4b8c01588beef5f9bd1d6fc67794ba86c0402ac7939462e2b83f07609bb133bff57f7912947b6b5bccf948ded35f7db2c86b32a1a9380c52aac0e23863c80b94f317067b1228e222d68ac0fb1948e4d89b24d6cbed53b0a3732dd3fc9162a748c69776aeaa3b8bb7741e2d4f08570c44eae40842c8be92ab5d87df2226d132185502ccb083aa77656f0455a2059bda9d8d7b83a3ed8ae8fb8b67983d328ed3db64f9929dd59610592f5b8d69768c05e9fb922a5ba2f59e49ff7ad32c1c140e8fd3e7fcbe3fbfee811ae49fcad5bba3c5bd09da6053ab2f66e88e1d1249f90df1d9c9225e12e67809598a6397a080fcf26dec4f912281810a1de8f42ec8336e7b031bf011a003f02225759dd7889ed2cae4ba5f8e4268c23d7703d59ad919b4eca4a2786a35774e8cbf7954086da0cbdef9264ac2248bbf0d5901972133e7e5ede2e1f25aff7d89bc132a32662a2816c84f44c738a4f59b4debdcb7b2161ce72c2f94f0926a321519dad3b852c813187e7a39a37a3ac7160433b78928c53faf6421e3e2fb8f0941dc161a1237033f055ac6b082801cc7d36724a6378ce6a8830806d751667a261ee0d3c", "e24dd1d29570036ed75812487f1718d5071e961f16c7fcf125c9df1fe039a2965df75393f549b6c192ed4bd337a6b7bf328b9b2a51f6bf7272be8b7de5c76507058b1f0813491f94b97446da7cce94c65c20e3ce98430c28b295255d4e4eab1b07b25473bee3eca8b8fb76c4eeb15dfd25e913291399134af79ffd99b0b13102d7e9268d268b7f86c1923da0eaa96530e4ad88bfc59c096b6634380f061ae45eef41f81ebec8127dbc24594ce4ec0c1a45a5053a87611ef381c1198f98a07509feab0d87f698b1c87a79eb491286238ab1e8e6447737ec864b513ca50db60e252c067ab534e366e1b1c71eba7475ab19826e654422d6524d3c5909c35b440fc3016dac5b47c56532086c34cb290ad6090337815a12f6b239ea41c1d15ed7c2505c0eb688ba616d29c61dc6762c2f87f21c1de1d36eb5f489a991c212dca12ee0e60885f54b122f6198d533675ca7ac8c3f54c85aaacf1a4f17e9fbcb395ce112caee130f0174d543f03fff05f9423b497dc52de4150077f75d8ebd6d139a8fff7ec1f0070770a183b15b096f47804b5988d219e2f392695eec9dc2dca93a26942bd7e6ffae585b0dcf9b69b84f6fa591dbd92c5b644491f3cd414f8e10303305fc4f60e35e97afb09410aa2cca7523286c2ac36f37c7a9a439f48850feec6646439244750f0dc0894e9c021f53189f275da89f7caca1229e03be254d329911dd996003e6c02f61b2f7a5d7e414010829eaf3b6f0c0ac6cd539815e14b0becef9b1bcd3f4c8c519805b90fd75715dab8debcecbe9ca3f117c4c5ef8a93f4077f67192a3ae0a4282578145aac7c2da7bf4b79796b54b645f81463285076619e95c3788a6f52e25b22af7283f3970b6c7368e1de048dcbe7666828556fbee3ac1f0f54d35bb197d832a1d473fad124f1540df9b17ae3830c0eb6f1ab039f86b1b7a94bfbf42c4740861cbdc482c858cb6efbfafdfe5720aaea4591c13ee35ea08b7b71e66ad273e5c28d36c5fd0f00f2a3159e938f3c9d98e0e8e27581e4363fe1eb028290eeeee81ecfdf23d0fc7c32e31100e28b2e4ac95e08d1ba2d6c5952ec66affb4a164a516b971fb308ad72269a7882561d13280a3832315bed283a71d8a3f8cb4bec49d8be7898f1c401e86b2e7106c781ce0dc63c4e7d40d429ed322e600523c53866823a8022263df8ac14e2694aa22803a3f1a212e8a329d00d5c1ded9ef1a5962a5d69ea5ae40d80b9a7131f104eba00ba795a5a6523263aadcb7867ce05649bc3f775820d0e6fd84da99ac3566fe83d6c0628522aa22c44370460ee2ce952943d5295a4d5bb1dd7738e18e74feaea5c8853bce9b1b14875268ca37af61ad64d413512d04300861b8f7c214ac44e81e1b243876f91e6b84d096d4217c6b27095226d7db66a5fe53555877af16ebdf8971bd95d6f4ee3692a352eb3306a8f410f4a406459ec10fdcee4e9514e3fd4bb68e4830dbca04dce870da6b7b0e4d2f007ee107997e0472191055dbb7536ff17c01f9d99e0896283af525158a6b50d8561ceea89c8eddb3c7263e1c116068f709dc2d7f87c1ef09b6cda34bf94b70e83ef925206ad74e18383d638beb7a3ef98b0151cd3d03fe3d8a13b777fad5fe1d1f5215b059062b505a351dddcf29a4252f637233f8eed504c24ab837aa92cbc3cf403a8b8087b8473e2f6a336d86024db3b77f19d9dd8680f5beea4dbe32dec0ce92ccd871e37689e9e2aecafa4fcfa1ced5da1ba1937a54658f9ba49912483b7d9fcad5d8e6a01e0b7b1c82187ca63765078a1b45abbcbb367e1c4b5025443f25f29fbdf4f44442661648c5c7ebecf8a9ec722fb4b9a623638042e4fa771d79a46e93eee53772746875ad21f2d899318dec8aae651132dc005cd92f129770b1381d24997cd974f9e84d6e579d3b74a73e1cc37f38663b496286a2e075600004bb136fc0927b9ad37a1bddb872c50514aab78e9b6a58b74b4e458a24128e5d8abf30d406d5f76b7fda3243f5bc77884786139ad045804a5c4531bab47752b7bc30e95400570add0a12a0302bc7ab0c46669914757f4033cd547a5a61cb9e72d4da113c3f87432c46155b17d46348818bd29d7f95379b400bb9e08a12ed8a1b5eae5a174636d4d2a2e71fa39ec412e3598de7d01a9e346ddbf825afc1eec01e5f7485f7424f0b4b266d1eee71b61950d27e2ea9cbe54250178992f5d30b0f68b7c137384cf34ea6e7636fbc4058951448ee43993bc817088c48ff817aaeee545a7bc6672dc74e4fea1be240921718f4658b0bfce57bd942969c7a11bc829a57a1dbc18c2d60dd49908a29fa066420d2987b4b956b658f36760fb5088429b03b36c3e7516e348043298d566c2b4d388dfb0b4cd75ad21521f8106fed42a9c0c3fcee0bcdcbc0a7b1dba7ff2521d75a9907c4faef1c0e6296db4c74a115b95094b95ecc4f46e1c32c4e93db34edfc75bc0347b3ac6dd450fc091e4eeabb6e457860b62695383a5888011767c4a0363691df959d6bee1206f43c5abfdafef440861f1830d2474a7a336cf5f57c9554ea9cc592de5cacbf212bf6c1cc99ce73f38323f2b2d2e77979fc621a51a1c683bc6d4874fe5ed5be883e697fcb664daae48874c4fbfd82133dcf7c3d7feb554b716fe0bf3292c13e43aa8513a4f18e284d11796d3bc1eed2f6762968c0cd4e44fa5d63f50716a73983a3b8f15c0be66568b13b1138966960ef80dbacb13efb03919d66559bfca068bb2abd11864bc92e20b4ee5458638ef8ee868969e0a4239047e869435c257bce75b47aae4ee21e695ab6c5e241726c1a2e119bc4a2efb8c9bc583c9bc2f32147a16ccf818b3903e7fecb8b78648d8e939e8945bcf12d2174aa8a699eb6aeb9b934da7f74cdb0da383f418dfaa51cebd5996217beaba120313077518583cc70d768ac866da670ebd64282c4b7190b8aeec13be1ee936b2a5edbd695b4ada8c2c15560df4b47b751eda8ae5cba44b8e6b740d97cf24fd5bcab092caad4a1d5fbb85be9772519007787c8e53f13eaacf8952efe5871ec3c20e1c50b5565d752f7a93fb5e1d7496d9f63519b03b951715d3033382a0b2eb613407693f94420466d3f469f62bbcfd3f0e8ca0042a8b3ba4c5248c69976991ad0e34aef29ec4c248e134dcc4b1a8d996acaedd7cc6cdd359581fac3f90c828cca4743909a84d750b4560b369eb6201e0e36f58a35c26a99281db513cb6db0445fd6d139ea8917878797f5526e0ba28bbad3e33526cc2574ae59e3646edd8af7c00d053032f576b4228d8e19429fc5fc7748bd2117cf9cbfceb1d1dac0402291300e571b37ab8d5c38cb79dbcdea", "1fc5daaa341e546ef4a7bdb1f035ab5e32609e20dfc33ffa0d63011ae3d5575fb2494b2d6ae1bc64c6794eeacc1bcd4c5a9f28880832ac8eb4b0e366000b36998030f8e691fb58bc2796ae36cc0a37baae64c36ae9a9d7691b5e23bbacdb03f66da3d8e9cbb3c86654a0a9e1402a6c818eeff464334ec2cdb770d21d9f6b0a998333d66ded1949004b5c465e35b7236b35bf8fde6855f40d00db00f296b1cf88a88fe13280c0587799daeb504ab186dfc130029f529fb35bbc0a839b4c0434ab054c26f9e0d1c664c2c386df4f74e80bdc926252c9bd0e99820a77b90aee774cdb8614f2906b9945d8639ae18fe377640d08aff1291755edd356b82abe5f78351edd9d49b05a2eabbb6c408d197a0a4b0e624632e02ce0a9aeca70287f99754f2ba2b1d9e85ea05b05d4896d732c3b5e3ca1cc7e6c091f1a40df4c80dc232745335eb2ca25c36749a7923a5b26045e564ff96eed76ea08e8d598038d0c354629a4d45034d7b670ea514af359d1cf0fd84f35b37f71fd4e50bc2c69b6cbc2dfa1299150c33d2dcd6a97b51d4b231d8d79b961cad194f27193aa4a867777fc31ccf6193fe77f6884297aa82439f317698f7cabb5ca3c8f2a2cb38efa815aa321937323ab6921072d98093c1c931fc30e89d18dc1bc00cdae78d6c68b7935348a9d7145a785c67a331b14b2fc7e0fc00a5eca29e7cae3fa92f1345a3e52f7ffb2718c5325eb40ee5a0ea6671bcb772b24cfc54b2236057785958300ec1048bb5a596064b3fa137369cd6e22fbd910e313d7f2c78a988875950817dfe90becb26f339fd0c5dcdada6af10f459c81b9a769d950fab48d7bfcb5dff66576ceccaaad5d6c836b54f55f91c115de40edad4c0e785115257988da2e2e4a9a9206445cb586ae8e9b99bf7dd06cf853244b32a5190d1c0b5ff0a3a9add6fc77d559297c2cb7a76df2b8f22ccfae778d18be3cd86329ffab3b09bdfb48260550a7d0f037fcc9f0f9ca3b50a1972b9ceadfcb3b3cd40cf031438316f5f9ae4c13e02d2a0fa3159a50c5b2ef8efd1b1ea9a8fe23aedbcddfab4f5dcd22d8141ee411c668bf4a6392931d6b8f6efb43ba9febc96ebe43f264d2d3f5a4c437ba57358d18b8495561a7f09eb88aa8dbdfd486e507e89eff617464e0f4df639f4e5041deb1ec2334a232b127e0019e4c9b4030c362c96f414b1afbaf1846872d08272a3dfb10f307af9e5bedbd8b530e925c909d82d3d4fb7e88173bf7b7652ac4fd43a23336d4ed190768ec572cc2baa0c03b61d719c4d002d2c7da9f9a307c55c00376a9c1afb8ab4e9a456f151c76579b9ace9ecda999fd275f06eaa29ff8041453a46782d1c1dc6e727d3f4180c2eaa99a34b41f5324d65ccb36f4d032ea292943496f40d3210009e102a2ec3f371fc4f1a69f50f96f80b5be9da7bd018fb3304dfbbe3a1b4ca1a0532d3f63cdff8e841b0a1fbc9bd7f1ae71813bb7df0e89e8b3094c999fdf86b066b9fc28bddec4cf02e6c21da70f928082cf5739ffea65e8c0311c646c5e1cebbff7aa84df7a6fd1a1b9d370c846e85a2786aaaae079dd201f60addf2801ccb71d1c4557a3659cdb86806e32ccd8d6cadece88f1bc6cf97c7ac48a885fa36fe1ee0b59d2c3efb2aed18f036595e249b3407ba70ac8ef6b09d5be15163f58de404df0219cd763da010a33a2f1991e9a28753944ea20b2e570a7ef95fb4e8a54a479c3746118f093fe84d0ec0b060e37bde62754fe9caa56e4eaf5d4dd89e9a19d5e4666c0cacccd39c0251a2fcccc35fdf6324f160720bf79de15ed6427962df471caf9c5442721c16b15ee5419f419f40bcabbc35ceda7251cd4ce9c4f9b271a71e958dc001681591281023bd3363bd1185be23a659df65463607505afb4f5e26588c3f848bb31b56a8d4bb83315a27d5103bcb15ffcca4cc086b5c39270c1a9662dd61c65e4ce72b6d23a9da111910d916adc26d7c8576744dea5f6eeb5b2686f5d425cd141ed3a7eb264f33e0c76d0015d7c7264e660fe1566824341c94bb099547a4f8f4a1b7a578b25b551a189ee97688cde934f7ea73e31a97078ffc5a59d0a461af6da053aa458e0929f1d20b6808f02e1e332c4ab88c4047f81781a645999c6030fbf2e2bbf0fc99760e8bfa9a8fedc536904b1e9a7f1abeef3eb5f8e21e4f4efe5f88766b4764a691c27a13fb5078d6eb3b13027fdf1a41c2b43beb232d92b99de93116931b2e649585b3aa449ab390a4042e0a85167e38f2a2e1a619beedaaef30a620a9d8985ef2a8474b0d706f6dda0865c5cd058a92fce95488635af4681f48defc2d91fde40db34622f2e4833656a6ffd0eaf31b9e4e313b6f0ae8af5042400b743c10443ec59501397f71a962155ed9631522659b31b05abb2213595d502327c51e2deb5153a86a2c70b909132c168bb08d19e7a8134547986150646f0f8b51786002993fc062bdab6167cdcdcee8f2258b9be58e9418a15b58fff9ffc36bf7da243b1b01b7e704167fc0034cd3ee9190c4a3083514a4776caadbce220abe0a5483407d515f03c2b2547e2467ef64ae853d79ebe6293aa41840f3b880814a54b4874393ab17756e84d6b47eea3a48bfe8157db26ec3f886edf12b2b539ff705605bf733148240e4faf4fad29b5bfd9808050c851e97b3736abeac551f56a2d6cecf1f3b9dfcd33ee7cd6f1c24d05572245a6419c6a486b30e50e53a6099cd08fbea23a5aaef5d9f8b88522822e0cc4c8b985889e9dbace8e1b22dc6908f1d5e58c32cc20936bf6824b5d05efe7b39d40f4209323f9f83ed37fd89ed291301b3bb47d740225939a0ce3c1509632ba8592faf6b9bed538bd57e90a290b135020a98d7a54434f67fe05f6e394385264b0058fc9659928ee2a0d1c158003d5db78c913ef212bcf071ed6baca8e62839e0e58e65f5c09bc6e5e77d35e432bcdb5d291d99bf3244382e64104575b0a5f221326c54a9dbbc2c5fda3e71e758ff6804088ed72ff6f149ea7087dfacda5d2912b4577751af94548c1015618990ca0c7dddff4af4147fcd79fd0c0d0d54b4d3dde0c602bde4328c0fe03fa5abccebfe813db0e58bf7634d60683b376ecc686f79c8bd2f561160d2704cd1355d022076e6981356e7070ff4de17817529c5da538a14f8a9ca7591f9db875b7e4184343753338b48eacc62de253b7c9b414536930f6e9ae83adcc19aaddf5b66484384719b603e0a51163f2fa894a0eefd4707e49de3195810245414c129d8dbae220d6d67f5213c00228c4735b6fbc1d7aa2de8c5fbc774473bfbe8b2dd41cdfd4344790c108c4e70d4f8bad42b52137bee49321885b32f462eb", "44f1cabdf49c61f73b06fa70fc77c2badf74741895a22524ab64b94431d2951710832eab31579506a0580b5568ebe0c81e2e393101a41811efaabe0e89d73fdfa9eeabf907eb555d823eb320ca5694c8b6930ec8099fddc7276f35a07d78a298a7bb3feb5118d5a7a8d8144a1926289fd662eb6e69695846420c6e8f8ec8aa98295c3cec064a7a864e9ca36e698bae8944a8d8bdabe807a2e3af66a7452e03b7282036e66a49b97dc0dc4c9585241b5ec57c788dfeb3257f46536bbca5f4b093b3c6fcbeeeb5404ef156bfbe6459eabfb1754d370286866537ac307aef68cddf5d1a1dc02bd4b115da5450ce34f48f37e5bdc5a75468f10e8265adba7addfe86d7e9f5670001531ee740f019fd891efb511d7e195ec3f2fd21d73df5b4e596370f2f8e566fcbfbb7654c14a5881c632aae418d1014d249d268bc58c0171270470641cf8c705b492b8ae505831672e55bd59e6a0f58d934da3eb51edccacc8cf721b0ebb512273c4685b142573ea7d97c84275fd9a3f8e537ad1c2d49e35b3afd3b619c8786dff0d63b26a799c2256f09bec194e6b4944eb88ec0ab137bdfb9ca6dd55d48c9d47e96d26be47c19e64f895121af1017eb294dfed5d53b64b32cf191a489ec92d9e43f3c7388543538191cc4801630685363af7e81deac3b5c20975c7a867c77d790a1664e53b0d9fe0cd7c84b70508113d3188bdab7c6eb902f0c8b32ca653faee4186234309087bb34894e5c860d331c9d8bfb5f02f7b3e646b1642940d1789a938fb451796f8e8990ddca3ba0d11cc2e9770e5fd7991cff0295c39457e44c966e0ef02f357ede32f4f4cd0d215b788855aa29becd284b3daf5567a3932117a15ebdbee0abbb85bc183287f521411483b9a03071eeb98a89f8258af8c526d61bbb0d9622522863c11e6f1ca4e1e3c4e436e422d3744248a90a2f5c38d26c459d9f92651e9b53f0e992108dd85e9ff69690930564aa597e9ed9c1b6fb82b4609d6a29289f2df25d58afddb62b5257cfbe489ce1d2fac2c2bb63e4cb02aa3ad0687e22f4f7a36e395dd9f3fc2102d8fca9423ed2e0df89082cd4955dd7b714274bf8ca9e4387cbc52fcd399f7476fcf5e029d6397eca5971962895d3d0f4d493767b85000a58f12fea73dc62eed18d8b420708197abe30c3e694fd4dad74f0d409977835c8e13f88d1cd37f2f373a36045c32bded459b51d12c45c954c3c06a56d87bdde420c5dc30cbd07bd07455fa2fc7fba0d95f0aedaa6d6ef91c0adbfcd2a92ec8dbea57f4f30010aa00daa85f114e42a3f15b8af49ae7abe4a443c0583b9cb336b8b2d9a68a98eb7fa4c1b5d0e46b3abbfa19e50ab7b9085c96ad83e5d21941657a094cdcd5543d4b7ee5a0028ae23fe6842601025257185e616d5b9b046f2aac4e586cd799127e3a06522d66928c90c0ab7fb3eaf0d1713632e9fab15b243f1da4e297e81873f51a3e1d6091b392c2fa265f2afa868a8f7fbdbb05f05d80558ff7e2754f88972139e3c3f7a5667e8217658fdeac2e8435b2388c1290b4a7ba099420eaba78ea0a1c75732b484b1ee2823bca33964c4ad88a5f75524b5babd282e84506101ff132f827e3309651cb4622d178d85a71799fcda4e20fe3d484ebfc1396179821e1a1e932e97331eb76e5f7ebb380387bdebacbd30bb222580d751dce18049f9363f382b5caf89874de15c7b6089e26995e0e5719283f48c10cfff5d21039d40d654010235057efac362736f57e621bce13a834ca00bb0422ce69231dff3ea2b2b0d6d5cf86b3482a1d7b6d1ae7429ac84472acb042ea8d89b77de0dd6ecf0c4d32b3836ab06925ee67c81b86770b815439920709f495c34b0c50577840619f4365d6a5bfe6573f1a15f18a2a7395f77fbcd03988ab4892b3c57018f87f00dc5cc86d7f9bc606673053b77d634b9416f6c2d518127c9c62b64054946c62f2fcb64c313d22d8015f21768f3da1730b1fefbc28a55f98afe66f8c0cf0cf1f037481486c228355db5eef7326662d984fe31c97f38436cdb8e3741cb9590fd019a75846c6814c9e0eb1e3af73e487e757385e7fc54df9a10f2b8c25c8ab158fb1d745f4bec4101770acf96945269a5f59879486decc5bd6cd8c31fc8c84495a47b342886c5887641d6ab4b08f19e26a4ed0d47441f61c3e855024a1d45395d3c9dba42ba087e88e28d96c38013e209a7842759c61e69ddeebc051651e6128a7907aa766f63210f641cdc74d25c89daca065ff7f8a368284f81c4836e0a91fc502c354fdb0465802c0df9f1c0bfd20d58946fd55c1460be9d7e70ca248b39ae923a438ba58add641d39a2001b3dec933919a3585676b6bc2e3608934c3678194536a51f4e4bf0412462c3c2c6842235e315a25fbf4934815aa3c9cf364fbad9f20b512adf61cbd52b80a21fb4f39c9529e26698dca96a3abb42e24432ed583629159e367fadef1c4cf3ff710e6eab8b5994a8a1abe55606e16b32ff04f91dae2ea2967a1ff7c40611c5ff8e923f4607bfb072d0b5f5c10556c949cf58bfa0901e0e255c88ffffa2c551f6f5ba64ae3b8fbe1c3daeb99738584acf95ceceddc29c7a70e95f31f14fadf8788b4bac6061c8f1de8f76e7acad3dd7b497e817fe0d155595cffbf331929f70ca96b078b0e89bc59b921716ae373f7efe71f81040e203f87127f5ecbe810c2e044337cd53fe6960e9b4bb15ae4c17d16e98a7b85e987e586d5f4148a8201a7f971d1ef771b813c04c9dc416359befea15267d7f282436ec0eae8e2f31c2c320d1f25b86fdc9fff599f5946aeffd503805f63e161b68706db5ee9646f8b08461700d3323ca0355978e85633fbddd9fbeab877d4cfb798152526362ca80949da5bd41da185f3101e348328a4bd4edf6d7a59c8c8f11cc987c091c44f05c77bf84378d722a5cb40a227b098289df02d6d26024da172f2df82e7810e092fecd1ae4df490ee9cc2cd32c35b5c1e738550f4a1d542bf142a14515be5afc926f66ce74edaf27d28f8fe53f480b045634fae023b30e83013aa33d8d9d2949f91c30149ff2e890aea0fc4efbfededfe54efa4f6d75ce065ddd77c41a692581a778787566fe11c3526ff5706433958914fa7f34478cdf5b04fa52e3ead8eed08baf5209c034fa3a4dcc92d8d08f251577647244599d9dab25c7cd840730ca593e6359b3e43d144ca727a6a17b1640900e956be4eaa38a65a1a36c238cb1b2db4d6604cbf92c9624b8c249a89d254d1bc0d202acc00494eb833a347626cf7f1fddd546ed4f095398fd6fc0311c4621901ebc2fa509e4ebee775317fe1de8fb8c7782855a0fbf514c5ae6c3346e", "1432d728e55f586becb9c30ee432bde5ad3cae203e1822dcc88af0b5a95cfa2bcd10c61f7d9140b442f6d7c306d1ab58604c26d4fa3dd1f1ab96bdb0d3540c71c253865b465702ec252e2acad1f1025bf10c62a8f909a49d6ad17669b020ee776a22dc832d7f818fab38d9e9d42b4ea267807e5f478f1af5361a3f2feb0b9d5a8bdcada2e9364d7e5909a781dc7c315501877be94eff4b77b1100fb67107b6730c83e16b224775360a96f7a2aeea60a522a0b5a13762fdea5cb123fda889b4da4f946217b5580a15ec4fc1731be9bae278ae94c44c47ba08d61033437c8984e1e8f1314965fe2419b0191936b223c701b7e9ebe9f37f3b477632996aa7b6d9e010e755a082ba90f3e91db1ad76316ef89bb6ed4cccb8fe2370c2f8aaaaf035c1816c28cb20a4f7f703f789400fa6379350234bc03fb9bed771bd6f2004d765ef959110a2b789ed0372231829695c43a34d6bbda9fc31577dac9ac14ff0e25177d2643fe36423369111f05c8792314e28cb43db2b06b71e9e84a7f194d9c3da27dd570f6c13c3ca2d6e89b873d674392d600d315cb012dc6683812eaec8249595ec9d76eb59f1ec9f0456b48d52bc5995de6e8fe6815e6e1b6b67e8b206dc26857c335a4576b5b7a82fe8302f5fabb38c3b7274f64e42918b3e6ec8fef097d4a43342b1fd105a7c8581d0193ef7ec25147591ef819be4f2f05f40250e76ee93a843021be45c497ad5dbb67aa70cc9f88110d32e3b93da5260f51277af4d9846fad3191908d96a500bf00137fe88f88f5234cbfc9b828730711d289f2fcfadf7b20af582d559abf1f83bdce5c0892b22567d699ceb5fe28e44434629cbbd54fad3acacf18d35cbbbbc54a737019ea722de3f9938a5cabf0cf88473f8d327a2dd1010900d45cf2aa2891f40a01b4efcc6947ee2c91b56fe7e36587ae0d6f9e64d6ec8d662319034b90172f724448d0ecd06db121b5dfb530855a3e5d3ad990eee430fe651f8cf7242c606a63a5184830cf75b960bbf75284c2a6c06bd1933599132cf8e57571d4fd27075fc7d5ed0d4b479d72276d5b5cda6c4b09f0699a55435e6d508c2714a1c6be23b22cff19e386d93a79d06c55ba725c298c2ae1f47c92b2f86d81fe67140018c973272720efb48a338e59f8047d216cef98fdab5029b24cd01f7c998f1e5bd5fac1892d8c2a436a1a7c4f1ce18e415fff872709fbcab2e7f175103e8c9257a91da36b06ae4acaaaaafb88b0edccfb1e3f49e668c02002cd0910e0c7944a5cd2c658d7f5ec62455eccf1dd5bc63ac95cfa9c3f3d9ad25026757809b6563fcca0bb8a597a616a1cd4c31bbe0eb39643bf43adf16c35ada957e5ce809f27bd684adc99c7ea11fe83d804bcd4dca5a73e631ad3691e3c3f44c2623f24bbafe24f12fcad4fd9f1bb6418490c9969acd0001444fe1f1d29ebefb577fdff0f12a3523082cdcaa78911a35a975d1aba16dd7eb22cf8199326f148c07df0ea215c1a6c3d6cd89d3dab00ecc90ecde6397dee341d48a2cdf50d8c860214a62972d3f9eedd3f461a6ccd72e233bbc46e9f8486667fd8b8d01a5fd1a9634aee208113e9e93305006c009f240576f384e97691e9b4fdf30704064c2438784f35181858ad433e394070b8095f0354984eabb6379162016c219990cb1fa978ccfa69fd91347e55c237cccda74a653a8fedb07ee2ed0524e36b32619891a539dfca55d206b754a634db40b954e90ed1ca318b0f4cf4f4988f484de913b2d656d98d86724e388c51f78b1bd5c55894634cb5716c1b823ad0ec8cdec7a0dee6616d4ff1e9a51d01e78b8b2b970407dd589aedbafb7087885d47967b8e728d527c8811084c2c7fe8d819b8be13fddb3cf2a58988da456c9c66043abae50f61293cc59210d1c93db3fbe2cacd28eb29b6421551334d0ed17398db3dbc0252a3382ae091a6c954e8103216fa770019d315245efd791b6e97bf650d74ae1b8a340411a690d6a7dfcb68d4b4dab01ebdf02c2403a39dbd9f6664421b04eb0454b775bd48f39a32825b01e01f61502419a671455a8370f87bb41f579abe42ff4a7995e7b0c070d7124ae57d912bfd69fbf3c999ff058d2951bb074b58ae5152c2f7e506535d19952a6c006e33b70a80d93ee4509a4d6b0dd8fe198c8a3d0458974a4d7ee8e07776491b3dd3be3a98de5707400a34a45c7d048634ed208665c31913193d436923e402d5d2bbedc4bf522994e196558a4850c11b6fd657cdbf2fd890443630475e7c120cb3e335090db720adb35cbe60ed37046796919a9d72fec6d177721fed804a8f7ae683b714eb18329fbb7ccd667940d1fdf58c27f7450843808f4c4467c43d1695e0ca16f9520a8fdbd26cc5fd244837d89b7888c2b4e7dd1d210162a3ca95c69778a78c32fa31cd032fc962628e4b80ee92eadf6d0d40475c92af45816fe17c78da6314604d88dcdcc78071dd65c92b982c9412c7204b6a014b29359c3fd9fb0d62ee01ebb8342c7b64723c557f34f26deccec7c325806b2310de4d7a236910fabf727ae6f3c87aabf4bc1c2661a7be53f23dfce2f36d1a1de0ffe08425f07c4ae1711de4d043df838d28b9b860f249904efe4cfdf4b8865855d2ff0365ae4a6db6b198637ddda0a77d0a594e792976234e38d00e7da96d935c6a4773965298e7d044afba47b49f78eb8718ff74fefb0aed0fd349ac27bb632f23fecd9a572de6f3f3c047f77ff4855c46a4adaca863a0c892e97ca8180c3b163c7308e9e5a31bbba0c62b144bbb64ee131fad8331ce7d10910d399cc87e72041c86926dec3b21152484f326e3ad4fbfe9420c8315572508aa22fe68ece1dd2a5cdbc75ca56e608116f6a26518c3d4ad75b83acfcf4d2fec6c6f67a3af70ad0e6f0910563c2c8697ea01aaf5fac79e1ce99aab144aa0dbab3be6f52c2383e1849e9949715fa3c153c35effe309800842e9251d30f098ebd5c46b7d8da915cad205431fb9f1d4e8d6c9a37a64817f5827f3a4aedc391bd49c7caed88d19e9506762680af25e945f779767e24b44d80f489837da362d3c9a432634aed99d8a2cac5b9031e7b05fb0ee5f4f8bba85a4fe06f72ed5bc32ec2d4820bfb8942032157bb85bda1052ad61eeb0e131f216c3d21766851afdfe3d7bb96bef6ad65d991a40961f8b953c840286e71f6f7bd5899f86dcf499677b7b2583e2e89268e318b41a5031bd0f4de43330ef63a7cb60f08f3ab1c0cd6774a08673aa7bdc2be866512255520a8d0fee04a7836dade48dfd42deb565a3989a09a868f223b4e7323c402f3a99f002913f083ed456ce9656a51609b0a03d795955d2aef3571fe294e", "164e2dc5b7d9962f4cdc09296448282d7407de5d76cf353753a33df26b0f969211567633ebd9c13a44562910aaf6682ac8fec8c536bbfaaa49314988b38f759e2d6a010a87d8f312a760699302821cc7edc21612006c680c8cfc4a48df6372af4441f2dac79f88177c986311a474519a8b719809f02590f6cd72fe1360bc5d2822c46c9d883dc049d6bd4e0467b81ee36d1badefb91c7c6c8c2e195bc5a06debc8ccc3e079422f2dfff5c7e3fa700b3653bfb74cb06e4a5f9789a31c7e0a671061e4ab3ecf8419779be4fc0f9b2a17b843cc973c3da5957c7a8f54bb39688425b2a431c710fb98227c7b5a411144f0e5ed3223b41b2d3a3f61017ea090acb9e99952eecae93f16508231a06ace106260562a867e3fa9681996f6fe7541e7287e727aed857bb34382508497a0469690d4f3a15455318130d609a28f3bdddb6b093e4d349dc61dc8d0fd3e67200313dd7bbf252648d83943378750068219697560970cf58afdf6cd5229d48f73fa150ffed53deb044eee81cce15647865e3f08d4350edfd6188a87ebe687082905ce1b37a16ea48375a77b8c8fd9b9c349c36d381614f59041383cd3addd109422de14a5d0072ae1a50e475928aafed20e126f113bb65bb76e097c0f82506a0865a3814daad9d11dc3807c1e87ec47cfda68d51e35997e01cc219c6728045bc8df2c8f1f9bb4ef6beab71907542f5fbb282cf70e1a648f13cc0b3f4cd0106dc7643fbedf09f844f8923eb31f6f8ecbe10baedc2a308654c80d47904839d0e0ef89fe7581a5f1ada49d2e3f9f19664804d84d53f3206a3f8c2c664ca3183ae2b0e85c47148c888e93747c326ee20411ded7a72610dab6138e020f165e247672f01d015336061b1e66be75251417db841d854e9ffb1293fe010fe3c76c8372938ea13c1fde337ebab644d3b1c88b8592e740cee9bb55acc7a2b9b55190985fcd2516753434b3d5eedfde454fb4bff07c7b135124d7908e94f7ba3dcd01350f1e0cfbae6823d705b64cfd9488073468c2da2d9016ef1c2e3560b5887e55485eef62fa231a341b8ab16b79b7483b88ee67f9d913c4db0dcc456d29493e9e7151ff19d81fdfa4d92db23258704a97f9f38a0d03d1db29f740f4f0cdca8df0fa144d625c88d7f85307f10a06ec6a04213c40017313e69a5aa52f54d857d3486872224798911fa07564b0ab52d6acc6e5428b891d1438555a054f84600afb19b0e737bbc5dddf33eea6b75e27f739ebec95d471cb2477f18f9cbc69f27d20f4c91bab4fee7ea8fc3a1298b62a38e3731f42248202f2e4725c3923010cd6f519ae005f4a45bac7361bb60adc9749561669495a3409882f4b00c668c2ca8b46b231c1e9dc4cfd8813fb71ba1ce02f41537aead4a588c7f14b18af40629671af4b86a31a514b2141b104beb7a616d676b599c10bc357b5e1e2fb2515264b9f70ba3c73b6c31ff503302372b2bf08b52cf206c467d692ee768fb1db91e15838fd4cdb9279ca45f5680068a845306f51c2767c35e281d55706e2a204aab50a260d65bde114a5a956d0b8b3d10d7361d1e2f53fdf92c378a91905b07165efc1d67208bf31c5b23895a7c46093d475ceb23926c644034e2c0c6b01d6a2d356759ee58508fa170a1ad7cbe1623b6e0046d76b6889cfdfcb451797e4dee235f2327cbbf1a4526c965fcbff629fe17aa7acc790628d80b137811ed300a5a6a98cad3d6f13c093793175e3e4698eeabdee6775ae8b84965038b50bfc80e0d90a5e6c97d52f6464e7bdd68e86d6c3ead64a3224c977dd951840769739d77d5e9b31c91559611d4b52b0fd0fbeb3439c98d60f75376ce4893605a574ac2336649476f21909d37c236c9011122712bc173218b4adff7b81b3da8678bba333c38aec0e7c5066a330b0f3b5b9234ed3bf777514d879c60e59bedbcd60400ce6b20a742ff31f8c39eb8f72dda2732d1ff71f7c3ac41e90b65bb92892554d21d9bd4360dedd9895d6737940d2eb574c3c5e877ebac64635e54c639df02ec4e799b9607f0b06793776cddde19ef1189578410d9b0e102017de9cbad74d90a7a99beb5328cdecd2cd6d0d47d4d7ac41b6807b5e812b894f1ff5549f741b729ba20562247a77b8830f2144687c79697d81fb9fb989c0b4308e798548512f6867207123a6a8cdbfea011d62a4a8e191e01a975ceb744cb6a67591244a40dc6b42fe8a8527baa6ae21f1c9914d076eda72fa5ff8ce0bebf7f172e5b3a24f228950b2a23e619bd42509277bc42d27bf354b8fd390d0c252a3bfa9af2a5a313f6e04daa0cf6a85f49b07c3ea001e1ef5021f1cd161f7e09a46142e52363ada2a749c8a35860a0c1391c5454398897f6caea1c6e5076de6423f290e74d0dd65095ef502ea05fa620429f52694f58180e1b27b29fbf38ab2ca64bacfb4a6d349e07e57ff646ca99f0d12ddd884139b174d92146bb6df4f3d4da3e362fee93b499575b33734333906df914350fc5b5371637597ee0fb6c694028e731f7abb3b6455e1a5dc58343dad7882dc4bfc7a2b2b63c22e629b4b1d47bcaad5c998d6feebea8c19952016c0a32455f4b2564f9efa8e9c2fc8bcebe2425937ad46e7fc6cf5a08c1b8ab0838dd130921660633cffab1323540563a0d7442206e6c6f3858aa397d6ba5ec52c23dd2c511dbcf0d72bb337a7340b6ba99eceeeda9ea15ddea93dca1d9cf5692ba9f3f6af0d40c7c3ea1709e292046e53e6bc4addf359527cbd2335ff09c1cb0814fd894f82817f77f923cb126b49c09ec170d50c03dcde5cd78c07bda204c39fce38164eb70f1b774e4848d70be9341efa0916576bcedf5088053f665f5c4b82fe8bf8c9b1ec4608c89191f7b267b3f32f3eb02e9c1bccbf825c4228e676f623100e73e38728490adca097cdb4412859d89bd73d311202dd11a66f75266a0533254fbfa20b10e6fb62cfac3cda4ea8121cd39f73617f3c187632ee444a786b6f6d75355abe2b5c80151497cd204354e4b4a1f4896198976b6fe936cf46486afaf52e18ff183864ca238de5fb6477f5a62bc9f104328fe832887b162182ea8c4e6dc446c288997de001749e4a9ce32666fcfa29132650aa7934068da98a33a8744e063046b376f256b868af26549887b3c2449eada7e68aa413d8bed67f800eea3bf4b9d7fc241a3e4006b38c2648041b3ba2eed2b334a8b3b2d0c339145492b87b6e50a88dbd3349a468ebbe017d855df238332c37c6c0e70e444ebdb7e9ba16e3cd1fd498fcea358db81c601665c71e30c98f2f8638a2b6da794f0b75b79cfb9bb8863a5d447f40e58b591f2f2b73c01655ce01abba8484a72c99", "445ce04721bed355ec9ded6b4b6ebe27abc2ad4c838412d7eedc10607cbd2335ff09c1cb0814fd894f82817f24f77f4a211c40ddfe4c71f8c78470a6158407bb0f4f64efc3f3c35772e126a79ccdc1341077e423323769ed85d929caa8a4b23cf0625c59a8d604f5d8b9f42446465c587120f3cba2412e4458fdd94460076c3e420ae63e52763ccf6f0df54f3e08f285dbb0819ce229b7faff2618a53ada15ee371ce8d25c94ad09c0e1a455ccafbdb0f5d733f792729bef874c596118956525b98be4e18b758c4ccb46f62208eb1f3e660eb1a1d9499697d075ef4a3f1a6c83ab2abfe34a77e352103eae9841dce4bdfc37eeb3f224b5dfb5211833aec14c151e58c60b702b9b2c316d892a1bb0138ca4248ba07329be23fc3a84166e34959f930119552c6259a9d7f33b763cffab1323540563a0d7442206e6c6f384e2ad8828f4c8e3602f999cef79ed1d8a844e2b8f76ed7415374db37231ebe9f6d8ca656abbc32e86242c192d7b31e5fc0d1fe5e70754ec1cb0f8154ceb47387c25d364c5d21740f747ea3bc6bb4aca68e87fa991a48879fcf7eef8a745b04ed380a2ac56a1721003b8454902b677a272c4f0ed252f3134ebcbeb9ea8362592eb33952079664830bbed2e44c2e6096cb738e9732f39f6224214a1cdaa43dae37022de1f0e8abd422272c0fbe06fe3c276faedc66fbe683986a5a120c71d25fbfa1261c53e648b044b2bb397e0cb8442e30281a9c5de540872b5b04a8293c63ec0b21b9c48ad57ccf0205af08320bdb6dd5a803d243cffafab8116c254a9d0e751c429b1b581ba1422f29cc9bdebc23f217a5ae1ddc95782594fb9e9daeaf54f958cbb6905d7141f680a198238da6fdaf404f8d7a903d7dd20358b0c8bb1cc8b072606132e459ab7c15f37b599f34076baf6c22440473113dd04b68b3e7bfa9fe84ebe60d4560891252ffeab903a56302227857a861a40009b9626771692623edb5a0ad8932666d5184da4dcb48330504b8e3949ebf40955ebde0d21d921ba0628feaa9cc9fe87b6f196866def567f84ff8c79948aec1be9edc181709840288ce66797c40c6b289718ee49a661a173139aa6abfc9f5786245685f66cd56819892c5858cb5acd3aeddb1d389f7b6b98848116a662bda3abf6f2c1ad9654a5eef89a42777c1b920015e5d5b317b719c04d95955f88ab1baf2e89c9f7b20a005be5e20c905f0ccc27b5775394a4e9b0e0ef5aac568f4d3ca4975e0015cb0f3783a87936a783a4f1f00c75e409bf79a8daeb722a0288d0b24ac395214f70eec84ef20b96107e986c738bc4a0cb03b87caf0430db9ca8c51648e50c64370425ed66f165a0cefb58cf87f114261c2534683efbdbf99d00eed803b5dbc8cff13b0295d8c7d4399851170402b3bd3853108ef8dc7edae8046515718bff8f126851daf64b5dde5c2ece7494c16e2f68bc05a93bb68880422f83b46b8ccfeaa416784bc841c94e067d75de1e37b586889fac4c737ecb6763d7de2d22bd28284cfe634ac190de500b5f76377f3ddb081e01d53d9f38ae6005def39fbf9f86a8a0465bba6b08adeca129b75ce18a6b24b67114e2443a1a4db489dcd21be8c940b277b28cb08602d3975b8de1b6293f5a38dda675767bd7e27946776c399444c80f32b918aec6d8501f1ef96253833c0788725a13fd3a0f38567ebdbbc4fd04052ccbfe75a0283f0f9b2673c48b35f096751af59c9f541f7f763b13244ca6d7a1bea2aefb80a6e95e183dde9e4e2662e0b64aa83da69380be489cd374d8c267d8f172f7e56fce8ad2ebba2169d355aba4e6c43cd3b54a7e8ec9166c0994537cd16c3f7a8c2c2caea8b266d656907ffb96a719812f925daebcc43ec71ce802ccdc30720cd93119c1270e2adb4346199059e24fb600d18dacff4b8972373a9bb31728327310c5f37fed43e1aabdec30b7c3335bd20ada051d361f345e1191315e169641b75663ec95b65b8b6cee8723839238efd033e102397dd178ef482656e053ea71a3910779e3e38c6daa358ae2e60a33a671fc2ed3e5f782dd716a85633f1a68173d0da7fb6f7b517fb556bed64989e21dbdc468f16a2350bfbedff8cb8dffc800a6a8a1745e44c39747342b8163643431fb38bce64deacb407765a81c3da561307491357d3606bedeeffd3c8bd9ba7fa82750f8546cab0113c3136acb1810b1b1f6cca0591d5bf6ba2a3eb96c272453f55204c22aa2ccf01d88870fd377ee5fdd79e7b0d5cefa93672364086712c035ed8667fcec3d63a4b0da5a18512fd3eca7e2c871766565e3e82049bc67c820c429d2d003fa4c6b85341aa7148d111aa0243d5ce112c2a8f9efa85596966b8912a057a0b548a399194142a6e2a7678a0b656b2dd1782e1576f4908071816bf205f04e85606d481073657e4f590b0d220a5623ffe88400fb257ac2b16cbe678fb20ce7c668cea54518005f93d727054f699d00ccfbd620d1a23509b327b4bb751386b065a84c57be5022c0a282320c0ce240b499d91dec4debce102efd5d05db98e4908599989166a557101b2d6945452ec5af53fc67880d7c25536fe6771563cdd9c118065f4e34e2403782f9921d7be3230ba86119a01ea6eee377a766b0dce71fdc53a559dd742df11608d07b5b67d383e2cd798a8c1ae4ae63a41bad1e820af08113e05db93cd6966e34d994dd867a9fcd28fc9ea583d38111d6ee048296f3f141857f37381d38b7c407c393792a5e7eb83832c128ff3de87adfe1c98c7824c5ec4d85130be94cccd82536f52a3685224b572f55046107b1c9c03c49202adcd41f0665bb9ea0fda231c40a6d1be077241be70916b9f018b9a92e7082f81481c3c5bbd670597319ce2a633b3ab00f560c2208b359ea9cfb2ccc5fb87f59f2596200f5b42e016dac21ef61b11538c5362f75c27a7ce10917441d5f7f0dbfedde14042b2e83e3e3f8bee214e812a489bb0fc363b40e61319a388788ff787cfb71bfd0004bf471b9b68e55141ceb0e72ea04e826606bc2e8e5603c6b4d0442bf6939214974664fbb7beb3dae57b95aa6060ee76b489025596acd9291b426c612ecf2956525631bd9cb73146bf8feb046fce0638eba3c47d2e582886a892e0fee0a072505e15f6624ccdef2f71975eef312670c1a06fb4996f78f3cd9f73b0810df330ff3affaf38214cbd9dabd07197faa0b6d245485e10917441d5f7f0dbfedde14042b2e8332bd958aaba96cbafa03f165da302dfc9a6b9ca686b60370a3f7123d6a5669056d4457ad1e1054fd8fdb51bb76ac0b64b4248440cf402af1ff38a72925175306a2502cedd097e4c4ef5cdd8d8032e80d"}; private static final String[] clzzData ={"burp.ir", "burp.hwb", "burp.mjd", "burp.wjc", "burp.uic", "burp.rid", "burp.l4b", "burp.tjc"}; private static final String[] fieldData ={ "a", "b", "a", "a", "b", "c", "a", "c" }; private static final String[] keys = { "license1", "uG4NTkffOhFN/on7RT1nbw==" }; private static final String[] vals = { "pQwzPmoS+nV4oph/ti7SdybjoUB9IWHt0BGBVS1kycSvYAn2zh0uJq9gCfbOHS4mrpBSDMCrw+CE01uCk7Kzx5v2IKRLZsscABJm1llTFKPqOQekjS7NZokxdnS2UaQuAXWbxCMsuTL16qyLLzzuYF6xUxXAa9WFV2JU7UsHrQ7y/8J2S6qHr48z7QxnhaScqnyKm2zrbHQe7JO3bNChe/a+SWX+w1Pa0p/VE//QC88sz1kiS2FAAo9A5w0N3OhC3JatTG4i7JCSDxncuDRfPTVVODYI62WnL+aKhh1uhHiOBbttiqk+ELBIjTZP3xLIiejxe4ubsa3ZbeEfKF84Dg==", "6Oxo0eZXXJNgBSjf5x9U7G1SgvX5nvkF3bJ632QlxPWsrnoP0MTY7jMQor2PE44WeyvBtJFh848jEZys6bvlyLN70lJi5wqkoXe+BtrTnpTYAH9nqasYPiytkEnXwcCLNH+vUazzZK+nYiS4aSZc3+38Xqt/K/XcYCGB9E63+IPIdn7oIn/1S7R2IUQgQCnmB2OQdOHbicxTArUEBIRcR26erc00T8XdMEzhK3aamUx9lEiOAel+mI1fhF8lbyetfyYdXYcvOXARCjoRbNVKe+24Gb+YNLSlyhNZ03WDgK6okZYUTvPkBvVOsUIRMW/77RA7dMFQ+7QOs1KqUzx+D7xL/Ge9Fu0c"}; public static void main(String[] args) { try { int ret = JOptionPane.showOptionDialog(null, "This program can not be used for commercial purposes!", "BurpLoader by [url=mailto:larry_lau@163.com]larry_lau@163.com[/url]", 0, 2, null, new String[] { "I Accept", "I Decline" }, null); if (ret == 0) { for (int i = 0; i < clzzData.length; i++) { Class<?> clzz = Class.forName(clzzData[i]); Field field = clzz.getDeclaredField(fieldData[i]); field.setAccessible(true); field.set(null, strData[i]); } Preferences prefs = Preferences.userNodeForPackage(StartBurp.class); for (int i = 0; i < keys.length; i++) { String v = prefs.get(keys[i], null); if (!vals[i].equals(v)) { prefs.put(keys[i], vals[i]); } } StartBurp.main(args); } } catch (Exception e) { JOptionPane.showMessageDialog(null, "This program can only run with burpsuite_pro_v1.5.18.jar", "BurpLoader by [url=mailto:larry_lau@163.com]larry_lau@163.com[/url]", 0); } } }
请注意成功执行的条件是你必须在java Build Path中添加外部的jar包文件BurpLoader.jar,因为patch并且被混淆过的burpsuite_pro_v1.5.18.jar运行时
会检测这个文件(是否存在或有无被修改)。
导出为test.jar,双击运行正常。
水平有限,如有错误请大家指正。
【via@hyphen-90sec】本文已经过作者授权转载,未经授权请勿转载本文!