|
发表于 2024-5-10 21:24:20
|
显示全部楼层
|阅读模式
云南省德宏傣族景颇族自治州
222精币
某APP的请求解密,我先说下他的加密流程,第一步随机一个32位的AES密钥,加密模式:AES/ECB/PKCS5Padding;加密的enc:hex模式,加密结果输出也是HEX;加密的内容:app_version=1.0.7&atoken=69253a7c3e96395e6e20100c49cf99b2&device_brand=Redmi&device_id=12a27371d1e50ae0&device_model=22081212C&device_network=wifi&device_platform=ANDROID&device_resolution=2482-1220-480&device_version=13&extra=×tamp=1715345691671&udid=1788549151882960897;只有时间戳是变化的,AES加密上面的内容位HEX结果;然后使用MD5加密AES的加密结果转换成大写格式;RSA公钥:MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFyfS52eqigLqYtBNjZvgXu4djZwip2chrlz+bsMegApZOGL09y/l4fsDeJuPVz7Qvc2NByLUdIPI3bMKYFaQVecYturiA0hBYD3rwa5rBuk3c0C96crsVTlmiToGgHR5shLtax0rInryKm0KS0zWwbS/412s7b+++e+AeUiOPYwIDAQAB最后使用RSA加密AES的密钥(大写);然后进行utf8加密,最后进行拼接:https://youtang.ruchuan.net/api/v10/task_electricity_data?device_version=13&device_id=12a27371d1e50ae0&app_version=1.0.7&device_model=22081212C&atoken=69253a7c3e96395e6e20100c49cf99b2&device_brand=Redmi&device_resolution=2482-1220-480&extra=&device_platform=ANDROID&udid=1788549151882960897&device_network=wifi×tamp=1715345691671&_key=0063abf2ab37c14a61db17b090c8f358&_sign=cEP2uAYB7MtBYcnbatkQOY%2BXxKvkAN%2BwGrETfj9Zoj9DtADAEPYYiSTDTIY4DOvkSgSPFg0H8nFN%0ACNuMs1i%2F2mHbo5J3JFwrw05qhPEKalgDQLbJYMgjKN3GhYTIE6QuWw5WKYqWt3Or6ZFvXPqZsdso%0At%2FTo8mQSe0u0SnPf67I%3D%0A;这个就是最终加密完成拼接的的结果,但是我写成易语言代码后始终都是非法请求,不知道哪里没写对,请求大佬们帮忙看看图4是抓包正常的返回结果,图5是我写代码返回的结果图上jadx代码兰奏链接:https://wwo.lanzouo.com/b0r97mish密码:1nti
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_网址 | 文本型 | | | 局_方式 | 整数型 | | | ADD_协议头 | 类_POST数据类 | | | 局_提交协议头 | 文本型 | | | 局_结果 | 字节集 | | | 局_返回 | 文本型 | | | RSA | RSA加解密 | | | 时间戳 | 文本型 | | | 随机AES密钥 | 文本型 | | | aes加密算法 | 文本型 | | | md5 | 文本型 | | | rs | 文本型 | | |
时间戳 = 时间_取现行时间戳 ()随机AES密钥 = 文本_取随机字符 (32, 位或 (1, 4 )) aes加密算法 = 到大写 (AES加密 (“app_version=1.0.7&atoken=69253a7c3e96395e6e20100c49cf99b2&device_brand=Redmi&device_id=12a27371d1e50ae0&device_model=22081212C&device_network=wifi&device_platform=ANDROID&device_resolution=2482-1220-480&device_version=13&extra=×tamp=” + 时间戳 + “&udid=1788549151882960897”, 随机AES密钥 )) md5 = 校验_取md5_文本 (aes加密算法, , , )RSA. 载入公钥 (“MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFyfS52eqigLqYtBNjZvgXu4djZwip2chrlz+bsMegApZOGL09y/l4fsDeJuPVz7Qvc2NByLUdIPI3bMKYFaQVecYturiA0hBYD3rwa5rBuk3c0C96crsVTlmiToGgHR5shLtax0rInryKm0KS0zWwbS/412s7b+++e+AeUiOPYwIDAQAB”)RSA. 公钥加密 (随机AES密钥, #文本内容类型_原始内容, rs, #文本内容类型_Base64, #RSA填充类型_PKCS1 ) rs = URL编码 (rs, #文本编码格式_UTF8 )调试输出 (“aes:” + 随机AES密钥, “aes结果:” + aes加密算法, “md5:” + md5, “rsa:” + rs )局_网址 = “https://youtang.ruchuan.net/api/v10/task_electricity_data?device_version=13&device_id=12a27371d1e50ae0&app_version=1.0.7&device_model=22081212C&atoken=69253a7c3e96395e6e20100c49cf99b2&device_brand=Redmi&device_resolution=2482-1220-480&extra=&device_platform=ANDROID&udid=1788549151882960897&device_network=wifi×tamp=” + 时间戳 + “&_key=” + md5 + “&_sign=” + rs 局_方式 = 0 ADD_协议头. 添加 (“Connection”, “keep-alive”, )ADD_协议头. 添加 (“User-Agent”, “Dalvik/2.1.0 (Linux; U; Android 13; 22081212C Build/TKQ1.220829.002)”, )ADD_协议头. 添加 (“Host”, “youtang.ruchuan.net”, )局_提交协议头 = ADD_协议头. 获取协议头数据 ()局_结果 = 网页_访问_对象 (局_网址, 局_方式, , , , 局_提交协议头, , , , , , , , , , , , , )局_返回 = 到文本 (编码_编码转换对象 (局_结果, , , )) 调试输出 (局_返回 )返回 (局_返回 )
|
最佳答案
查看完整内容
经测试是能正常返回SUCCESS的~
{"code":0,"message":"SUCCESS","data":{"noAdCount":0,"countdown":0,"completeCount":0,"maxCount":6,"watchCountdown":0}}
|