简介
这是一个可以直接解释执行从ida pro里面提取出来的x86汇编代码的虚拟机。
非常精简,整体架构上不能跟那些成熟的虚拟机相比,主要目标是够用、能用、轻量就行,如果觉得代码架构设计的不是很好的话,也不用过于吐槽哈。。
虽然我还有写过两个比较成熟的虚拟机项目(jvm和avm),虽然架构上比这个更完善,更容易扩展,功能也更强大
但是毕竟是给公司写的,没法拿出来分享。。
背景
先说说,为什么要写这个东西。。
之前有段时间,我在用ida逆向分析某些程序的算法,并且要把它提取出来将其跨平台运行,这个时候我首先考虑到是ida的F5插件
毕竟这个可以直接反成c/c++代码,还是很强大的,基本上98%的x86汇编代码,我在通过
继续阅读 »
本文主要就go语言的学习发展,总结自己在学习的道路上遇到的问题,同时对学习资源进行归纳总结,以方便共同学习
概述
近年来语言的飞速发展,的确给大家带来一种应接不暇的现象,究竟如何取舍,的确是让人挺纠结的。自从Google宣布,kotlin 作为android开发的首选语言,java的地位能否像以前一样不得而知,但是基于jvm的语言(Groovy,Kotlin)的发展也让大家看到每种语言在处理特定问题的优势;gradle基于groovy,开发新一代的构建工具,个人觉得你极大提高了生产力,在持续集成领域,无疑增加了一剂猛药。可以看到groovy在领域特定语言上的优势。
继续阅读 »
Atomic一词跟原子有点关系,后者曾被人认为是最小物质的单位。
计算机中的Atomic是指不能分割成若干部分的意思。如果一段代码被认为是Atomic,则表示这段代码在执行过程中,是不能被中断的。
通常来说,原子指令由硬件提供,供软件来实现原子方法(某个线程进入该方法后,就不会被中断,直到其执行完成)。
DK1.5的原子包:java.util.concurrent.atomic
这个包里面提供了一组原子类。其基本的特性就是在多线程环境下,当有多个线程同时执行这些类的实例包含的方法时,具有排他性,即当某个线程进入方法,执行其中的指令时,不会被其他线程打断,而别的线程就像自旋锁一样,一直等到该方法执行完成,才由JVM从等待队列中选择
继续阅读 »