1、双击打开下载好的文件
1.png (5.2 KB, 下载次数: 0)
下载附件
2024-5-21 13:02 上传
会弹出一个界面,借助大佬的经验进行操作:electron嘛,肯定会在本地设置一个服务器。直接利用netstat -na看本地端口连接情况
2.png (69.15 KB, 下载次数: 0)
下载附件
2024-5-21 13:02 上传
2、找出本地服务器打开任务管理器,找到相关进程,在这其实可以看出是Electron框架(应该把前端页面搞成exe文件的)做的,然后点击下面的第一个,右键打开菜单,转到详细信息
3.png (316.51 KB, 下载次数: 0)
下载附件
2024-5-21 13:02 上传
这样子就可以看到PID是多少了
4.png (487.84 KB, 下载次数: 0)
下载附件
2024-5-21 13:02 上传
这四个如何选择呢?答案是选第一个,也就是CrackMe的运行跳转到的那个,其他的会没反应
5.png (35.52 KB, 下载次数: 0)
下载附件
2024-5-21 13:02 上传
6.png (104.83 KB, 下载次数: 0)
下载附件
2024-5-21 13:02 上传
这样子就可以开心愉快的进行调试啦但是却发现F12、ctrl+shift+i快捷键打不开开发者工具只能够点击打开自定义及控制--更多工具--开发者工具来打开开发者工具
7.png (157.95 KB, 下载次数: 0)
下载附件
2024-5-21 13:02 上传
然后进行以下操作:
8.png (203.71 KB, 下载次数: 0)
下载附件
2024-5-21 13:02 上传
下断点进行动态调试,下完断点后刷新页面
9.png (301.97 KB, 下载次数: 0)
下载附件
2024-5-21 13:02 上传
发现debugger
10.png (194.2 KB, 下载次数: 0)
下载附件
2024-5-21 13:02 上传
解决debugger尝试1:下断点后修改断点为false,然后回车确认,测试了好多遍,时行时不行,就相当于是不行!
11.png (51.1 KB, 下载次数: 0)
下载附件
2024-5-21 13:02 上传
12.png (36.32 KB, 下载次数: 0)
下载附件
2024-5-21 13:02 上传
13.png (133.7 KB, 下载次数: 0)
下载附件
2024-5-21 13:02 上传
尝试2:替换调用的js,解决不了问题就解决制作问题的代码
14.png (189.44 KB, 下载次数: 0)
下载附件
2024-5-21 13:02 上传
找到制作问题的代码:
15.png (222.55 KB, 下载次数: 0)
下载附件
2024-5-21 13:02 上传
解决制作问题的代码: }[_0x17a01d(0xc2)]('debu' + 'gger')[_0x17a01d(0x100)]('action'));这一行代码,如何让它不能正常运行呢?增删改都可以,反正就是破坏原本的代码结构使其失效增:
16.png (296.71 KB, 下载次数: 0)
下载附件
2024-5-21 13:02 上传
改:
17.png (258.96 KB, 下载次数: 0)
下载附件
2024-5-21 13:02 上传
删:
18.png (244.69 KB, 下载次数: 0)
下载附件
2024-5-21 13:03 上传
上面那几个虽然可以跳过debugger,但是可能会有一些奇奇怪怪的bug【不是】(我踩过的坑,希望有人也踩一下),所以,最好改一下[_0x17a01d(0xc2)]('debu' + 'gger')[_0x17a01d(0x100)]('action'));中的('debu' + 'gger'),比如去掉一个“g”
找到启动的js
19.png (205.31 KB, 下载次数: 0)
下载附件
2024-5-21 13:03 上传
开始调试
20.png (309.37 KB, 下载次数: 0)
下载附件
2024-5-21 13:03 上传
21.png (299.85 KB, 下载次数: 0)
下载附件
2024-5-21 13:03 上传
22.png (358.09 KB, 下载次数: 0)
下载附件
2024-5-21 13:03 上传
分析代码:[JavaScript] 纯文本查看 复制代码document.addEventListener('keydown', function(event) { if (event.ctrlKey && event.shiftKey && event.key === 'I') { event.preventDefault() }});document.addEventListener('keydown', function(event) { if (event.key === 'F12') { event.preventDefault() }});var fl1 = "flag{";var fl2 = "pj52}";var pa1 = "collinchen1218";var pa2 = "crackme_";var nu1 = 5555 * 5555;var pa3 = nu1 + "_";var nu2 = 8888 * 8888;var pa4 = nu2 + "_";var nu3 = 5222 * 5222;var pa5 = nu3 + "_";var pa6 = "cm_";var pa7 = "horry_";var pa8 = "52pojie_";var pa9 = "magic_";var rd1 = fl1 + pa2 + pa3 + fl2;var rd2 = fl1 + pa7 + pa2 + fl2;var rd3 = fl1 + pa8 + pa6 + fl2;var rd4 = fl1 + pa9 + pa7 + fl2;var rd5 = fl1 + pa8 + pa1 + fl2;var rd6 = fl1 + pa4 + pa8 + fl2;var rd7 = fl1 + pa6 + pa5 + fl2;var rd8 = fl1 + pa8 + pa1 + fl2;var rd9 = fl1 + pa4 + pa9 + fl2;var rd10 = fl1 + pa5 + pa4 + fl2;function verifyPassword() { var inputPassword = document.getElementById("inputPassword").value; var correctPassword = "flag{52pojie_Ha5py_M8y_cr6ckme_qwer56uiop_ht01_N9w@2024}"; var correctPassword2 = "flag{52p0ji5_Ha58y_M8y_cr6c1me_qwer56ulkp_ht01_N9w@2024}"; if (inputPassword === "flag{asdedfgh_cm_9999}") {} if (inputPassword === rd7 + rd3) { document.getElementById('editable-div').innerHTML = "密码正确" } else { document.getElementById('editable-div').innerHTML = "密码错误" }}
看到以下代码就可以知道判断逻辑了
[JavaScript] 纯文本查看 复制代码if (inputPassword === rd7 + rd3) { document.getElementById('editable-div').innerHTML = "密码正确" } else { document.getElementById('editable-div').innerHTML = "密码错误" }
在控制台输入 rd7 + rd3,就可以看到flag了
23.png (330.31 KB, 下载次数: 0)
下载附件
2024-5-21 13:03 上传
输入flag{cm_27269284_pj52}flag{52pojie_cm_pj52}验证一下,密码正确
24.png (57.1 KB, 下载次数: 0)
下载附件
2024-5-21 13:03 上传