小编Sam*_*ivu的帖子

如何静态分析传递给每个字节码指令的引用类型?

我已经重写了这个问题(问题仍然是相同的,只是背景噪音较小),希望能够减少针对所有错误事物的混淆 - 由于这一点,下面的一些评论似乎脱离了背景.

分析Java字节码,找到作为给定Java字节码指令的参数给出的所有可能的引用类型的最简单方法是什么?我对引用的类型感兴趣,也就是说,给定的putfield指令将接收一个Integer,或者它可能会收到一个Integer或Float等.

例如,考虑以下代码块:

   0:   aload_1
   1:   invokestatic    #21; //Method java/lang/Integer.valueOf:(Ljava/lang/String;)Ljava/lang/Integer;
   4:   astore_2
   5:   aload_2
   6:   ifnull  17
   9:   aload_0
   10:  aload_2
   11:  putfield    #27; //Field value:Ljava/lang/Number;
   14:  goto    25
   17:  aload_0
   18:  iconst_0
   19:  invokestatic    #29; //Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
   22:  putfield    #27; //Field value:Ljava/lang/Number;
   25:  return
Run Code Online (Sandbox Code Playgroud)

我们可以推断pc 11上的putfield指令将接收ref类型的Integer.

0: aload pushes ref type of String (the method param)
1: invokestatic pops the ref type and pushes a ref type of Integer (invoked method return type)
4: astore …
Run Code Online (Sandbox Code Playgroud)

java static-analysis bytecode

14
推荐指数
1
解决办法
582
查看次数

免费随机人脸发生器

有没有人知道生成随机2D人脸的免费库组件?

搜索时,我想出了FaceGen然而它不是免费的,所以它不会这样做.

理想情况下,我在寻找Java中的东西,但如果许可允许,我可以将它移植到Java.我真的不需要任何超级复杂的东西,也不需要非常可参数化的东西,只是吐出静止2D图像的东西.

java graphics

4
推荐指数
1
解决办法
6241
查看次数

标签 统计

java ×2

bytecode ×1

graphics ×1

static-analysis ×1