学破解论坛

 ★找回密码★
 ★免费注册★

QQ登录

绑定QQ,免密登录

查看: 218|回复: 1

[原创逆向图文] 《re:从零开始的java逆向基础》#4静态变量存取

[复制链接] |关注本帖

签到天数: 4

该用户今日未签到




本帖最后由 Lightcolour 于 2019-9-21 14:38 编辑

static 静态变量可以随便赋值 而final 不能
LCG算法实现例子(来源于网络)
public class LCG
{
public static int rand_state;
public void my_srand (int init)
{
rand_state=init;
}
public static int RNG_a=1664525;
public static int RNG_c=1013904223;
public int my_rand ()
{
rand_state=rand_state*RNG_a;
rand_state=rand_state+RNG_c;
return rand_state & 0x7fff;
}
}
编译 LCG.java
反编译
static {};
   descriptor: ()V
   flags: ACC_STATIC
   Code:
     stack=1, locals=0, args_size=0
        0: ldc           #5                  // int 1664525
        2: putstatic     #3                  // Field RNG_a:I
        5: ldc           #6                  // int 1013904223
        7: putstatic     #4                  // Field RNG_c:I
       10: return
     LineNumberTable:
       line 8: 0
       line 9: 5
}
ldc #5 取常量1664525压栈
putstatic #3 从栈中取值存入变量RNG_a:I中
ldc #6 取常量1013904223压栈
putstatic#4从栈中取值存入变量RNG_C:I中初始化
看看my_srand
  public voidmy_srand(int);
    descriptor:(I)V
    flags:ACC_PUBLIC
    Code:
      stack=1,locals=2, args_size=2
         0: iload_1
         1:putstatic     #2                  // Field rand_state:I
         4: return
iload_1将参数值压入栈      为什么不是iload_0?看看上面的LCG()已经被使用过了
public LCG();
    descriptor: ()V
    flags:ACC_PUBLIC
    Code:
      stack=1,locals=1, args_size=1
         0: aload_0
         1:invokespecial #1               // Methodjava/lang/Object."<init>":()V
         4: return
putstatic 从栈中取值存入rand_state:I中
看看my_rand
Code:
      stack=2,locals=1, args_size=1
         0:getstatic     #2                  // Field rand_state:I
         3:getstatic     #3                  // Field RNG_a:I
         6: imul
         7:putstatic     #2                  // Field rand_state:I
        10:getstatic     #2                  // Field rand_state:I
        13:getstatic     #4                  // Field RNG_c:I
        16: iadd
        17:putstatic     #2                  // Field rand_state:I
        20:getstatic     #2                  // Field rand_state:I
        23:sipush        32767
        26: iand
        27: ireturn
getstatic 取值
imui
iadd
ireturn 返回值
本集资源
游客,当前主题有一部分内容已经设置隐藏,需要回复才能查看全部内容。

评分


每日系统赠送“免费评分”
评分不仅是免费的,还能提升你自己账号的活跃度。既感谢了楼主,又提升了自己。可谓一箭双雕!何乐而不为?评分安排上!

参与人数 1HB +20 THX +1 收起 理由
Shark恒 + 20 + 1 [快捷评语]--你将受到所有人的崇拜!

查看评分详情

学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!

签到天数: 18

该用户今日未签到




你将受到所有人的崇拜!
学破解论坛关注PC软件安全与移动软件安全领域。学习破解方法,使软件开发者能够更好的弥补软件缺陷,修复软件漏洞,提升软件安全,将损失降为最低。大量的软件加密解密教程,使软件开发者与代码逆向分析爱好者受益颇多,因此被连连称赞。保护开发者的利益与版权是我们持之以恒的动力!学破解论坛将竭尽全力为软件安全领域献出微薄之力!
您需要登录后才可以回帖 登录 | 立即注册

获得更多积分,阅读本版加分规则

免责声明

本站中所有被研究的素材与信息全部来源于互联网,版权争议与本站无关。本站所发布的任何软件的逆向分析文章、逆向分析视频、补丁、注册机和注册信息,仅限用于学习和研究软件安全的目的。全体用户必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。学习逆向分析技术是为了更好的完善软件可能存在的不安全因素,提升软件安全意识。所以您如果喜欢某程序,请购买注册正版软件,获得正版优质服务!不得将上述内容私自传播、销售或者其他任何非法用途!否则,一切后果请用户自负!

站长邮箱:SharkHeng#iCloud.com


站长微信号:SharkHeng|联系Email|鲨鱼逆向|无图版|手机版|小黑屋|FAQ|VIP破解教程|学破解论坛 ( 京公网安备 11011502002737号 | 京ICP备14042738号 ) 

GMT+8, 2019-12-13 15:38

快速回复 返回顶部 返回列表