吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5303|回复: 66
收起左侧

[Web逆向] 【Web逆向】基于Electron的CrackMe详细教程

  [复制链接]
hualy 发表于 2024-5-21 13:01
本帖最后由 hualy 于 2024-5-21 13:07 编辑

在教程开始之前,感谢collinchen1218提供的CrackMe,感谢cattie的指导CrackMe地址
1、双击打开下载好的文件 1.png 会弹出一个界面,借助大佬的经验进行操作:electron嘛,肯定会在本地设置一个服务器。直接利用netstat -na看本地端口连接情况 2.png 2、找出本地服务器打开任务管理器,找到相关进程,在这其实可以看出是Electron框架(应该把前端页面搞成exe文件的)做的,然后点击下面的第一个,右键打开菜单,转到详细信息 3.png 这样子就可以看到PID是多少了 4.png 这四个如何选择呢?答案是选第一个,也就是CrackMe的运行跳转到的那个,其他的会没反应 5.png
  • TCP:表示这是基于TCP协议的连接。
  • 127.0.0.1:49790:这是本地主机的IP地址和端口号。127.0.0.1 是本地回环地址,通常用于本地主机与本地主机之间的通信。49790 是源端口号。
  • 127.0.0.1:49789:这是另一个本地主机的IP地址和端口号,作为连接的目标。49789 是目标端口号。
  • ESTABLISHED:这表示连接已经建立,正在进行数据传输。
  • 17400:这是与此连接相关的进程的标识符,通常是操作系统分配给该进程的一个数字。
而我们要打开的则是127.0.0.1:49789,相当于本机访问百度那样,而我们实际是本机访问本机的一个程序 6.png 这样子就可以开心愉快的进行调试啦但是却发现F12、ctrl+shift+i快捷键打不开开发者工具只能够点击打开自定义及控制--更多工具--开发者工具来打开开发者工具 7.png 然后进行以下操作: 8.png 下断点进行动态调试,下完断点后刷新页面 9.png
发现debugger 10.png 解决debugger尝试1:下断点后修改断点为false,然后回车确认,测试了好多遍,时行时不行,就相当于是不行! 11.png
12.png 13.png 尝试2:替换调用的js,解决不了问题就解决制作问题的代码 14.png 找到制作问题的代码: 15.png 解决制作问题的代码:         }[_0x17a01d(0xc2)]('debu' + 'gger')[_0x17a01d(0x100)]('action'));这一行代码,如何让它不能正常运行呢?增删改都可以,反正就是破坏原本的代码结构使其失效增: 16.png 改: 17.png 删: 18.png 上面那几个虽然可以跳过debugger,但是可能会有一些奇奇怪怪的bug【不是】(我踩过的坑,希望有人也踩一下),所以,最好改一下[_0x17a01d(0xc2)]('debu' + 'gger')[_0x17a01d(0x100)]('action'));中的('debu' + 'gger'),比如去掉一个“g”
找到启动的js 19.png 开始调试 20.png 21.png 22.png 分析代码:
[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 输入flag{cm_27269284_pj52}flag{52pojie_cm_pj52}验证一下,密码正确
24.png

免费评分

参与人数 30威望 +1 吾爱币 +51 热心值 +29 收起 理由
笙若 + 1 + 1 谢谢@Thanks!
蘑菇点点 + 1 + 1 用心讨论,共获提升!
csbby + 1 + 1 我很赞同!
gooker + 1 用心讨论,共获提升!
wangyongdesign + 1 + 1 谢谢@Thanks!
Yangzaipython + 1 + 1 鼓励转贴优秀软件安全工具和文档!
lihuhu + 1 热心回复!
打不过就加入 + 1 + 1 谢谢@Thanks!
allspark + 1 + 1 用心讨论,共获提升!
趁火打劫 + 1 + 1 我很赞同!
正义天下 + 1 + 1 谢谢@Thanks!
lingyun011 + 1 + 1 热心回复!
debug_cat + 2 + 1 用心讨论,共获提升!
光影魔术 + 1 + 1 用心讨论,共获提升!
hpjfcc23 + 1 + 1 谢谢@Thanks!
rookie12138 + 1 + 1 热心回复!
yunyan233 + 1 + 1 我很赞同!
Bob5230 + 1 + 1 热心回复!
steven026 + 1 + 1 我很赞同!
xiong256824 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Courser + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
dkmg + 1 + 1 谢谢@Thanks!
德玛洗牙 + 3 + 1 我很赞同!
xiaoyxf + 1 + 1 谢谢@Thanks!
fengbolee + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
MissJz + 1 + 1 用心讨论,共获提升!
喵喵爱吃鱼 + 1 + 1 我很赞同!
renminbi + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
悦来客栈的老板 + 1 + 1 谢谢@Thanks!
涛之雨 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

7R903 发表于 2024-5-21 13:09
谢谢楼主的教程,吐槽一下排版,看的挺累
homehome 发表于 2024-5-21 14:50
总结知识点:
1、在任务管理的详细信息里查看程序相关端口
2、使用netstat -aon|findstr “端口号”确定有效端口
3、使用开发者工具-事件监听器-进行按钮事件下断
4、移除debugger限制:
     1.1断点改为false失败
     1.2替换调用的js,将其中的 ('debu' + 'gger'),比如去掉一个“g”,使js失效
byh3025 发表于 2024-5-21 13:50
yulai3230 发表于 2024-5-21 13:58
学习到了
悦来客栈的老板 发表于 2024-5-21 14:36
这文章也太详细了。谢谢。
jjjzw 发表于 2024-5-21 15:26
学到了,原来electron是这样的
第一个web cm的时候就在想怎么打开的开发者工具
zyzyzyzy 发表于 2024-5-21 16:47
学习一下
Pan 发表于 2024-5-21 17:00
基于此方法  好像我的查不到长连接  他直接访问的本路文件路径的.asar
Scan 发表于 2024-5-21 17:35
楼主思路清晰,学到了,加油加油!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-15 21:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表