• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
ch3n-d0174fun
博客园    首页    新随笔    联系   管理    订阅  订阅

BUUCTF/RE/Java逆向解密

第一次做JAVA的逆向题,差点直接把class文件拖进IDA了233~

百度了一下java逆向,发现它只需要反编译即可:Java反编译工具-JD-GUI-简单好用 - 简书 (jianshu.com)

下载了工具JD-GUI,直接双击然后拖入文件即可食用(划掉)使用

完全不会java!不过勉强看得懂英文(不是!

先看开头结尾,输入一个str,结尾比对一下resultlist和keylist,keylist在前文已经给出,result显然是str经过变换生成的。

再看内容。第一个函数结尾的Encrypt应该是把stringarr丢入了下面的函数中经历变换。这个被丢入的stringarr在新函数里被称作resultlist。

 然后对resultlist逐个字符进行循环,定义一个变量result记录加法和异或运算的结果。加法运算和异或运算的运算规律非常好,因为前者在逆向的时候直接改成减号,后者不用变。

下一行实在读不懂啦,查一下:

理解了,是把新构造的result元素放到list里面

 括号里面的valueof:

 

 

虽然有点难以理解,但大概意思是类型转换,转成了integer类型,虽然不懂具体意义,但应该也不用懂。

下一小块内容大概就是把int key[]放到了list里。虽然我也不太懂list是啥(倒下

总之读完了!可以写脚本啦qwq!

我暂时还只会写c的脚本qaqqq希望早日学会python啦qaq

 

 运行出的结果拿到16进制转字符串在线工具解码一下,flag就出来啦!一句内容平平无奇的flag,没意思,不放了qwq

posted @ 2022-01-16 16:16  快乐勇者安妮君  阅读(327)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3