吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3238|回复: 2
收起左侧

[原创] 【Reversing.kr】Multipcative

[复制链接]
whklhh 发表于 2017-10-21 03:36
本帖最后由 whklhh 于 2017-10-21 03:38 编辑

Reversing.kr是韩国的一个逆向题目网站
有分国度的排行榜,还是挺有意思的
本题即来自于第二十四关Multiplicative
http://reversing.kr/challenge.php可以下载到文件

这次是JAVA题目,下载下来是仅有2KB的jar文件
感觉应该很简单?解压缩出来一个MF文件,一个class文件
class里存放着java虚拟机执行用的字节码,所以其实java反编译起来相对而言应该是比较简单的拖入惯用的jd-gui就打脸了
空空如也╮(╯_╰)╭
也不知道是我版本不对劲还是混淆还是天时地利人和不对

先试着运行一下吧,java虚拟机应该可以直接执行jar文件的,查了一下加上-jar参数就可以了:

哦~成功了
前边都是介绍,最后一行说明输入参数为64位有符号整数
那么输入范围应该是-2^63 ~ 2^63咯

然而我还是不知道内部运算是啥嘛~

查了一下字节码的反编译,发现有javap这个自带的工具可用,加上-c参数可以得到反汇编:

  
这样终于得到汇编啦……挺像smali的吼,虽然我已经把以前看的smali都忘了233

复制下来,大概浏览了一下,前面部分的常量都是介绍文字的输出,可以从注释中看出来
关键部分在这里:

读入long类型的数,乘26729后与-1536balabala比较,要求相等

记事本中的l和1是相同的,简直要瞎了我的狗眼……
long类型的数字最后加L,这个坑浪费了我不少时间QAQ

另外,-1536balabala是有符号数,无符号的值是2^64 - 1536balabala,即
  
(Win10计算器大法好)

于是拿这个数除以26729就好啦~
  
嗯?这个小数点是怎么回事儿,这可不是个64位的有符号整数啊

除不尽说明啥?
说明真正的乘积不是这个-1536balabala呀,java的long类型只能保存64位,更高位由于溢出就丢失咯

那么我们就穷举被丢失的位呗,脚本跑一下:
[Python] 纯文本查看 复制代码
i = 1

while(1):
    k = i * (2**64) + 0xEAAEB43E477B8487
    if(k % 26729 == 0):
        print(k//26729)
        break
    else:
        i += 1


瞬间得到数字:9468659231510783855

输入以后程序还是提示64位有符号数,说明这东西超出范围,应该是个负数咯
那么将print处的代码修正一下:
[Python] 纯文本查看 复制代码
        print('-%d'% (2**64 - k//26729))

这样就得到转换的负数啦
提交,完成

另外在复盘的时候从http://invicsfate.cc/的WP中了解到了新的好使的反编译工具–jad和dj~
下载了jad,反编译出来好读多了QAQ:

函数也清晰了,数字的L也大写了,命令也直白了,溢出的有符号数还被转成十六进制无符号数了~简直太清爽了~为我浪费的时间默哀OTZ

PS:今天跳过了CRC1,因为以前@zbnysjwsnd8让我提前看过,算法很简单,就是CRC64,权值是很常见的类型,但是并不会逆求啊(╯‵□′)╯︵┻━┻
费了很大的功夫才理解了CRC的算法和查表法,查到了反构的资料http://blog.csdn.net/sugar13/article/details/51029312,但是理解起来很困难。

之前一直抱着想要理解透再自己写算法的想法
最后想通了(:з」∠)
数学编码学密码学不是我能触及的,乖乖站在巨人的肩膀上用查到的资料和算法解题吧……

JavaCrackMe.rar

1013 Bytes, 下载次数: 2, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 3吾爱币 +10 热心值 +3 收起 理由
Hmily + 8 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
sunnylds7 + 1 + 1 谢谢@Thanks!
lies2014 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ajm3 发表于 2017-10-21 12:03
貌似是java语言的
sunnylds7 发表于 2017-10-21 20:21
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-5 16:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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