一道jar包逆向题的crack解法
2024-12-5 17:59:0 Author: mp.weixin.qq.com(查看原文) 阅读量:2 收藏

这道题目是2024网鼎杯玄武组的REVERSE02,从答题率来看算是简单题了(难的也不会),不过作为一个Java的小游戏题目,感觉还是挺有意思的。关于这道题目,目前网上的WriteUP提到了两种解法,一种是硬逆,解AES,另一种是非预期解,直接可以在class文件中找到flag明文字符串。这里提出了第三种解法,crack时间限制,把5秒超时改为5000秒超时,因为游戏不难,进而很容易通关获得flag。具体操作过程如下。

启动游戏,提示得20分就可以获得flag,但是有时间限制,只有5秒。

java --module-path E:\program\javafx-sdk-17.0.13\lib --add-modules javafx.controls,javafx.fxml -jar WhackAMoleGame_flag1.jar

对编程熟悉的话,推测5秒在反编译代码中大概就是个5或者5000的整数,并且应该和时间函数或类有关。使用recaf打开WhackAMoleGame_flag1.jar,可以在startGame函数中看到相关代码。

接下来开始crack,在startGame函数名上右击,选择“Edit with assembler”,把5000改成5000000,然后Ctrl+S保存,最后"File->Export program"导出为patched.jar。

Ctrl+S保存,然后导出。

执行patched.jar

java --module-path E:\program\javafx-sdk-17.0.13\lib --add-modules javafx.controls,javafx.fxml -jar patched.jar

最终获得flag,值为wdflag{yma9vtcmfJxtP33qQ2ZGY58SHMawuK2V},通关画面上还贴心的给了“复制内容”方便复制,所以crack解法才是作者的预期解?

1.遍历当前目录,找到含有flag字符串的文件。

grep -rl "flag" .
strings ./lLilllL1lIL1/I111LL1lL11/iIIilIii11.class |grep flag

2.JavaFX下载地址

https://gluonhq.com/products/javafx/

解密AES
https://mp.weixin.qq.com/s/g3uLQL4zhpzCaHu24vSP6A
https://mp.weixin.qq.com/s/ig4wPMX76FyUzJ2gTspCAA
https://mp.weixin.qq.com/s/Vt5xRUE2mshBjgJ4c-9IVg

非预期解
https://mp.weixin.qq.com/s/ig4wPMX76FyUzJ2gTspCAA

recaf操作
https://github.com/Col-E/Recaf/releases
https://bbs.kanxue.com/thread-270972.htm

看雪ID:Jtian

https://bbs.kanxue.com/user-home-598931.htm

*本文为看雪论坛优秀文章,由 Jtian 原创,转载请注明来自看雪社区

# 往期推荐

1、PWN入门-SROP拜师

2、一种apc注入型的Gamarue病毒的变种

3、野蛮fuzz:提升性能

4、关于安卓注入几种方式的讨论,开源注入模块实现

5、2024年KCTF水泊梁山-反混淆

球分享

球点赞

球在看

点击阅读原文查看更多


文章来源: https://mp.weixin.qq.com/s?__biz=MjM5NTc2MDYxMw==&mid=2458585394&idx=1&sn=4757ca6eff63ddc474a03bdeecb280b6&chksm=b18c39b886fbb0ae4bd2b5c3825ee9622d0d19ec352e6cf83fc4cd014bb09e2b18212f182671&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh