过了第一题的签到题之后,就是一道RE题打开运行了一下,看起来和去年的题目没什么区别(误)

用查壳软件查一下壳,发现用了upx壳

首先想到了用软件脱壳的方法,可是发现软件报错 :pen: ,那就只能尝试手脱(意识到和去年题目不一样了= - =)

这里要注意一下,建议在xp系统下进行,之前在win10下脱,脱完后不能运行,试了好久才意识到win10的地址要手动导入

一路f8+f4下去,很快看到个大跳转,没什么难度就脱完了,脱壳后再次查询

看到是delphi写的程序,那么拉入IDA看看,然后我就傻眼了,8000+个函数 :leng:

然后就是百度谷歌 :huaji13: ,查了一下发现delphi写的程序可以用idr查询使用到的函数,果真就查到了点线索

可以看到窗体form1指向了一个函数edtPwdChange,终于有了点眉头

在ida中搜索这个函数,f5看反编译的代码

看到几段将输入的内容做计算后与几段字符串比较,这时就猜一下做了什么,猜了一下常见的base64和md5,发现是md5

E7EE5F4653E31955CACC7CD68E2A7839 --> 52pojie

c8d46d341bea4fd5bff866a65ff8aea9 --> game

至于中间的off_617F08是什么内容,在IDA中看不出,最简单的方法就是用OD在那里下断点,

然后拉到OD里搜索了一下,发现好像断点都不用下就能出来了 :huaji15:

ea6b2efbdd4255a9f1b3bbc6399b58f4 --> 2019

那么全部字符串连起来就是52pojie2019game

试一下flag,嗯正确 :huaji2:

总结:小看这题了,以为和去年的题目差不多或者类似,没想到比去年的难多了,首先要手脱,其次是md5加密,还有OD动态的调试 :weiqv:


一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。