-
-
[原创]KCTF2020Q1参赛题目:寻踪觅源 by lelfei
-
发表于:
2020-4-16 09:11
6168
-
[原创]KCTF2020Q1参赛题目:寻踪觅源 by lelfei
寻踪觅源
预设用户名:
KCTF
预设SN:
40017535dad01714402635730122
设计说明:
发现一个Fabrice Bellard大牛写的开源js引擎quickjs,想学习一下源码,自己动手编译了一个WIN版本,发现可以直接把js脚本编译成EXE,并且生成的文件大小不到1M,用js写crackme是一个多么有意思的事!于是就有了这个CM,也帮大牛推广一下quickjs。膜拜作者Fabrice Bellard,知名开源项目FFMPEG和QEMU都出自他手,项目地址:0a9K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1k6h3I4D9j5i4u0V1i4K6u0W2L8%4u0Y4i4K6u0r3M7i4g2A6j5$3E0B7M7#2)9J5c8R3`.`. 。
CM设计思路很简单,详见src.js。编译过程比较麻烦,需要先修改Makefile启用win编译环境支持,用MSYS编译出编译引擎,再修改qjsc.c源码启用win下把js编译成exe的功能,用qjsc.exe从js脚本生成C文件,最后用gcc编译出crackme.exe。修改过的Makefile和qjsc.c也提供了,可以对比原始文件看看改动的位置。
编译qjsc.exe命令:运行msys中的mingw32.exe并切换到工作目录,运行mingw32-make
使用qjsc.exe编译js文件:在msys环境中运行:./qjsc -fno-date -fno-eval -fno-string-normalize -fno-regexp -fno-json -fno-proxy -fno-map -fno-typedarray -fno-promise -o crackme src.js
修改C源码文件后重新编译命令:gcc -O2 -flto -D _GNU_SOURCE -I . -o crackme out9492.c ./libquickjs.lto.a -lm -static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lpthread -Wl,-Bdynamic
[培训]科锐逆向工程师培训第53期2025年7月8日开班!
最后于 2020-4-19 16:28
被kanxue编辑
,原因: