WEB3爱好者,喜欢研究套利、发现确定性机会; 目标 A7 当链上蛀虫; ⚠️所有分享不做任何投资建议
WEB3爱好者,喜欢研究套利、发现确定性机会; 目标 A7 当链上蛀虫; ⚠️所有分享不做任何投资建议
Share Dialog
Share Dialog

Subscribe to GZY499

Subscribe to GZY499
在日常我们与合约交互的时候,通常是走网页前端弹出钱包,确认交易进行的;
但是如果网页卡住了,那么往往会错过一些重要的机会;
这个时候我们其实也可以直接在链上与合约交互;
-如图所示:
1️⃣进入区块浏览器;2️⃣输入合约地址;3️⃣选择交易的函数;4️⃣填入交易的参数,5️⃣点write就可以了!

但是有些时候,合约可能是闭源的,比如 fourmeme平台公售UPTOP代币 那次

这种就没有办法,像调用开源合约一样去调用合约了;
但是 依旧是可以调用 的;
1️⃣第一步:我们可以先去区块浏览器,找到别人成功调用的哈希(也可以自己手动调用一次)
2️⃣第二步:查看哈希最下面的input Data

通过这个哈希的input data,我们就知道了:
调用了0xfa89401a这个方法 + 传入了一个参数
这个时候 我们可以点进合约,多看几个别人的哈希,会发现:
别人调用的哈希input data都一样;那就说明,所有人传入的参数都一样;
这种时候我们复制这段16进制data,向合约地址转账0BNB,携带这段16进制,就可以成功调用了
但是有一些时候,合约是闭源的,同时大家传入的16进制data也不一样的时候,这种时候怎么办呢?
其实 依旧是有办法的,就是需要我们去通过16进制 calldata去 猜参数

依旧按照同样的方法找到input data:
“0xf581463e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000008a0db359c38414b5f145f65cc1c69d9253067c4300000000000000000000000000000000000000000000003635c9adc5dea00000000000000000000000000000000000000000000000000000e492fea5dcb6cdb100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000”
通过解析可以大概分析出 包含6️⃣个参数 (怎么解析后面会说~)
1️⃣:0
2️⃣:0x8a0db359c38414b5f145f65cc1c69d9253067c43 (UPTOP代币合约地址)
3️⃣:1000
4️⃣:16.47050677557335
5️⃣:0
6️⃣:0
通过这6️⃣个参数,我们大概可以猜出
1️⃣ 、 5️⃣ 、 6️⃣号参数 都是固定的为: 0
2️⃣号参数代表 UPTOP合约地址 ,也是固定的
3️⃣号参数代表 购买的UPTOP代币数量,也可以是固定的
那么4️⃣号参数就是唯一一个不固定的参数,我们就可以分析,这代表什么意思
因为UPTOP代币的价格是波动的,越来越高,所以我们可以大概猜出4️⃣号参数是类似 “滑点” 、 最多接受使用多少USD1的一个参数
那么如果我们把这个值直接改到20(公售的最高价) 代表最多接受使用20USD1 去 购买1000UPTOP,那么这个参数也可以被固定住了;
修改以后的16进制为:
0xf581463e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000008a0db359c38414b5f145f65cc1c69d9253067c4300000000000000000000000000000000000000000000003635c9adc5dea00000000000000000000000000000000000000000000000000001158e460913d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
向合约转账0BNB,携带这段16进制data,就可以完成与合约的交互啦
最后:简单类型的 16进制数据解析 和 修改器 网站:
https://calldata-evm.vercel.app/
总结:
面对闭源合约时 ,如果16进制一样,那么直接复制 inputdata 调用即可
如果是简单的参数,可以通过分析修改器,解析修改,然后调用
如果是复杂的参数 ,比如一些bytes tuple[] 类型的参数,就有点复杂了….放弃吧
最后欢迎大家关注我的推特:
在日常我们与合约交互的时候,通常是走网页前端弹出钱包,确认交易进行的;
但是如果网页卡住了,那么往往会错过一些重要的机会;
这个时候我们其实也可以直接在链上与合约交互;
-如图所示:
1️⃣进入区块浏览器;2️⃣输入合约地址;3️⃣选择交易的函数;4️⃣填入交易的参数,5️⃣点write就可以了!

但是有些时候,合约可能是闭源的,比如 fourmeme平台公售UPTOP代币 那次

这种就没有办法,像调用开源合约一样去调用合约了;
但是 依旧是可以调用 的;
1️⃣第一步:我们可以先去区块浏览器,找到别人成功调用的哈希(也可以自己手动调用一次)
2️⃣第二步:查看哈希最下面的input Data

通过这个哈希的input data,我们就知道了:
调用了0xfa89401a这个方法 + 传入了一个参数
这个时候 我们可以点进合约,多看几个别人的哈希,会发现:
别人调用的哈希input data都一样;那就说明,所有人传入的参数都一样;
这种时候我们复制这段16进制data,向合约地址转账0BNB,携带这段16进制,就可以成功调用了
但是有一些时候,合约是闭源的,同时大家传入的16进制data也不一样的时候,这种时候怎么办呢?
其实 依旧是有办法的,就是需要我们去通过16进制 calldata去 猜参数

依旧按照同样的方法找到input data:
“0xf581463e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000008a0db359c38414b5f145f65cc1c69d9253067c4300000000000000000000000000000000000000000000003635c9adc5dea00000000000000000000000000000000000000000000000000000e492fea5dcb6cdb100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000”
通过解析可以大概分析出 包含6️⃣个参数 (怎么解析后面会说~)
1️⃣:0
2️⃣:0x8a0db359c38414b5f145f65cc1c69d9253067c43 (UPTOP代币合约地址)
3️⃣:1000
4️⃣:16.47050677557335
5️⃣:0
6️⃣:0
通过这6️⃣个参数,我们大概可以猜出
1️⃣ 、 5️⃣ 、 6️⃣号参数 都是固定的为: 0
2️⃣号参数代表 UPTOP合约地址 ,也是固定的
3️⃣号参数代表 购买的UPTOP代币数量,也可以是固定的
那么4️⃣号参数就是唯一一个不固定的参数,我们就可以分析,这代表什么意思
因为UPTOP代币的价格是波动的,越来越高,所以我们可以大概猜出4️⃣号参数是类似 “滑点” 、 最多接受使用多少USD1的一个参数
那么如果我们把这个值直接改到20(公售的最高价) 代表最多接受使用20USD1 去 购买1000UPTOP,那么这个参数也可以被固定住了;
修改以后的16进制为:
0xf581463e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000008a0db359c38414b5f145f65cc1c69d9253067c4300000000000000000000000000000000000000000000003635c9adc5dea00000000000000000000000000000000000000000000000000001158e460913d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
向合约转账0BNB,携带这段16进制data,就可以完成与合约的交互啦
最后:简单类型的 16进制数据解析 和 修改器 网站:
https://calldata-evm.vercel.app/
总结:
面对闭源合约时 ,如果16进制一样,那么直接复制 inputdata 调用即可
如果是简单的参数,可以通过分析修改器,解析修改,然后调用
如果是复杂的参数 ,比如一些bytes tuple[] 类型的参数,就有点复杂了….放弃吧
最后欢迎大家关注我的推特:
<100 subscribers
<100 subscribers
No activity yet