As shown here, is is possible to read the code of a contract using plain Solidity by using the .code
member of the address type:
contract GetCode {
function at(address _addr) public view returns (bytes memory o_code) {
return _addr.code;
}
}
Does this return any code for precompiles?