Initialize encryption and JavaScript reverse-engineering study repository

Document the project structure and setup while excluding local dependencies and IDE settings.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-10-09 23:25:05 +08:00
commit 418a0411d1
34 changed files with 1544 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
// function run_task(attr) {
// console.log(attr);
// }
//
// run_task(123)
// !(function (attr) {
// console.log(attr);
// })(1)
//
// !(function (attr) {
// console.log(attr);
// })(2)
// !(function (attr) {
// // console.log(attr);
// attr[0]()
// })([
// function () {console.log("1")},
// function () {console.log("2")},
// function () {console.log("3")}
// ])
!(function (attr) {
// attr["2"]();
attr["2"].call();
attr["1"].apply();
})({
"1": function () { console.log("模块1") },
"2": function () { console.log("模块2") },
"3": function () { console.log("模块3") },
})

View File

@@ -0,0 +1,19 @@
/*
* webpack 的基本结构有两种(数组结构 / 对象结构)
*
* !(function ( 形参) { 加载器 }) ([模块1, 模块2, ...])
* !(function ( 形参) { 加载器 }) ({"1": 模块1, "2": 模块2, ...})
* */
!(function (function_location) {
function inner_run_func(key) {
return function_location[key].call()
}
inner_run_func("1")
})({
"1": function () { console.log("模块1"); },
"2": function () { console.log("模块2"); },
"3": function () { console.log("模块3"); },
})

View File

@@ -0,0 +1,55 @@
/*
* 模块有上千个
* 模块分布在不同的文件
* */
// 1. 如何在自执行webpack函数外部调用模块
// 2. 加载器初始化问题(浏览器环境检测问题)
// 3. 模块丢失问题
window = global
!(function (func_object) {
function inner_func(key) {
// 打印模块调用日志
console.log("被调用的模块是:", key);
func_object[key].call();
}
// 调用模块加载器
// inner_func("encrypt")
//将内部加载器挂在到全局
window.loader = inner_func;
// inner_func("web_env"); 如果在内部加载器中调用了环境检测直接注释
})({
"encrypt": function () {
console.log("加密...");
},
"decrypt": function () {
console.log("解密...");
},
"web_env": function () {
console.log("浏览器环境检测...");
},
})
// 问题1:将内部加载器挂载到顶级对象上
/*
window.loader("encrypt")
window.loader("decrypt")
*/
// 问题2:对于加载器初始化出现环境问题,直接注释
// inner_func("web_env")
// 问题3:模块丢失(在真实的网站模块调用当中可能存在模块是动态加载过来的)
// 解决方式就是模块定位(在内部加载器中打执行日志)
window.loader("339b")

View File

@@ -0,0 +1,5 @@
接口:
https://gateway.36kr.com/api/mus/login/byMobilePassword
加密参数:
查询字符串,sign加密
请求负载,nonce,mobileNo,password