【perl】【buu】[WMCTF2020]easy_re
【perl】【buu】[WMCTF2020]easy_re
也是学到新的东西了
这题经过perl加密过的
查克无壳64位 ida
找了半天没找到一点有用的东西,倒是有几个奇怪字符
后来看了一下其他人的wp发现在字符串不断出现的perl是个提示
perl
【看雪perl例题】https://bbs.kanxue.com/thread-67651.htm
00405276 |. 83C4 0C |add esp, 0C
00405279 |. 8945 F0 |mov dword ptr [ebp-10], eax
0040527C |. 85C0 |test eax, eax
0040527E |. 0F84 83000000 |je 00405307
00405284 |. 68 5CCF4000 |push 0040CF5C ; ASCII “script”
00405289 |. 50 |push eax
0040528A |. 8B03 |mov eax, dword ptr [ebx]
0040528C |. FF30 |push dword ptr [eax]
0040528E |. E8 CBEFFFFF |call 0040425E
00405293 |. 83C4 0C |add esp, 0C
00405296 |. 8943 24 |mov dword ptr [ebx+24], eax
00405299 |. 85C0 |test eax, eax
0040529B |. 0F84 32020000 |je 004054D3
004052A1 |. 68 50CF4000 |push 0040CF50 ; /s = “hashline”
004052A6 |. FF75 F0 |push dword ptr [ebp-10] ; |/s
004052A9 |. E8 38360000 |call <jmp.&MSVCRT.strlen> ; |\strlen
004052AE |. 8BD8 |mov ebx, eax ; |
004052B0 |. C70424 40CF40>|mov dword ptr [esp], 0040CF40 ; |ASCII “-e#line 1 “”%s”””
004052B7 |. E8 2A360000 |call <jmp.&MSVCRT.strlen> ; \strlen
004052BC |. 59 |pop ecx
004052BD |. 03D8 |add ebx, eax
004052BF |. 53 |push ebx
004052C0 |. E8 46EEFFFF |call 0040410B
这个地方0040528E call 0040425E 就是解压的过程,直接f8过了以后eax里面就是你的源代码了。
perl是解释语言,perlapp只是把你的perl程序压缩后放在资源里面,执行的时候会解压的。
解题
在ida里动调找太坐牢了所以选择行x64dbg
F8单步一直到进入主函数
进入主函数后进行搜索script
跟进后在这里打断点
开始单步调试
flag被解密出来