24H&N逆向-WP
24H&N逆向部分wp
菜鸡新手师傅wp,Re 5/9,记录一下qaq
最喜欢的逆向题
64位,进主函数之后直接看,要求输入第5位为i,然后后面依次相等,长度为24,就输出flag
按照要求输入即可:
DO YOU KNOW SWDD?
主函数中函数并不多,一直跟进sub_41127B到最后你就会发现就是一个简单的smc
待解密部分:
idapython patch一下即可:
1 | addr = 0x00417000 |
得到加密逻辑如下:
exp:
1 | data = [83,95,86,89,70,79,95,67,71,78,78,95,71,82,75,68,95,75,76,89,69,68,95,73,89,69]#S_VYFO_CGNN_GRKD_KLYED_IYE |
hwanna
直接看Assembly-CSharp.dll
直接用python跑一下既可
1 | def a(input, shift): |
childmaze
一开始用的ida7.5,符号表一直载入不了,f5也看不了,动调也调不起来,纯坐牢了属于是,但看到一堆函数,同时有点混淆的感觉,寻思用d810去去混淆,用ida8.3打开了一下,发现可以正常载入符号表,看出来是rust,动调还是调不起来,难绷,大概逛了一下代码,找到应该是密文
没有逆向逻辑,就是在走完所有地图之后正常解密,用python跑一下直接出了
1 | data = "H'L@PC}Ci625`hG2]3bZK4{1~" |
Baby_OBVBS
查看vbs源码发现是一长串,确定是混淆无疑,execute是执行,即是执行后面这一长段
跑起来用ce附加了一下,查找了一下关键字符串"Enter the key:",发现了真正的代码逻辑:
dump下来之后确认为输入的key做了一个MD5的加密之后判断,然后flag是一个RC4的加密
而解密的关键是找到MD5的密文和RC4的密文,ANtg和eAqi,显然从dump下来的东西里已然没有这个信息了
所以还是得从给的vbs脚本入手,执行脚本之后能看到去混淆的代码,所以直接将所需要执行的带混淆的输出一下即可,将原先脚本中开头命令换成 WScript.Echo(vbs里的语法,类似c里面的printf),修改一下保存为vbs,运行并能看到代码逻辑以及需要的密文
加密部分还是带了base64加密,正常解码就能看出是MD5和RC4,但现在不用了,直接取开头的两个密文即可,MD5解完之后是H&NKEY
,然后直接RC4解就行,找个在线网站解了
H&NCTF{VBS_1s_@_s0_7unny_an4_pow3rfu1_t00l!}
隐藏的眼睛
比赛时候瞅了一眼,一堆爆红,貌似还是个病毒,解也不多,就没细看,后期复现了一下
拉进ida全是爆红,有点懵逼,看了wp说是程序大量动态调用与api重写导致ida静态分析函数爆红,眼瞅着下图中一眼有个myDLL,还有一个LocalHide(这个应该就是一个自隐藏,类似删除吧)
这块儿应该就是一个检测虚拟环境的部分,启动虚拟环境之后,查看进程就会发现有挂载这些东西,所以这块的作用应该就是检测
继续往下逛就是基本每个函数点进去都有爆红,只能随便看看信息了,下面这个好像是检测运行环境的,chat之后的结果是RtlGetVersion
是 Windows 操作系统中一个未公开的函数,属于 Runtime Library (RTL) 部分。这个函数用于获取当前操作系统的版本信息。由于它是未公开的,也就是说它不是 Microsoft 官方文档中明确定义的 API,因此使用它存在一定的风险,比如在未来版本的 Windows 中可能不再支持或者行为发生变化。
嗯,没啥用
逛一圈只有最后这个函数能进去
进去之后有大发现,一眼顶针鉴定为xxtea的shellcode,同时这个程序是没有提示输入之类的,按道理直接把这个过程走一遍就能出,但是动调是过不来这块的
所以这个题的考点感觉还是在过一开始的那个隐藏吧,加载了一个dll声明了LocalHide函数(顾名思义程序的本地隐藏)赋值给了v4,然后作为函数执行
倒是第一次知道这种做法,直接拉到dbg里结合ida调试直接就可以过了,基址是对齐的,直接找就行
设置完新运行点之后,再找到xxtea完之后的这个函数(感觉是一个check吧),然后断下来直接f9过来就好了
xor为check,其中的edx的值是从rdi的地址中取的,内存窗口直接跟过去就可以看到flag了,这种方法我只能说狠狠的学到了
H&NCTF{0h!!_Y0u_F0UND_MY_1P_ADDRESs}