合约反编译

登链社区问答 2022-04-06 08:51:17 阅读数:119

反编译 编译 合约 blockchain 登链社区问答
# Palkeoramix decompiler. def _fallback() payable: # default function idx = 0 while idx < calldata.size / 168: mem[272 len 20] = call.data[(168 * idx) + 26 len 20] mem[601 len 11] = call.data[(168 * idx) + 179 len 11] mem[889 len 11] = call.data[(168 * idx) + 179 len 11] mem[960 len 4] = call.data[(168 * idx) + 22 len 4] mem[992 len 36] = call.data[(168 * idx) + 143 len 36] mem[1539 len 1] = call.data[(168 * idx) + 46 len 1] mem[1604 len 64] = call.data[(168 * idx) + 47 len 64] mem[1832] = call.data[(168 * idx) + 111] mem[2120] = call.data[(168 * idx) + 111] mem[2036 len 20] = call.data[(168 * idx) + 26 len 20] call 0x7f268357a8c2552623316e2562d90e642bb538e5.atomicMatch_(address addrs, uint256 uints, uint8 feeMethodsSidesKindsHowToCalls, bytes calldataBuy, bytes calldataSell, bytes replacementPatternBuy, bytes replacementPatternSell, bytes staticExtradataBuy, bytes staticExtradataSell, uint8 vs, bytes32 rssMetadata) with: value mem[580 len 21], call.data[(168 * idx) + 179 len 11] wei gas gas_remaining wei args 0x7f268357a8c2552623316e2562d90e642bb538e5, 0x35634b55f3d99b071b5a354f48e10bef, 0, mem[96 len 36], 0xbaf2127b49fc93cbca6269fade0f7f31df4c88a7, mem[164 len 64], 0x7f268357a8c2552623316e2562d90e642bb538e5, mem[260 len 12], call.data[(168 * idx) + 26 len 20], mem[292], 0x5b3256965e7c3cf26e11fcaf296dfc8807c01073, 0xbaf2127b49fc93cbca6269fade0f7f31df4c88a7, mem[388 len 213], call.data[(168 * idx) + 179 len 11], mem[612 len 158], call.datamem[772 len 117], call.data[(168 * idx) + 179 len 11], mem[900 len 60], call.data[(168 * idx) + 22 len 4], mem[964 len 28], call.data[(168 * idx) + 143 len 36], 1, mem[1060 len 64], 1, 1, 1, mem[1220], 1, 1696, 1984, 2272, 2560, 2848, 2880, mem[1476 len 63], call.data[(168 * idx) + 46 len 1], mem[1540 len 64], call.data[(168 * idx) + 47 len 64], mem[1668 len 36], 983465108885, mem[1736], caller, mem[1800 len 12], call.data * idx) + 111], mem[1864], 192, mem[1928 len 64], 983465108885, mem[2024 len 12], call.data[(168 * idx) + 26 len 20], mem[2056 len 44], call.data * idx) + 111], mem[2152], 192, mem[2216 len 60], 228, mem[2308 len 4], -1, mem[2344 len 220], 228, mem[2596 len 36], -1, mem[2664 len 252] idx = idx + 1 continue if eth.balance(this.address): call caller with: value eth.balance(this.address) wei gas gas_remaining wei

这是所有的合约反编译结果,循环中类似mem[272 len 20]我理解是定义变量接收calldata中截取从特定位置开始的特定长度的参数?但是在后面的call过程中没有再次出现过。所以想知道这个memcall.data[]具体是在做什么,可能理解有变差?



其他答案1:
版权声明:本文为[登链社区问答]所创,转载请带上原文链接,感谢。 https://learnblockchain.cn/question/3351