当前位置: 首页 > news >正文

逆向案例二十六——webpack自执行函数是完整的,但我们只需要加载器,某职业技术学校登陆密码逆向

网址:统一身份认证平台

找到登陆包,搜索找到加密位置。

找到加密位置,打上断点

 

分析,E就是加密结果

 

进入n.i函数,就是t.i,看一下这个函数,传一个值,然后不变的返回,所以没什么意义

因此直接看u.c,很明显的webpack,找到前面定义u的位置,打上断点,释放其他断点,然后刷新页面。

进入n,发现它是一个完整的自执行函数 。总共有7万多行,我们只复制加载器,导出加载器,删除初始化。改成字典格式。

 

补充细枝末节,接下来就是补充函数模块。

缺少45模块,回到初始n(45) ,找到函数复制。可以发现,这是在子文件中

 

整体结果展示。

完整代码:

var yangxin;
window=global;
!function(e) {function t(n) {console.log(n)if (r[n])return r[n].exports;var o = r[n] = {i: n,l: !1,exports: {}};return e[n].call(o.exports, o, o.exports, t),o.l = !0,o.exports}yangxin=tvar n = window.webpackJsonp;window.webpackJsonp = function(r, i, a) {for (var c, u, l, s = 0, f = []; s < r.length; s++)u = r[s],o[u] && f.push(o[u][0]),o[u] = 0;for (c in i)Object.prototype.hasOwnProperty.call(i, c) && (e[c] = i[c]);for (n && n(r, i, a); f.length; )f.shift()();if (a)for (s = 0; s < a.length; s++)l = t(t.s = a[s]);return l};var r = {}, o = {1: 0};t.e = function(e) {function n() {c.onerror = c.onload = null,clearTimeout(u);var t = o[e];0 !== t && (t && t[1](new Error("Loading chunk " + e + " failed.")),o[e] = void 0)}var r = o[e];if (0 === r)return new Promise(function(e) {e()});if (r)return r[2];var i = new Promise(function(t, n) {r = o[e] = [t, n]});r[2] = i;var a = document.getElementsByTagName("head")[0], c = document.createElement("script");c.type = "text/javascript",c.charset = "utf-8",c.async = !0,c.timeout = 12e4,t.nc && c.setAttribute("nonce", t.nc),c.src = t.p + "" + e + "." + {0: "9cb4f940d5df451f543d"}[e] + ".js";var u = setTimeout(n, 12e4);return c.onerror = c.onload = n,a.appendChild(c),i},t.m = e,t.c = r,t.i = function(e) {return e},t.d = function(e, n, r) {t.o(e, n) || Object.defineProperty(e, n, {configurable: !1,enumerable: !0,get: r})},t.n = function(e) {var n = e && e.__esModule ? function() {return e.default}: function() {return e};return t.d(n, "a", n),n},t.o = function(e, t) {return Object.prototype.hasOwnProperty.call(e, t)},t.p = "/",t.oe = function(e) {throw console.error(e),e}
}({45: function(e, t, n) {"use strict";function a(e) {U = e,R = new Array(U);for (var t = 0; t < R.length; t++)R[t] = 0;q = new i,F = new i,F.digits[0] = 1}function i(e) {this.digits = "boolean" == typeof e && 1 == e ? null : R.slice(0),this.isNeg = !1}function r(e) {var t = new i(!0);return t.digits = e.digits.slice(0),t.isNeg = e.isNeg,t}function o(e) {var t = new i;t.isNeg = e < 0,e = Math.abs(e);for (var n = 0; e > 0; )t.digits[n++] = e & X,e = Math.floor(e / j);return t}function s(e) {for (var t = "", n = e.length - 1; n > -1; --n)t += e.charAt(n);return t}function c(e, t) {var n = new i;n.digits[0] = t;for (var a = C(e, n), r = H[a[1].digits[0]]; 1 == k(a[0], q); )a = C(a[0], n),digit = a[1].digits[0],r += H[a[1].digits[0]];return (e.isNeg ? "-" : "") + s(r)}function l(e) {for (var t = "", n = 0; n < 4; ++n)t += J[15 & e],e >>>= 4;return s(t)}function u(e) {for (var t = "", n = (h(e),h(e)); n > -1; --n)t += l(e.digits[n]);return t}function p(e) {return e >= 48 && e <= 57 ? e - 48 : e >= 65 && e <= 90 ? 10 + e - 65 : e >= 97 && e <= 122 ? 10 + e - 97 : 0}function d(e) {for (var t = 0, n = Math.min(e.length, 4), a = 0; a < n; ++a)t <<= 4,t |= p(e.charCodeAt(a));return t}function m(e) {for (var t = new i, n = e.length, a = n, r = 0; a > 0; a -= 4,++r)t.digits[r] = d(e.substr(Math.max(a - 4, 0), Math.min(a, 4)));return t}function _(e, t) {var n = "-" == e.charAt(0), a = n ? 1 : 0, r = new i, o = new i;o.digits[0] = 1;for (var s = e.length - 1; s >= a; s--) {r = f(r, b(o, p(e.charCodeAt(s)))),o = b(o, t)}return r.isNeg = n,r}function f(e, t) {var n;if (e.isNeg != t.isNeg)t.isNeg = !t.isNeg,n = g(e, t),t.isNeg = !t.isNeg;else {n = new i;for (var a, r = 0, o = 0; o < e.digits.length; ++o)a = e.digits[o] + t.digits[o] + r,n.digits[o] = a % j,r = Number(a >= j);n.isNeg = e.isNeg}return n}function g(e, t) {var n;if (e.isNeg != t.isNeg)t.isNeg = !t.isNeg,n = f(e, t),t.isNeg = !t.isNeg;else {n = new i;var a, r;r = 0;for (var o = 0; o < e.digits.length; ++o)a = e.digits[o] - t.digits[o] + r,n.digits[o] = a % j,n.digits[o] < 0 && (n.digits[o] += j),r = 0 - Number(a < 0);if (-1 == r) {r = 0;for (var o = 0; o < e.digits.length; ++o)a = 0 - n.digits[o] + r,n.digits[o] = a % j,n.digits[o] < 0 && (n.digits[o] += j),r = 0 - Number(a < 0);n.isNeg = !e.isNeg} elsen.isNeg = e.isNeg}return n}function h(e) {for (var t = e.digits.length - 1; t > 0 && 0 == e.digits[t]; )--t;return t}function v(e) {var t, n = h(e), a = e.digits[n], i = (n + 1) * B;for (t = i; t > i - B && 0 == (32768 & a); --t)a <<= 1;return t}function E(e, t) {for (var n, a, r, o = new i, s = h(e), c = h(t), l = 0; l <= c; ++l) {n = 0,r = l;for (var u = 0; u <= s; ++u,++r)a = o.digits[r] + e.digits[u] * t.digits[l] + n,o.digits[r] = a & X,n = a >>> K;o.digits[l + s + 1] = n}return o.isNeg = e.isNeg != t.isNeg,o}function b(e, t) {var n, a, r, o = new i;n = h(e),a = 0;for (var s = 0; s <= n; ++s)r = o.digits[s] + e.digits[s] * t + a,o.digits[s] = r & X,a = r >>> K;return o.digits[1 + n] = a,o}function y(e, t, n, a, i) {for (var r = Math.min(t + i, e.length), o = t, s = a; o < r; ++o,++s)n[s] = e[o]}function w(e, t) {var n = Math.floor(t / B), a = new i;y(e.digits, 0, a.digits, n, a.digits.length - n);for (var r = t % B, o = B - r, s = a.digits.length - 1, c = s - 1; s > 0; --s,--c)a.digits[s] = a.digits[s] << r & X | (a.digits[c] & V[r]) >>> o;return a.digits[0] = a.digits[s] << r & X,a.isNeg = e.isNeg,a}function T(e, t) {var n = Math.floor(t / B), a = new i;y(e.digits, n, a.digits, 0, e.digits.length - n);for (var r = t % B, o = B - r, s = 0, c = s + 1; s < a.digits.length - 1; ++s,++c)a.digits[s] = a.digits[s] >>> r | (a.digits[c] & Y[r]) << o;return a.digits[a.digits.length - 1] >>>= r,a.isNeg = e.isNeg,a}function S(e, t) {var n = new i;return y(e.digits, 0, n.digits, t, n.digits.length - t),n}function x(e, t) {var n = new i;return y(e.digits, t, n.digits, 0, n.digits.length - t),n}function O(e, t) {var n = new i;return y(e.digits, 0, n.digits, 0, t),n}function k(e, t) {if (e.isNeg != t.isNeg)return 1 - 2 * Number(e.isNeg);for (var n = e.digits.length - 1; n >= 0; --n)if (e.digits[n] != t.digits[n])return e.isNeg ? 1 - 2 * Number(e.digits[n] > t.digits[n]) : 1 - 2 * Number(e.digits[n] < t.digits[n]);return 0}function C(e, t) {var n, a, o = v(e), s = v(t), c = t.isNeg;if (o < s)return e.isNeg ? (n = r(F),n.isNeg = !t.isNeg,e.isNeg = !1,t.isNeg = !1,a = g(t, e),e.isNeg = !0,t.isNeg = c) : (n = new i,a = r(e)),new Array(n,a);n = new i,a = e;for (var l = Math.ceil(s / B) - 1, u = 0; t.digits[l] < G; )t = w(t, 1),++u,++s,l = Math.ceil(s / B) - 1;a = w(a, u),o += u;for (var p = Math.ceil(o / B) - 1, d = S(t, p - l); -1 != k(a, d); )++n.digits[p - l],a = g(a, d);for (var m = p; m > l; --m) {var _ = m >= a.digits.length ? 0 : a.digits[m], E = m - 1 >= a.digits.length ? 0 : a.digits[m - 1], y = m - 2 >= a.digits.length ? 0 : a.digits[m - 2], x = l >= t.digits.length ? 0 : t.digits[l], O = l - 1 >= t.digits.length ? 0 : t.digits[l - 1];n.digits[m - l - 1] = _ == x ? X : Math.floor((_ * j + E) / x);for (var C = n.digits[m - l - 1] * (x * j + O), N = _ * z + (E * j + y); C > N; )--n.digits[m - l - 1],C = n.digits[m - l - 1] * (x * j | O),N = _ * j * j + (E * j + y);d = S(t, m - l - 1),a = g(a, b(d, n.digits[m - l - 1])),a.isNeg && (a = f(a, d),--n.digits[m - l - 1])}return a = T(a, u),n.isNeg = e.isNeg != c,e.isNeg && (n = c ? f(n, F) : g(n, F),t = T(t, u),a = g(t, a)),0 == a.digits[0] && 0 == h(a) && (a.isNeg = !1),new Array(n,a)}function N(e, t) {return C(e, t)[0]}function I(e) {this.modulus = r(e),this.k = h(this.modulus) + 1;var t = new i;t.digits[2 * this.k] = 1,this.mu = N(t, this.modulus),this.bkplus1 = new i,this.bkplus1.digits[this.k + 1] = 1,this.modulo = P,this.multiplyMod = A,this.powMod = W}function P(e) {var t = x(e, this.k - 1), n = E(t, this.mu), a = x(n, this.k + 1), i = O(e, this.k + 1), r = E(a, this.modulus), o = O(r, this.k + 1), s = g(i, o);s.isNeg && (s = f(s, this.bkplus1));for (var c = k(s, this.modulus) >= 0; c; )s = g(s, this.modulus),c = k(s, this.modulus) >= 0;return s}function A(e, t) {var n = E(e, t);return this.modulo(n)}function W(e, t) {var n = new i;n.digits[0] = 1;for (var a = e, r = t; ; ) {if (0 != (1 & r.digits[0]) && (n = this.multiplyMod(n, a)),r = T(r, 1),0 == r.digits[0] && 0 == h(r))break;a = this.multiplyMod(a, a)}return n}function M(e, t, n) {this.e = m(e),this.d = m(t),this.m = m(n),this.chunkSize = 2 * h(this.m),this.radix = 16,this.barrett = new I(this.m)}function D(e, t, n) {return new M(e,t,n)}function L(e, t) {for (var n = new Array, a = t.length, r = 0; r < a; )n[r] = t.charCodeAt(r),r++;for (; n.length % e.chunkSize != 0; )n[r++] = 0;var o, s, l, p = n.length, d = "";for (r = 0; r < p; r += e.chunkSize) {for (l = new i,o = 0,s = r; s < r + e.chunkSize; ++o)l.digits[o] = n[s++],l.digits[o] += n[s++] << 8;var m = e.barrett.powMod(l, e.e);d += (16 == e.radix ? u(m) : c(m, e.radix)) + " "}return d.substring(0, d.length - 1)}function Q(e, t) {var n, a, i, r = t.split(" "), o = "";for (n = 0; n < r.length; ++n) {var s;for (s = 16 == e.radix ? m(r[n]) : _(r[n], e.radix),i = e.barrett.powMod(s, e.d),a = 0; a <= h(i); ++a)o += String.fromCharCode(255 & i.digits[a], i.digits[a] >> 8)}return o.charCodeAt(o.length - 1),o}t.a = a,t.b = D,t.c = L,t.d = Q;var U, R, q, F, K = 16, B = K, j = 65536, G = j >>> 1, z = j * j, X = j - 1;a(20);var H = (o(1e15),new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z")), J = new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"), V = new Array(0,32768,49152,57344,61440,63488,64512,65024,65280,65408,65472,65504,65520,65528,65532,65534,65535), Y = new Array(0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535)},
})u = yangxin(45)
u.a(131);
var password = '123456';
var b = u.b("010001", "", "00b5eeb166e069920e80bebd1fea4829d3d1f3216f2aabe79b6c47a3c18dcee5fd22c2e7ac519cab59198ece036dcf289ea8201e2a0b9ded307f8fb704136eaeb670286f5ad44e691005ba9ea5af04ada5367cd724b5a26fdb5120cc95b6431604bd219c6b7d83a6f8f24b43918ea988a76f93c333aa5a20991493d4eb1117e7b1")
function encrypted_pwd(b,password){E = u.c(b, password)return E
}console.log(encrypted_pwd(b,password))

 

 

 

相关文章:

逆向案例二十六——webpack自执行函数是完整的,但我们只需要加载器,某职业技术学校登陆密码逆向

网址&#xff1a;统一身份认证平台 找到登陆包&#xff0c;搜索找到加密位置。 找到加密位置&#xff0c;打上断点 分析&#xff0c;E就是加密结果 进入n.i函数&#xff0c;就是t.i,看一下这个函数&#xff0c;传一个值&#xff0c;然后不变的返回&#xff0c;所以没什么意义 …...

容器安全最佳实践和工具

容器安全最佳实践和工具 什么是容器安全 容器安全是指保护容器化应用程序和基础设施免受潜在威胁和攻击的措施和策略。容器化技术&#xff08;如Docker、Kubernetes&#xff09;使得应用程序能够在隔离的环境中运行&#xff0c;这既提供了灵活性&#xff0c;也引入了新的安全…...

牛客周赛 Round 51

目录 A.小红的同余 B.小红的三倍数 C.小红充电 D.小红的gcd E.小红走矩阵 F.小红的数组 这次周赛题目比较简单&#xff0c;算法题也基本上是板子题&#xff0c;出得很好(&#xff5e;&#xffe3;▽&#xffe3;)&#xff5e; A.小红的同余 思路&#xff1a;签到题&am…...

【Linux】详解加锁实现线程互斥

一、多线程不加线程互斥可能会引发的问题 下面是一个抢标逻辑。抢票为什么会抢到负数&#xff1a;假设当票数为1时&#xff0c;此时四个进程的判断条件tickets都大于0&#xff0c;都会进入抢票操作&#xff0c;第一个进程抢完票以后tickets0并写回内存&#xff0c;第二个进程再…...

Java学习高级四

JDK8开始&#xff0c;接口新增了三种形式的方法 接口的多继承 内部类 成员内部类 静态内部类 局部内部类 匿名内部类 import javax.swing.*; import java.awt.event.ActionEvent;public class Test {public static void main(String[] args) {// 扩展 内部类在开发中的真实使用…...

mmc-utils 的 MMC 测试工具

MMC 工具介绍 有一个名为 mmc-utils 的 MMC 测试工具&#xff0c;由 Ulf Hansson 维护&#xff0c;您可以在以下公共 git 存储库中找到它&#xff1a; mmc/mmc-utils.git - Unnamed repository; edit this file description to name the repository. 功能 mmc-utils 工具可以…...

使用Python Turtle绘制圣诞树和装饰

简介(❤ ω ❤) 在这篇文章中&#xff0c;我们将探索如何使用Python的Turtle模块来绘制一个充满节日气氛的圣诞树&#xff0c;以及一些可爱的装饰品。Turtle是一个受Logo语言启发的图形库&#xff0c;非常适合初学者学习编程和创建图形。 码农不是吗喽&#xff08;大学生版&…...

非常好的新版网盘系统,是一款PHP网盘与外链分享程序,支持文件预览

这是一款PHP网盘与外链分享程序&#xff0c;支持所有格式文件的上传&#xff0c; 可以生成文件外链、图片外链、音乐视频外链&#xff0c;生成外链同时自动生成相应的UBB代码和HTML代码&#xff0c; 还可支持文本、图片、音乐、视频在线预览&#xff0c;这不仅仅是一个网盘&a…...

针对【module_or_function】的单元测试,全面覆盖可能的【edge_cases】

针对【module_or_function】的单元测试&#xff0c;全面覆盖可能的【edge_cases】 编写单元测试是为了验证代码模块或函数的正确性和鲁棒性。对于module_or_function&#xff0c;首先需要确定这个模块或函数的具体功能和预期输入范围。一个好的单元测试应该包括以下几个步骤&a…...

OTA测试!

OTA测试&#xff0c;全称“Over-The-Air Testing”&#xff0c;是一种无线通信设备的性能测试方法&#xff0c;主要用于评估设备在无线传输环境中的性能表现。以下是关于OTA测试的详细介绍&#xff1a; 一、定义与目的 OTA测试着重进行整机辐射性能方面的测试&#xff0c;以评…...

[H最短路] lc2959. 关闭分部的可行集合数目(Floyd最短路+二进制枚举+模板题)

文章目录 1. 题目来源2. 题目解析 1. 题目来源 链接&#xff1a;2959. 关闭分部的可行集合数目 2. 题目解析 看了看题好像还没啥思路&#xff0c;结果一看数据范围&#xff0c;好家伙…n 最大就 10 啊&#xff0c;那不直接闭眼直接 Floyd枚举所有情况即可吗&#xff1f;&…...

pyinstaller用法详解3

本文使用创作助手。 大家好&#xff0c;时隔多日&#xff0c;我又更新了pyinstaller的用法详解&#xff01; 当然&#xff0c;这一次要比之前更详细&#xff0c;十分详细。 谢谢大家的支持&#xff0c;我们现在开始&#xff01; 一、快速开始使用pyinstaller 我之前的文章…...

养猫新手不会挑智能猫砂盆?2024最新挑选干货分享!

不得不说智能猫砂盆真的帮了我很大的忙&#xff0c;四年以来我陆陆续续养了很多的猫咪&#xff0c;但是因为需要上班&#xff0c;所以有时候也对铲屎的工作有些力不从心&#xff0c;后面听了朋友的建议&#xff0c;去入手了智能猫砂盆&#xff0c;不得不说买智能猫砂盆也非常的…...

上海理工大学24计算机考研考情分析!初复试分值比55:45,复试逆袭人数不算多!

上海理工大学&#xff08;University of Shanghai for Science and Technology&#xff09;&#xff0c;位于上海市&#xff0c;是一所以工学为主&#xff0c;工学、理学、经济学、管理学、文学、法学、艺术学等多学科协调发展的应用研究型大学&#xff1b;是上海市属重点建设大…...

Pandas库学习之DataFrame.drop()函数

Pandas库学习之DataFrame.drop()函数 一、简介 DataFrame.drop 是 Pandas 库中一个非常实用的函数&#xff0c;用于删除 DataFrame 中的行或列。通过指定列名或行索引&#xff0c;可以灵活地从数据集中移除不需要的数据。这对于数据清洗和预处理非常有用。 二、语法和参数 D…...

WHAT - 介绍一个不太一样的 UI 组件库 shadcn/ui

目录 一、介绍主要特点核心组件示例代码社区和支持总结 二、copy/paste1. 高度可定制性2. 避免依赖锁定3. 学习和理解4. 简化调试5. 项目需求变化 官方文档&#xff1a;https://ui.shadcn.com/docs 一、介绍 ShadCN (ShadCN/UI) 是一个现代的 React 组件库&#xff0c;旨在提…...

python--实验 11 模块

目录 知识点 模块基础 模块使用方式 自定义模块示例 模块的有条件执行 Python包结构 定义和导入包 常用第三方库及安装 实例代码 第三方库自动安装脚本 Python标准库介绍 PyInstaller 小结 实验 1.(基础题)制作文本进度条。 2.(基础题) 蒙特卡罗方法计算圆周率…...

Vue3+Vite+TS+Axios整合详细教程

1. Vite 简介 Vite是新一代的前端构建工具&#xff0c;在尤雨溪开发Vue3.0的时候诞生。类似于Webpack Webpack-dev-server。其主要利用浏览器ESM特性导入组织代码&#xff0c;在服务器端按需编译返回&#xff0c;完全跳过了打包这个概念&#xff0c;服务器随起随用。生产中利用…...

【深度学习入门篇 ⑨】循环神经网络实战

【&#x1f34a;易编橙&#xff1a;一个帮助编程小伙伴少走弯路的终身成长社群&#x1f34a;】 大家好&#xff0c;我是小森( &#xfe61;ˆoˆ&#xfe61; ) &#xff01; 易编橙终身成长社群创始团队嘉宾&#xff0c;橙似锦计划领衔成员、阿里云专家博主、腾讯云内容共创官…...

宝塔安装RabbitMq教程

需要放开15672端口&#xff0c;默认账号密码为guest/guest...

韦东山嵌入式linux系列-驱动进化之路:设备树的引入及简明教程

1 设备树的引入与作用 以 LED 驱动为例&#xff0c;如果你要更换LED所用的GPIO引脚&#xff0c;需要修改驱动程序源码、重新编译驱动、重新加载驱动。 在内核中&#xff0c;使用同一个芯片的板子&#xff0c;它们所用的外设资源不一样&#xff0c;比如A板用 GPIO A&#xff0c…...

长轮询(Long Polling)实现原理和java代码示例

长轮询&#xff08;Long Polling&#xff09;背景 长轮询是一种在Web开发中常用的技术&#xff0c;用于实现服务器与客户端之间的即时通信或近乎实时的数据交换。在传统的轮询&#xff08;Polling&#xff09;中&#xff0c;客户端会定期向服务器发送请求以检查是否有新数据。…...

OWASP 移动应用 2024 十大安全风险

1. OWASP 移动应用 2024 十大安全风险 开放全球应用程序安全项目 &#xff08;OWASP&#xff09; 是一个非营利性基金会&#xff0c;致力于提高软件的安全性。自 2014、2016 年两次发布了移动应用的十大风险后&#xff0c;今年再次发布2024版。这对移动应用软件的检查工具有着…...

Qt界面假死原因

创建一个播放器类&#xff0c;继承QLabel&#xff0c;在播放器类中起一个线程用ffmpeg取流解码&#xff0c;将解码后的图像保存到队列&#xff0c;在gui线程中调用update()刷新显示。 当ffmpeg打开视频流失败后调用update()将qlabel刷新为黑色&#xff0c;有一定概率会使得qla…...

python调用MATLAB出错matlab.engine.MatlabExecutionError无法调用MATLAB函数报错

python调用MATLAB出错matlab.engine.MatlabExecutionError无法调用MATLAB函数报错 说明(废话)解决方案MATLAB异常乱码python矩阵转MATLAB矩阵matlab.engine.MatlabExecutionError 说明(废话) python调用MATLAB&#xff0c;调用m文件中的函数&#xff0c;刚开始都没有问题&…...

[GXYCTF2019]Ping Ping Ping1

打开靶机 结合题目名称&#xff0c;考虑是命令注入&#xff0c;试试ls 结果应该就在flag.php。尝试构造命令注入载荷。 cat flag.php 可以看到过滤了空格,用 $IFS$1替换空格 还过滤了flag&#xff0c;我们用字符拼接的方式看能否绕过,ag;cat$IFS$1fla$a.php。注意这里用分号间隔…...

成为git砖家(1): author 和 committer 的区别

大家好&#xff0c;我是白鱼。一直对 git author 和 committer 不太了解&#xff0c; 今天通过 cherry-pick 的例子搞清楚了区别。 原理 例如我克隆了著名开源项目 spdlog 的源码&#xff0c; 根据某个历史 commit A 创建了分支&#xff0c; 然后 cherry-pick 了这个 commit …...

Lianwei 安全周报|2024.07.15

新的一周又开始了&#xff0c;以下是本周「Lianwei周报」&#xff0c;我们总结推荐了本周的政策/标准/指南最新动态、热点资讯和安全事件&#xff0c;保证大家不错过本周的每一个重点&#xff01; 政策/标准/指南最新动态 01 《人工智能全球治理上海宣言》发布 我们强调共同促…...

Linux - 基础开发工具(yum、vim、gcc、g++、make/Makefile、git、gdb)

目录 Linux软件包管理器 - yum Linux下安装软件的方式 认识yum 查找软件包 安装软件 如何实现本地机器和云服务器之间的文件互传 卸载软件 Linux编辑器 - vim vim的基本概念 vim下各模式的切换 vim命令模式各命令汇总 vim底行模式各命令汇总 vim的简单配置 Linux编译器 - gc…...

Git使用介绍教程

Git使用介绍教程 小白第一次写博客,内容写的可能不是很详细,仅供参考,大家一起努力 gitee网址:https://gitee.com 大部分的开发团队都以 Git 作为自己的版本控制工具,需要对 Git 的使用非常的熟悉。这篇文章中本人整理了自己在开发过程中经常使用到的 Git 命令,方便在偶…...

专门网站建设/优化建站

谈谈你对线程安全的理解谈谈你对线程安全的理解&#xff1f;典型回答知识扩展并发与并行什么是并发并发与并行之间的关系进程和线程线程的特点轻型实体独立调度和分派的基本单位。可并发执行共享进程资源共享变量谈谈你对线程安全的理解&#xff1f; 典型回答 线程安全是指某…...

注册了一个域名怎么做网站/站长网站优化公司

1. 什么是浮点数 在计算机系统的发展过程中&#xff0c;曾经提出过多种方法表达实数。典型的比如相对于浮点数的定点数&#xff08;Fixed Point Number&#xff09;。在这种表达方式中&#xff0c;小数点固定的位于实数所有数字中间的某个位置。货币的表达就可以使用这种方式&a…...

知乎 闲鱼网站建设和网站运营/培训学校管理系统

说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 接着上一篇博客继续往下写 :Django项目之Web端电商网站的实战开发(一)_cdtaogangs blog-CSDN博客_django电商项目源码 非VIP用户请点击这里进行查阅 目录 一丶用户注册 二丶用户登录...

wordpress搭建后域名打不开/百度教育

//分支语句可以嵌套 //循环语句&#xff0c;同样可以嵌套 例一&#xff1a; //打印三角形:左下角是直角 Console.Write("请输入一个正整数&#xff1a;"); int a int.Parse(Console.ReadLine()); for (int i …...

q王商城 网站是怎么做的/网络营销策划模板

一&#xff1a;共享账号检查 配置名称&#xff1a;用户账号分配检查&#xff0c;避免共享账号存在 配置要求&#xff1a;1、系统需按照实际用户分配账号&#xff1b; 2、避免不同用户间共享账号&#xff0c;避免用户账号和服务器间通信使用的账号共享。 操作指南&…...

wordpress 手机 登陆不了/seo引擎搜索网站

多线程里为啥要用异步编程&#xff1f;因为异步到其他线程里&#xff0c;不阻塞主线程&#xff0c;让主线程处理更多的事情。 //开启一个定时任务线程&#xff0c;挂载消费者任务。 //定时任务不就是time定时器&#xff0c;对没错。这个的区别是time运行在主线程中&#xff0c…...