某建筑网页js逆向分析过程(有坑)

某建筑网页:

网站:
import base64
# 解码
website = base64.b64decode('aHR0cHM6Ly9qenNjLm1vaHVyZC5nb3YuY24vZGF0YS9jb21wYW55'.encode('utf-8'))
print(website)
JSON.parse()

​ 当你有一个包含JSON字符串的变量时,你可以使用JSON.parse()将其转换为JavaScript对象。

var jsonString = '{"name":"John","age":30,"city":"New York"}';
var jsonObject = JSON.parse(jsonString);
console.log(jsonObject.name); // 输出:John
console.log(jsonObject.age);  // 输出:30
console.log(jsonObject.city); // 输出:New York

思路:

在这里插入图片描述

表单中都是正常数据,没有特殊的数据。

相应是密文:

在这里插入图片描述

JSON.parse 进行初步尝试搜素

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

d.a 就是CryptoJS的一个对象,使用标准库替换即可

在这里插入图片描述

但是会报错。

在这里插入图片描述

我们可以思考一下哪里错了,第一密文数据肯定没有错,有错的话就是iv值,密钥有一些问题。

在这里插入图片描述

我们的密钥与网页的不一样啊!

没办法,在加个断点呗。

在这里插入图片描述

注意上面我打断点的位置,在这个解密函数这行打上断点,这行之前应该iv和密钥已经被确定了。

在这里插入图片描述

对比一下,发现密钥f的值有变换,说明f被覆盖了。我需要使用覆盖后的。

然后我添加一个监听器

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

会发现,f在解密之前已经生成好了,而且优先级很高,没有被后面那个f覆盖。

将其转化为字符串全局搜索看看吧。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

关于iv和key变不变的问题,就看他每一次有没有发送性的请求,没有的话就是固定的

js代码:
const CryptoJS = require("crypto-js");
f =CryptoJS .enc.Utf8.parse("Dt8j9wGw%6HbxfFn")
m = CryptoJS .enc.Utf8.parse("0123456789ABCDEF");
function b(t) {
var e = CryptoJS .enc.Hex.parse(t)
, n = CryptoJS .enc.Base64.stringify(e)
, a = CryptoJS .AES.decrypt(n, f, {
            iv: m,
            mode: CryptoJS .mode.CBC,
            padding: CryptoJS .pad.Pkcs7
})
, r = a.toString(CryptoJS .enc.Utf8);
return    r.toString()
}

data='5588a9e126c91a28cc2f6813e3793369c25469a35a79a5541917e64a1f6f6af3bbd0cce6b277e85b6d8453c0ed389efe7b9c284465ff6d20106dc8b2e826243fd32ccbf213498c5f47a2baac4ef91406f0cd2195daef19ec25e8e08aa85daadc8fbf2dfb965fdcb9e104cf25f28dcf1f4bb682492b8f8af4e0ff8c85ef391d4e481febb162d46cbdefe7e10a5ac0126b9a80a5ba665aa8b3f63df6c16ee9312092eeb8cfff00a53b86844e8a5a84d1ebaa327c90440859f91d92be3d0fc09bbfe0e82ee3e3e3d5de399068bb1bec3afd73d243dc50836872acace651768f837ad3542c5572021ee30d7362a36e9e1f59b61d2f5fd6a2f18f96f26310cbbd3c085f173578d7c11223b78f9bca5d7438992931b0f593a38bb8a893ed93e1d121f9ebbdd256c75d374e5158cd99b3dcc004174014c875b83f7c28182df2a69e48e78d460695eba2283419022725fe75bed7a3f35855ace37f308d4c9b59782351b86fcb44ee3b6a0f6ab87a138264a22a7a2bfc4680e748a9e74850ff7d4c8551f68451a085dc515968de3f4a3b73e4ac758d17aa2d936fef16ac607c6c992aab99eadf35884094eca819412348d818af099f1c002c63f7caa7ef1948fe932101d9ed271695b712cc283eb392308df8c681e1197a6b75ef3b699030bd86a6e77e1c9322caeffb0a1ed259fddd3783a63c83a45ba32568751956cb37fcb968d21232024f125608391462fba018b5849bfe4e140dbfd329b2a0fc1d33e980231e08c74d47e09401e3ca65b5eede5deb5702be0ab209da312f3a70187a8b4508ba48fb207640b13cb6cff87b7224cdb9e8689a3e48661eaec3bca58acc0eb171d2447af44db23ec24dbca41bbca69379df1d925bb75dc79d05e6f0338b5db66a3f791874bcc6bccb4ae11b75bd54cd9cb8a3fd66cf9101ef35dfdc1da42d2d4bd74d20201fa6bff590f6ee934cf41cd8b3a36df72529f3ea4af2dfc01b9f19d913f9ac449ef7f5e60c3dff7ed2329cf89f6e4a74c4e28d8eba0eeef4272398af4f97bccd3912e16ed28cd14dda3c4a5647a9bdfb06868db5085f027a37f9c35f2f3fec1f425161dae6e48a21d6c63999f53864580c8aef4b77f49867a3f6825eadd74613fe773a6c960ded5c3b2179a3fbc8c3d8f9b0d12275c0badff698759e9ddd6022b8d0b97d810a43047c3c26739d82292b687055e1119fac72f8f778ce5d03bdcbb145dd327f4d05075b98d05b40a1589542dbe798ec5ee17067a8b937a69583755a1f46051ec45a08a4aa7b9151511b32174a642122f7ee3262d27a8a04f68f9a239152150dbe8f7e181145cd661feec3968e6cf9835d6961894a6ea992a22093cf41c689ee6381dcd0effad596f7d877ac5e18ef72710782fa6d9813cdc6bb8cc189a7b8c468f9a45f7ffbb99812ec6a91e6c39c4b108ae33b3e9c01e036ec6319d5d483365c62e052b9b76a0598ecf36c292973c403e39aab196dafdfc64b0b2d1df2c1f9ab6371e4fa9d6985ead5426fc12e911e913177c21023a699e650ef888d8d4681dc861cf88d8ce59cec43d5a97637e6a42816beaaaea464b329ff026a3222862473ab50fe4cf9db7e46dab1e893e3f998edf7eefddca5008ec990551825b814f6c175a223d768536b83c2ef89168726fecbc4f8b8bfa8a85b4b417dec607e2888d0e47efac97671c00dfaf4d65b09043a6de0c69619e6afdeaec622c46e41151a6510154d56cd064b3accec2fcae3e9898cc045b93e59b2fa8be1018a9df2d5053d9b4784efd416d1b71c0c1b5751509203d35175c07b42d189bfc349c75e809e5f04f6ac5884cedeacebfe5853c68cf613171ff19650f2b29fe47c3c208c0dabbdcb0f4ec2162fc74f86e7079e88835fad1b5baa1fd234d6276214385e81fd2abbfe20e42f0f5a460afe064c845c1967ae61785a869ab1bf89d3f21ac8ef0fff498ddacbd2d6107a3d06b2dc478687e3945f5de8641be0977f400be10a3dec885f0c46d841eec7c54aa50d9ad560250d82fefd59e3db148786ec40c214d0060306e40e87d3df3ba73efcc17fe00a7da6828c8e922c4ab96a70730247101cc9bc6f43f8d3582efaeaac022b5c7eac748e54e6c1a6471ec5d65ef0de5ec01061c785f44dddb98a3a61298b769153d496e58204752a8719ad1b14d05580e9a3f8b597a02a37135107c74e8cd2ee5b19dde3f1bf4a64f1522bee5cc3e384671d5b4b24a3e4a7302c8afa21217383c3b2bc84b8518914cfd1b88687753c5c59b47c36f34f2f30c23d4498387e817092f61a5e6497a7bff95d2ee5910d8ef0e760c08a8a0c53170b23f0360b99740e829a3347f7b4a26612a7ba847f369cd6d1190816d3cdc2c707976e9092bee0cbdf5b2133403daafd22a35e4724277c0c61540640da0e5ee9519cb7cb30972602cdcc91f0e1e949edb0f775479afb6497ec186222e55a46f70c7c58c4471b6ecba87cb8a06a0c24acc5fd0c57b72559a8b23e4dde253141932af8642b61baa1736803bbd0a872ddd7d0944ee24b592f195a00e8d568c4ca14241ea0ae6fb407c7c49e2f3900f4d82f125c98dd8a7526991a965edb6fa1d0c9c6116cbaba862a80cfb6515c9d2eb364f00af18d6343c0837a66ff4ec7e2fa96b0fa05fdb60e855d9e34a28a388efea19e1549ecbe90a49780dcdc0448c2068cdddda5112a09e45d026431c0836e75686bd177905f006255a5cff6d013890097e27f4f70f9956a49979fa4405effbda7275fe2a7de3203e0cbdcce6c5b18a76b050b3d05a1b8a28a6425cea1262a9e70d3d7a39940047fe7601a3d9a787bbc8328d18bfebb1a46d79187e062516300b20e71debc3ed24e3d2b52b0038cb3f22f9fc46d7fc8b07720290032f8ad0bb357efc315c2991590358c55bfc3a5b317a5e48a842e54e04a4ebfa180bc0ddd7d6f9ef39c258410ed51208da2c1166893cdfaeed18ea606dbdd8954a490372e325f911dab61caa4a3219ae8015b21d1d0bcbcc5cd40d760b175564d05ce9d6a370fdbd33e9d7c20c81788ca281b15af65043a09a5ce7e08ffaae0e253921b44a9caa1b0bad6706094ef306fd6315af32f61589800f908db0dcb274113ec2631bdd59f02fb07e29c7f4e0398b46c7adddaadd7fd0aa242967e7e2030a3924b740ae37c72a021ed48012479b4a46b7bf0ac19eef25684bc4a89f34c972788fc015c125ed9baf8e6ec02ab9db7447acc4021ee0660a57872740aae743c478a3d232783335cf9732a792e21cc44960ce31fbea327e77e18f1fb6066a1a713e52e1853530237b87c28ff5e42ca59af02dbff0880f90c2edbeb7daf48e00edad55881978228b1d9fd00a60d7483aa52f9b6eed1b32ab64451ad075cddf3a72ee00efafd23bb4c66c66a899b5e361a66d6270ccfe9917abeb147d01a4008fde052f7d489a464b77f01cb8cd7a26ebc42b6a2bd3d2d443d08eebc538867eb8fedbe4e7d2c6e84b91160f336546eaf579e25b678e59ef4fe95f9c6a3f38ba3ab2a3557b1544155c091b4f97d8bca14989dddb5611d877d74a34b2fea5e5bfea18e30c93be3f2c955a96dfa998de8b7d43739d27aac07f74f59c40235547ae0c431cf48540ca4117c04f4a01e5e2229f5093549347f50bc4f39ad8cc25edd1c5f7f1ebaeb3661eca63dd9a962f6ce0393431ba1415ac9b5efbf3c9fb1ecce2fdb2264571ac1528a560c7da5e8292bcf2748fcfe92deb7663a0b99154017f46c20e64e3a3626e79976d3486107b2dc34b800bfcf42d66b189b090010c208ae1791385d386f1d625f854086c8d5cb4b498e6a13f6c1054b879e0410cd57f25a79fc990238b309c0c0bc25ace708e13cc8ffb1f5d25fafe96748ddc62bde59f898ef88eb27b230e939d66781f173610c8164bbed9590028d33f1987534bae6f574319f7278a571c71e7f92fb54a8269d32dbd5d2dd13249e7fda952e2d1598292279a172393292dc6476703358b6c420ef0a686c5f8ac4cc808e23c0799b37df48345caf481951e0aa92030b96e6d268fd972f1663e326e717aaa7c7a8069ae2ab8500b43c724d05c6030d015875283aadc10917d71efbcf50188539b3bcb46e42b44498092fb68aa540c9f64bff44f548a845b97cd30de4aa75569c9f896f4fb9557a4543fc9b7b6be267cd315bd089de24b69910b7a9cc732083ff8e1894ac05a8fb00ae34788e2192f3b26593b72abf8170d6cd6f32d018f03b0b9f44ed12cdbea463cfb4537fd01838de176de03ac4a04433e4386c13558e7bb3123eeb44663d178d7ff2c184cf80a910658ff0a40960ea01dba1eafed41a6d03fd6f654bf5919e3dfb06166dedd7a9ddf16f8e61c34a071c10572f15a2b83dd477f3f306e956cbf65d7deb56457d4d4d63438c1034aabac210b14f2bbe461f4e3c2a19a1167ec0741f5aa876d046514cb056c5f9b2aa159c99d104b2b6cd149b5d8eb7297ec95a4d3376d4d85a1c0ac0a3948cd1debeaff4a90e4c1d58c2d2c274751b70284237f906b4ce15831ad77f71e4d659521103ee8d024a23b61c54e6f287f59fad4d32da2284f55a466e2fb0fb1459c4d0e2e37e00acaefc348b6e7a085272e29c0db6dd7c156d64786046e75353f0c635fa4faa8ab1567d4c82730b93c61353b951a03607163aab45a382608b196b5d382bf58a89ea416e39ce144f0ed2df09d93b66460bdb9eb9629a76875a83f9cd1dcc5084acb0f8ebaf10ed6ca01c789833ffeae9318d5abb75309770f3daecc4b20bcf9c2e33c8f0048e8acb1216554ab59b4cbcb68162d8e8762f72d9781b8e9a1664bf21f12beef2de08c48b3bbb7ed0489e324192fe8d52b3b2d858a97a523f23ba48b20dc19924bd8b8fd93ce0ae11a2ee4e84fe9298433ef63fad0fb9a8ba3df67881a236b2253d9d66ad28eb5f2164e0c0f71f6eed6e2d9aa0ca75f33bb0bc9309f879e42913e64d4c46e57bb7295360f7d2dead2eeff7fd14d8744bd7c8ffe724d61f574cd66688956dd4177a0dd47a572efc407edfe95a61de86752c1d9eaee569dde7874d625a623a54519573285eb3608918dc5709fbd933fcd6bba0942c5740d75cfea210cb92eae1161fe38b8ad9808045f0625cf09e54c929ea3ae82902c28fe8b4b12ce3790e58ae6f225b56770083068b584b326751c147d0711459a6ca471a3ed9b2a112b7181fb88a5fc4c56bb81081143fa14d41f375f3b819ed38989f388fc922af6e470c9dcf610e64b80745ed070b41c645629216d81548dce4d3768b80262014da531bc4c4526534c90bcd3dc976164a0aefb4eab38e358933c290e6c40944b133968e3c854003d2e35555be09ba0073fa9a0cd622350d28bf14df99b62eac55c1002221e533dd614ee4a48585b4cd518cc31386b5356881d110cb83739c6472a46569b0c6587b2c5f05b39bd4ce1fa5d53ec8eb1c1312454ed958c0f78b047482e7d8b4beffa44309a404049954e1a6a2624adc1429f3e80a9175aecb3bc2c3ff929ade1389a4a8beffcfd41f8eb44ce7edf97347f8a148f6570e438177302aab05bd5f9cc239e02bae168ffd17fe81b91de15728f018c48aec71e4d6ba667b3e1b5b89b58e5a2efa85007eebd043184e333efa9f8bed7388d9276b2cc7f4912cc50561a63d044846c4f6a5b61be91dda2558e2fe7223b349f51959cf948f7444546d9b3ec396b65df693747aff5b46c6ef9061b1af43a053f68a770bfb5bdf058ecee58686442ea6a98aa812f64bcf5a482a68c745b1f1bf5188d2816a2f72d38aa68ec60aaa7b50f5a067010ca9dc8a6197f9fb418cfdc39d1db62041a5b7fad562b73278afbffe7556eb3e8dd17f9e09f2d8f6d33cc134e2f1a5e2c4599e078364ad3a4b08a981f38606c2f098300157ac52d03108900fbe1fe53bd9dc466e449b0a62c26deb8a0f4e385f2179ea52919465c918fd1648058850b8ea52ff6d4b1c4abe8894e33947c843ffd9b167c84486c9b2be8c6c23a158f6c4e53788d0f4f696b1ab12fe076aa2612d56bf431d894ac61f75f26f6784f091ec6a4e869ca9e19d100dccb075ea0acfc8f965c06f1dc3cf53e1474a1acad83be12494380faf2d72273f81bc397bcc5444f10140e6db751c898dd9700de7216f97ba11c3ff1aba0a11ef14746ae9a0ade672fb9af2c2279874269e37442a678c71a08833e7e49f753a9f79ae1d474db1c921b1517cae63e5ff8d494f3d8f23cb556127a6dc64e2410a42d0b6fb10c1b0a5ebf8225c20f967fe4fc8ddebcc192ba1ca6fbbcf5e7e7510be695adf64c4771fe9f5254fc376c9b334805c3d5176121974448ba5d2a4a4fe9eb588518106fc4c24658e246cc7a134a9226461c0b616a617c46473a74ff6987332a4237a7168883f54c8de449220e3c72b3b11f6cec98633c5a911ac02'

console.log(b(data))

function AesDecrypt(Key,Iv,text) {
    var key = CryptoJS.enc.Utf8.parse(Key),
        iv = CryptoJS.enc.Utf8.parse(Iv),
        srcs = text,
        // CBC 加密方式,Pkcs7 填充方式
        decrypted = CryptoJS.AES.decrypt(srcs, key, {
            iv: iv,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        });
    return decrypted.toString(CryptoJS.enc.Utf8);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/149414.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

photoshop插件开发入门

photoshop 学习资料和sdk 下载地址https://developer.adobe.com/console/servicesandapis/ps 脚本编程文档 官方文档: https://extendscript.docsforadobe.dev/ 官方文档: https://helpx.adobe.com/hk_en/photoshop/using/scripting.html open(new F…

蓝桥杯 string

string简介 string是C标准库的重要组成部分&#xff0c;主要用于字符串处理。 使用string库需要在头文件中包括该库 #include< string> string与char[]不同&#xff0c;string实现了高度的封装&#xff0c;可以很方便地完 成各种字符串的操作&#xff0c;比如拼接、截取…

面试题-2

1.重绘和重排有什么区别 重排(回流):布局引擎会根据所有的样式计算出盒模型在页面上的位置和大小 重绘:计算好盒模型的位置,大小和其他一些属性之后,浏览器就会根据每个盒模型的特性进行绘制 浏览器的渲染机制: 对DOM的大小,位置进行修改后,浏览器需要重新计算元素的这些几何…

儿童水杯上架亚马逊美国站CPC认证办理 ,常见儿童产品CPC认证测试要求

美国CPSC从2021/03/22开始改革&#xff0c;凡是他们管辖范围内的产品&#xff0c;都会被标记审查&#xff0c;如有相关产品请提前准备好相关文件比如CPC检测报告、认证等等&#xff0c;以备目的港海关审查。 CPC认证介绍 CPC证书即儿童产品证书&#xff0c;适用于12岁以下的儿…

2023/11/15JAVA学习

如何多开一个程序

java成员等讲解

一个源文件只有一个public类 如何调用是这个 类里面有全局用类名调用(或者对象),非全局要新一个对象来调用 class Quanjv{public static int x1;public static int y2;public int y24;} public class chengyuan {public static void main(String[] args) {Quanjv quanjvn…

MySQL(17):触发器

概述 MySQL从 5.0.2 版本开始支持触发器。MySQL的触发器和存储过程一样&#xff0c;都是嵌入到MySQL服务器的一段程序。 触发器是由 事件来触发 某个操作&#xff0c;这些事件包括 INSERT 、 UPDATE 、 DELETE 事件。 所谓事件就是指用户的动作或者触发某项行为。 如果定义了触…

继承、多态

复习 需求&#xff1a; 编写一个抽象类&#xff1a;职员Employee,其中定义showSalary(int s)抽象方法&#xff1b;编写Employee的子类&#xff0c;分别是销售员Sales和经理Manager,分别在子类中实现对父类抽象方法的重写&#xff0c;并编写测试类Test查看输出结果 package cn.…

清华镜像源地址,适用于pip下载速度过慢从而导致下载失败的问题

清华地址 https://pypi.tuna.tsinghua.edu.cn/simple下载各种各样的包的指令模板 pip install XXX -i https://pypi.tuna.tsinghua.edu.cn/simple这样就行了&#xff0c;XXX代表的是你将要下载的包名称。 比如&#xff1a; pip install opencv-python -i https://pypi.tuna.…

后端接口错误总结

今天后端错误总结&#xff1a; 1.ConditionalOnExpression(“${spring.kafka.exclusive-group.enable:false}”) 这个标签负责加载Bean&#xff0c;因此这个位置必须打开&#xff0c;如果这个标签不打开就会报错 问题解决&#xff1a;这里的配置在application.yml文件中 kaf…

【VSCode】配置C/C++开发环境教程(Windows系统)

下载和配置MinGW编译器 首先&#xff0c;我们需要下载并配置MinGW编译器。 下载MinGW编译器&#xff0c;并将其放置在一个不含空格和中文字符的目录下。 配置环境变量PATH 打开控制面板。可以通过在Windows搜索栏中输入"控制面板"来找到它。 在控制面板中&#xf…

Stable Diffusion (version x.x) 文生图模型实践指南

前言&#xff1a;本篇博客记录使用Stable Diffusion模型进行推断时借鉴的相关资料和操作流程。 相关博客&#xff1a; 超详细&#xff01;DALL E 文生图模型实践指南 DALLE 2 文生图模型实践指南 目录 1. 环境搭建和预训练模型准备环境搭建预训练模型下载 2. 代码 1. 环境搭建…

【Rust】快速教程——从hola,mundo到所有权

前言 学习rust的前提如下&#xff1a; &#xff08;1&#xff09;先把Rust环境装好 &#xff08;2&#xff09;把VScode中关于Rust的插件装好 \;\\\;\\\; 目录 前言先写一个程序看看Rust的基础mut可变变量let重定义覆盖变量基本数据类型复合类型&#xff08;&#xff09;和 [ …

[Linux] 网络文件共享服务

一、存储类型 存储类型可分为三类&#xff1a;DAS&#xff08;直连式存储&#xff09;,NAS&#xff08;网络附加存储&#xff09;,SAN&#xff08;存储区域网络&#xff09;。 1.1 DAS 定义&#xff1a; DAS是指直连存储&#xff0c;即直连存储&#xff0c;可以理解为本地文…

【软考篇】中级软件设计师 第三部分(二)

中级软件设计师 第三部分&#xff08;二&#xff09; 二十四. 概念设计阶段24.1 E-R模式24.2 E-R图 二十五. 网络和多媒体25.1 计算机网络分类25.2 OSI/RM参考模型25.3 网络互联硬件25.4 TCP/IP分层模型 二十六. IP地址26.1 子网划分26.2 特殊IP26.3 IPv626.4 冲突与和广播域26…

电池故障估计:Realistic fault detection of li-ion battery via dynamical deep learning

昇科能源、清华大学欧阳明高院士团队等的最新研究成果《动态深度学习实现锂离子电池异常检测》&#xff0c;用已经处理的整车充电段数据&#xff0c;分析车辆当前或近期是否存在故障。 思想步骤&#xff1a; 用正常电池的充电片段数据构造训练集&#xff0c;用如下的方式构造…

2023亚太杯数学建模思路 - 复盘:光照强度计算的优化模型

文章目录 0 赛题思路1 问题要求2 假设约定3 符号约定4 建立模型5 模型求解6 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 问题要求 现在已知一个教室长为15米&#xff0c;宽为12米&…

文件包含学习笔记总结

文件包含概述 ​ 程序开发人员通常会把可重复使用函数或语句写到单个文件中&#xff0c;形成“封装”。在使用某个功能的时候&#xff0c;直接调用此文件&#xff0c;无需再次编写&#xff0c;提高代码重用性&#xff0c;减少代码量。这种调用文件的过程通常称为包含。 ​ 程…

修改ubuntu终端目录背景颜色

Ubuntu终端上有部分目录是黄绿色底色&#xff0c;看着很不舒服。如下图所示&#xff1a; 这是由于修改用户权限导致的问题。 通过下面指令可以看到 echo $LS_COLORS | grep "ow" ​ 可以看到ow的默认参数是34:42ow:OTHER_WRITABLE&#xff0c;即其他用户可写权限 …

【C++11】线程库

文章目录 thread 线程库mutex 锁atomic 原子性操作condition_variable 条件变量实现两个线程交替打印1-100 thread 线程库 在C11之前&#xff0c;涉及到多线程问题&#xff0c;都是和平台相关的&#xff0c;比如Windows和Linux下各有自己的接口&#xff0c;这使得代码的可移植…
最新文章