首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

以太坊智能合约OPCODE逆向之理论基础篇

因此我开始尝试研究并开发能满足我们自己需求的反编译工具,在我看来如果要写出一个优秀的反汇编工具,首先需要有较强的OPCODE逆向能力,本篇Paper将对以太坊智能合约OPCODE的数据结构进行一次深入分析...基础 智能合约的OPCODE是在EVM(Ethereum Virtual Machine)中进行解释执行,OPCODE为1字节,从0x00 - 0xff代表了相对应的指令,但实际有用的指令并没有0xff...个,还有一部分未被使用,以便将来的扩展 具体指令可参考Github3上的OPCODE指令集,每个指令具体含义可以参考相关文档4 IO 在EVM中不存在寄存器,也没有网络IO相关的指令,只存在对栈(stack...),内存(mem), 存储(storage)的读写操作 stack 使用的push和pop对栈进行存取操作,push后面会带上存入栈数据的长度,最小为1字节,最大为32字节,所以OPCODE从0x60-...在对智能合约的OPCODE有了一定的了解后,后续准备先写一个EVM的调试器,虽然Remix已经有了一个非常优秀的调试器了,但是却需要有Solidity源代码,这无法满足我测试无源码的OPCODE的工作需求

1.5K30

Android平台基于异常的Hook实现

转自游戏安全实验室 Android下面有很多Hook的思路,如果要获取执行到某地址的寄存器信息或者某地址的访问者信息,那么异常Hook将会是一个较优的手段,本章节会介绍Android平台下异常Hook的方法,包括原理...1.1 实现原理 利用SIGILL异常去做Hook操作,具体可以是对我们想要的监控的地址设一个非法指令,然后当程序执行到非法指令位置时系统会回调我们预先设定好的异常处理函数,我们在这个异常处理函数里面恢复地址的原指令...恢复地址的函数ResumetheOrgInstruction大同小异,只不过是把原来被篡改成非法opcode的地址修改回原opcode,这里就不贴代码了。 ?...最后这里会说说getCurAddrInstructionLength这个函数,可以根据之前在实现原理里面提到的方法解析opcode中[15:13]和[12:11]的位去判断当前指令是32bit还是16bit...**1.4 ****小结 ** 本文介绍了异常Hook的原理,并通过流程图和代码直观地描述和说明整个异常Hook的执行过程。

1.2K20

PHP7语言执行原理

PHP作为一种解释型语言,不同于编译型语言编译结果即为当前CPU体系的指令,PHP源代码只有编译成opcode才能够被zend虚拟机直接执行。 下面就简单描述PHP7语言执行原理: 1....抽象语法树(AST)编译生成opcode; 我们常常讨论的解释型语言执行效率较低,原因在于PHP执行过程中要多了翻译为opcode的过程。...为了弥补不是常驻内存的缺憾,引入opcode缓存,zend虚拟机会将第一次执行的PHP代码编译结果缓存到内存或者硬盘中,当下次执行该部分代码时直接读取缓存,一定程度上可以提高PHP运行速度。...列旭松,陈文,PHP核心技术与最佳实践 以上就是浅述PHP7底层设计01-PHP7语言执行原理的详细内容 更多学习内容请访问: 腾讯T3-T4标准精品PHP架构师教程目录大全,只要你看完保证薪资上升一个台阶

54210

WebSocket硬核入门:200行代码,教你徒手撸一个WebSocket服务器

22.jpg ▲ Ajax和Comet技术原理(图片引用自《Web端即时通讯技术盘点》) 3.2 WebSocket协议出现 33.jpg 随着HTML5标准的出现,WebSocket技术横空出世,随着...具体的做法如下,推荐先阅读以下几篇参考文章: 1)《学习WebSocket协议—从顶层到底层的实现原理(修订版)》:作者本身就用Node.js实现过一遍,知识点讲解挺透彻,适合优先阅读; 2)《WebSocket...在实现过程中的大部分代码可以从下面几篇文章中找到并借鉴(copy): 1)nodejs 实现:简化版本的从这儿借鉴过来的; 2)学习WebSocket协议—从顶层到底层的实现原理(修订版)。...8.1 操作码(OpcodeOpcode 即 操作代码,Opcode 的值决定了应该如何解析后续的数据载荷(data payload) 根据 Opcode 我们可以大致将数据帧分成两大类:数据帧 和...UUID 可以移步到《UUID原理》和 RFC 4122 获取更多知识。 为啥选择这个字符串?

1.2K62

WebSocket硬核入门:200行代码,教你徒手撸一个WebSocket服务器

▲ Ajax和Comet技术原理(图片引用自《Web端即时通讯技术盘点》) 3.2 WebSocket协议出现 ?...具体的做法如下,推荐先阅读以下几篇参考文章: 1)《学习WebSocket协议—从顶层到底层的实现原理(修订版)》:作者本身就用Node.js实现过一遍,知识点讲解挺透彻,适合优先阅读; 2)《WebSocket...在实现过程中的大部分代码可以从下面几篇文章中找到并借鉴(copy): 1)nodejs 实现:简化版本的从这儿借鉴过来的; 2)学习WebSocket协议—从顶层到底层的实现原理(修订版)。...8.1 操作码(OpcodeOpcode 即 操作代码,Opcode 的值决定了应该如何解析后续的数据载荷(data payload) 根据 Opcode 我们可以大致将数据帧分成两大类:数据帧 和...UUID 可以移步到《UUID原理》和 RFC 4122 获取更多知识。 为啥选择这个字符串? 在WebSocket标准协议文档的第七页已经有明确的说明了: ?

1.7K20

php7.4 preload(预加载)

为了更好的说明问题,我们先来看下面这张opcache的工作原理图。 图中不难看出,对于执行过的代码,再次执行时将命中cache,cache中的opcode可以直接被取出,进而执行。...从而省了下了词法析,语法分析,编译生成opcode的时间。...但是从cache中的opcode到执行opcode过程中还需要做两件事 将opcode从SHM(cache)中拷贝到处理请求的进程(比如php-fpm)空间中。 链接,也就是解决依赖问题。...此外,opcode是可以设置对文件的变化做检查的,比如每隔2秒,看下文件是否有变,如果改变,则cache中的opcode失效,重新编译。...执行前将opcode直接放入处理进程中。 提前链接,解决依赖。 载入的opcode不可更改,省去了检查文件变更及可能的重新编译时间。

1.3K20

以攻击者角度学习某风控设备指纹产品

四、设备指纹原理分析 4.1、设备指纹具备特性 唯一性高-稳定性强: 对比于传统的 IP、手机号等ID,设备指纹具有唯一性高、稳定性强和信息丰富这三个优势。...硬件动态特征: 硬件动态特征基本原理是基于硬件的一些动态执行层产生的特征(如:加速度传感器的偏差)来识别虚拟设备。 举个例子,因为加速度传感器校准结果的不精确性,其产生的最终结果会存在一定的偏差。...利用这样的原理,我们可以采集任何一个传感器硬件的偏差特征。因此,从稳定性上来说,硬件动态特征的表现还是不错的。...图4 五、设备风险识别原理分析 5.1、设备有什么风险? 模拟器、修改设备信息、WiFi信息、传感器、媒体和存储、应用模拟、系统设置模拟、越狱、hook、调试、注入等都是黑产作案过程中常见的手段。...八、总结 通过攻击视角对设备指纹技术进行基本原理性的学习了解。设备指纹是风控系统中对设备实现长期追踪和异常识别的一种关键技术。

3K20

深入EVM-合约分类这件小事背后的风险

在智能合约领域,"以太坊虚拟机 EVM" 以及其算法和数据结构就是第一性原理。 本文从合约为什么要分类出发,结合每个场景可能面对怎样的恶意攻击,最终给出一套达成相对安全的合约分类分析算法。...3.3、准确率提升1-反编译 那进一步的准确方法则是做Opcode的反编译!...这就是EVM是如何根据合约中的函数调用,来确定它需要执行的函数字节码的位置的原理。 实际上,这只是一组简单的“if语句”,用于合约中的每个函数以及它们的跳转位置。...合约在EVM运行原理中,会有以下特征 采用REVERT+JUMPDEST这2个连续的 opcode 作为代码块的区分 合约必然具备函数选择器的功能,该功能也必然在第一个代码块上 函数选择器中,其函数方法均采用...PUSH4作为opcode , 该选择器所包含的opcode中,会出现连续的PUSH1 00; CALLDATALOAD; PUSH1 e0; SHR; DUP1,核心功能是加载callDate数据并进行位移操作

22720
领券