网络封包验证码的CM
要求抓包到16位验证码或自己生成https://wwqk.lanzouq.com/iaBK9285dhyf密码:i30h
执_念 发表于 2024-8-24 23:29
我就简单分析了下,你看看对不对啊
ida是分析不出来的 原理是生成随机数然后交给服务器处理,最后服务器下发一个字符串(类似这样S_add(S_mul(S_or(S_and(S_mod(S_rshift(S_or(S_and(S_lshift(S_xor(S_or(S_and(S_mod(S_add(S_and(S_add(S_mul(S_lshift(S_rshift(S_xor(S_sub(S_div(S_rshift(S_or(S_lshift(S_rshift(S_or(S_sub(S_rshift(S_or(S_pow(S_div(S_and(S_pow(S_sub(S_pow(S_sub(S_rshift(S_xor(S_and(S_or(S_and(S_div(S_div(S_or(S_mod(S_and(S_mod(S_and(S_xor(S_mul(S_rshift(S_sub(S_and(S_pow(S_pow(S_or(S_mod(S_or(S_div(S_lshift(S_mul(S_mul(S_and(S_add(S_mod(S_add(S_div(S_or(S_sub(S_mul(S_div(S_sub(S_pow(S_xor(S_and(S_pow(S_mul(S_rshift(S_lshift(S_add(S_sub(S_sub(S_sub(S_mod(S_and(S_or(S_mul(S_sub(S_or(S_sub(S_mul(S_mod(S_rshift(S_mod(21,63),45),37),82),52),34),78),35),26),95),54),23),81),20),40),97),95),52),34),49),99),36),14),76),85),27),64),80),67),59),14),90),22),49),38),80),34),56),67),37),66),71),80),23),95),19),53),48),44),84),76),71),44),80),63),81),28),23),65),45),46),99),70),31),70),67),79),80),71),85),51),82),40),75),72),70),62),29),13),41),74),15),81),21),37),96),60),21),84),68),74),87),17),47),13)) 最后交给客户端的解析器解析出结果然后取hash的前16位 本帖最后由 LokmenoWer 于 2024-8-26 11:45 编辑
LokmenoWer 发表于 2024-8-26 08:16
ida是分析不出来的 原理是生成随机数然后交给服务器处理,最后服务器下发一个字符串(类似这样S_add(S_mul ...
第一个包是用来初始化 使用卡密+机器码获取一个固定机器的值 然后sha256(卡密+机器码)获得一个通讯hash用来维持通讯的通讯单元,通讯单元会创建两个密钥对并将hash反传给客户端。
第二个包用来从服务端获取服务器的公钥 这里用的是 salt+卡密+salt 作为aes的密钥传输
第三个包用来从服务端获取客户端的私钥 也是用的aes加密
第四个包是客户端生成一个随机值使用服务端的公钥加密后传给服务端,服务端验签成功确认有效期后进行解密 解密后生成一个大随机数 用遗传算法生成上文所述的字符串 最后用客户端公钥加密 下传至客户端 客户端解密并由上述的解析器进行解析 加上盐后就是所需要的验证码
当然这里也可以做判断也交给服务端,但是那样就有点耍赖了
以下是判断是否成功的代码
还带加壳的啊,还是SP验证啊,这样的程序就不要发出来了 本帖最后由 LokmenoWer 于 2024-8-24 19:42 编辑
执_念 发表于 2024-8-24 13:45
还带加壳的啊,还是SP验证啊,这样的程序就不要发出来了
不加壳直接被爆破了不是我的本意 只在关键判断的地方加了antidump 封包都是可逆的 而且验证码最后确实会解密{:17_1084:} 我就简单分析了下,你看看对不对啊
本帖最后由 kon99 于 2024-8-26 11:33 编辑
关键是抓包,嗅探,都没有找到网络请求啊!
就算是证书不对,也应该有个网络请求才对! kon99 发表于 2024-8-26 11:32
关键是抓包,嗅探,都没有找到网络请求啊
可以设置一个ip条件
服务端的ip是123.60.74.248
页:
[1]