4.24随笔(美蜜代码漏洞以及Java9)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1782/article/details/80058741

        听说这张就是网上流传的蒸发了60亿人民币的代码,其实说到底只是些虚拟数字而已啦,所以简单的分析下代码,看看他是怎么做到的,学习借鉴一下。

     方法传入的是1个接收方地址,1个数额 unitx就是0到2的x次方减1,unit256就能成为一个很大的数值,所以amount可能溢出,就像Integer.MAX_VALUE+1一样,输出的是一个负值(就是范围值的开始),所以当_value很大的时候amount的值为0.下面2个requie,可以很轻松的看出cnt=2&&amount的值是0均可以通过。然后后面遍历地址增加代币余额,所以会增加前面传进来的超级大的值。所以轻松获得一笔超级高的收益。

        听说实际上*是有安全方法的:
 
    验证:assert(a==0||c/a==b) 这里如果是上面的情况的话 0/a!=b,所以验证不会通过,所以在java中涉及到数字的计算的时候务必要谨慎。
     
    Java9的新变化:
        1.jdk代码的项目代码结构发生了变化,没有了jre,增加了新的conf、jmods文件夹。
        2.JShell工具.
        3.模块化( 某一个模块运行的时候,jvm只会启动和它有依赖的模块,并不会加载所有的模块到内存中
        4. 多版本兼容
        5.在jdk8在接口里面支持了default和static之后,java9可以加private方法了。
        6.

        7.String的底层实现由char[]改成了byte[],stream方法也加入了新的方法。


猜你喜欢

转载自blog.csdn.net/qq1782/article/details/80058741
今日推荐