1.编译实战 | 手摸手教你在Windows环境下运行Redis6.x
2.NVIDIA Modulus 23.03安装和使用方法
3.Nuplan源码中Pytorch Lightning详解
4.如何入门黑客工具箱Kali?码安 - 知乎
5.Ubuntu18.04下安装mpich2(HYDRA3.3a2)
编译实战 | 手摸手教你在Windows环境下运行Redis6.x
哈喽大家好啊,我是码安没事就愿意瞎捣鼓的Hydra。
不知道有没有小伙伴像我一样,码安平常开发中用的码安是windows操作系统,有时候想装点什么软件,码安一看只支持linux系统,码安beginthreadex源码无奈要么启动虚拟机、码安要么装在云服务器上。码安
这不前几天又是码安这样,刚想用一下Redis 码安6.x版本来尝试一下新特性,打开官网一看,码安好家伙我直呼内行,码安果然不支持windows系统:
不过虽然redis的码安官网上不提供windows版本下载,但是码安这也难不倒我这个面向百度编程的小能手,一番查找后让我找到了微软在github上维护的码安几个可以在windows上运行的redis版本:
项目的git地址是/MicrosoftArchive/redis/releases,我翻了一下,微软维护了2.x和3.x的多个windows版本redis,不过比较遗憾,在维护到3.0.正式版本后就放弃了更新。
不过问题不大,眼看微软撂挑子不干了,波兰的热心市民 Tomasz Poradowski 先生这时候站出来,继续开始提供可以在windows上运行的4.x和5.x版本的redis,并且从年到年一干就是5年。
项目git地址是/tporadowski/redis/releases,没错,其实我本地环境运行的redis-5.0.9就是以前从这里下载的,而且绿色版使用起来真的是干净又卫生,所以我强烈建议大家给这位老哥来一个Star支持一下。
不过绕了这么一大圈,我的问题还是没有解决啊,既然没有现成的黑页php源码可以在windows上运行的redis6.x版本,那我们干脆就来自己编译一个吧。
首先介绍一下我们今天要用到的工具Cygwin,先简单看一下它的官网 /,上面很清晰的解释了几个容易引起大家混淆的问题:
先解释了cygwin是什么:
再纠正了大家的常见误区:
其实可以用一句话来概括一下它的功能,cygwin是一个可运行于原生windows系统上的POSIX兼容环境,可以通过重新编译将linux应用移植到windows中。
好了,这样简单了解一下cygwin的功能对我们来说暂时就足够了,下面我们看看如何使用它来编译windows版本redis。
下面我们先进行编译工具Cygwin的下载和安装,在它的官网上就可以直接下载,完成后就可以开始安装了。下面我会贴出一些需要特殊配置的步骤,如果没有特殊说明的话,那么直接痛快的点击下一步就可以了。
网络连接配置这里选择第二项,也就是直接连接,不需要任何代理方式:
在选择下载源这一步,先手动输入User URL,添加阿里云的镜像/cygwin,点击add后再选择我们刚才添加的这个源,然后点击下一步:
接下来选择需要下载安装的组件包,我们只需要下载我们编译相关的模块即可。先通过上面的搜索框进行定位,选择安装Devel模块下面的make、gcc-core,gcc-g++,以及Libs模块下的libgcc1 、libgccpp1,然后点击New这一列的Skip,选择要安装的健康检查源码版本号,全部添加完成后点击下一步:
接下来会自动进行下载上面选择的模块,等待全部下载结束后安装就完成了:
安装完成后,我们运行Cygwin Terminal,通过命令检测可以看到Status为OK,表示cygwin运行正常:
准备好编译工具后,我们接下来先下载redis6.x版本的源码,6.0.的下载地址为:
download.redis.io/relea...
cygwin安装完成后,会在它的安装路径的home目录下,创建一个以你登录系统的用户名来命名的目录,我们把下载完成后的压缩包放到这个cygwin\home\${ user}目录下,在cygwin命令行中先执行解压命令:
使用下面的命令先切换到解压后的根目录,然后执行编译和安装:
点击回车,然后就开始漫长的等待吧,不得不说编译和安装的过程真的很慢,我这大概花了分钟才全部完成。
不出意外的最后果然出现了意外,报了两个Error,不过貌似没有什么太大影响,切换到src目录下,就已经可以看到编译完成后已经生成了6个exe可执行文件了:
但是如果这个时候双击redis-server.exe尝试进行启动的话,那么就会报错提示缺少dll动态链接库:
我们可以在cygwin的bin目录下找到这个文件,为了方便,把可执行文件、动态链接库文件、redis配置文件拷贝到一个单独的目录下再次尝试启动:
这次能够正常启动成功,我们再使用客户端连接工具连接并进行测试,终于,6.0.版本的redis可以在windows环境下正常运行了。
忙活一大顿总算成功了,我们也终于可以在windows上体验redis6.x版本了,不过这里还是json.load源码给小伙伴们提个醒,这样编译的redis我们平常自己在学习中体验一下就可以了,尽量不要用在生产上。
因为cygwin编译后的程序,相当于在windows系统上模拟实现了POSIX兼容层,应用程序在底层多了一层函数调用,因此效率比运行在linux系统的原生应用低了很多。因此,这样在windows上运行的redis,无疑会损失掉它引以为傲的高性能这一优势。
秉持着好东西就要分享的原则,我也已经把编译好的windows版redis6.0.上传到了网盘,有需要的小伙伴们可以从下面获取下载方式。
那么,这次的分享就到这里,我是Hydra,下期见。
作者简介,码农参上,一个热爱分享的公众号,有趣、深入、直接,与你聊聊技术。个人微信DrHydra9,欢迎添加好友,进一步交流。
NVIDIA Modulus .安装和使用方法
如果你对NVIDIA的Modulus .版本感兴趣,以下是你需要了解的安装和使用指南。从年开始,Modulus将进行重大更新,建议直接从.版本开始,密友购app源码因为它将成为新开发的基础,旧版本将不再维护,所有功能将迁移至此。 Modulus .开源,可在GitHub获取。新版本主要由两个部分组成:Modulus包和modulus-sym包。sym包整合了大量API接口,以下是部分核心模块的导入示例: from modulus.sym.hydra import to_absolute_pathfrom modulus.sym.solver import Solver
from modulus.sym.domain import Domain
...
from modulus.sym.utils.io.plotter import ValidatorPlotter
安装步骤如下:首先,从GitHub下载modulus源代码,确保选择正确的版本,然后构建镜像:
#docker build -t modulus:ci --target ci -f Dockerfile .启动镜像,在其中安装modulus-sym:
#pip install .可能需要额外安装一些依赖,如:
sudo apt-get install libx-6sudo apt install libgl1-mesa-glx
sudo apt-get install libxrender1
完成以上步骤后,你就可以开始编写并运行Modulus .的代码了。对于进一步的技术交流和疑难解答,我们建议加入以下QQ群: 群名称:英伟达Modulus仿真技术交流(PINN)群号:
这里是一个活跃的社区,可以与同行分享经验和解决问题。祝你在使用Modulus .的过程中顺利!Nuplan源码中Pytorch Lightning详解
Nuplan源码解读系列中,我们已对Hydra进行了详尽解析。Pytorch Lightning,针对大型工程设计,模块独立,提供模板,简化开发。其应用主要分为四部分:数据加载、模型构建、模型使用、回调函数。在Nuplan中,数据加载与模型训练通过run_training.py执行,模型评估与可视化则在run_simulation.py和run_nuborad.py中进行。Pytorch Lightning提供了简洁实例教程,帮助快速上手。
数据加载方面,Nuplan数据集通过自定义Dataset继承torch.utils.data.Dataset进行加载。数据预处理在compute_features函数中执行,提取map和agent的特征与目标信息。Trainer.fit()启动训练,每个batchsize自动调用getitem函数,执行数据提取。
在数据管理上,LightningDataModule用于数据集划分,Nuplan使用setup、teardown、train_dataloader、val_dataloader、test_dataloader等函数。setup函数调用create_dataset划分数据集,随机选取样本作为训练集。
模型准备阶段,通过LightningModule加载模型,关键方法包括training_step、validation_step、test_step与configure_optimizers。这些函数用于不同阶段的训练、验证、测试与设置优化器。详细流程包括数据准备、自动调用训练函数,以及在training_step中执行整个训练流程,包含特征与目标提取、前向传播、损失计算与指标评估。
后续,我们计划继续探讨Pytorch Lightning的高级应用,以及在Nuplan项目中如何高效集成与优化。请注意,这里提供的代码示例基于在Pytorch Lightning框架上开发的plantf,而非Nuplan的原始代码,但主体框架与之相似,仅在模型内容上有所差异。期待进一步的分享与交流。
如何入门黑客工具箱Kali? - 知乎
QingScan支持的黑客工具箱Kali清单: 1. Xray:一款功能强大的安全评估工具,具备多款一线安全从业者的精心设计与优化。 2. Awvs:全称为Acunetix Web Vulnerability Scanner,专用于扫描web应用程序上的安全问题,如SQL注入、XSS、目录遍历等。 3. Rad:一款专为安全扫描而设计的浏览器爬虫。 4. Masscan:进行快速端口扫描的工具,适用于大型网络的扫描。 5. Nmap:Gordon Lyon开发的网络扫描工具,能识别网络上的主机和服务,具备强大的网络枚举和测试功能。 6. Fortify:HP的产品,用于静态、白盒的软件源代码安全测试,能识别代码中的安全漏洞。 7. Kunlun-M:支持PHP、JavaScript等语义分析,以及Chrome扩展、Solidity的基础扫描。 8. Semgrep:快速、开源的静态分析工具,用于检测代码错误和执行代码标准。 9. Pocsuite:知道创宇实验室研发的远程漏洞测试框架,支持漏洞验证、开发PoC/Exp和集成至其他工具。 . Whatweb:自动识别CMS、BLOG等Web系统,用于web指纹识别。 . Oneforall:子域名信息收集的工具,功能强大。 . Hydra:爆破工具,支持多种服务的账号和密码破解。 . Sqlmap:检测和利用SQL注入漏洞的工具,具备自动化处理功能。 . Dirmap:高级web目录、文件扫描工具,功能超越了DirBuster、Dirsearch等。 . 河马Webshell检测:专注于webshell查杀,采用双引擎技术,查杀速度快、精度高。 . Wafwfscan:自动识别WAF的工具。 . Nuclei:基于模块进行请求发送的网络侦查工具,具备在被WAF后自动重传的功能。 . Vulmap:对web应用进行漏洞扫描和验证的工具,支持多种web应用的漏洞扫描。 . Crawergo:使用chrome headless模式进行URL收集的浏览器爬虫,能收集网站入口。 . Dismap:快速识别Web指纹信息,辅助定位资产。 -. PHP、Java、Python依赖检测:自研工具,用于白盒审计时读取项目依赖。 . GitHub安全公告:自研工具,获取GitHub的安全公告。 . GitHub关键字检测:通过搜索GitHub自动找出源码泄露。 . 免费代理获取:自研工具,自动搜索HTTP代理。 . gitee热门项目获取:自动获取热门项目,用于代码审计。 . 数据库备份:自动备份数据库。 . updateRegion:自动更新IP所属地域信息。 如需加入交流群,可点击阅读原文,自动跳转到QingScan工具介绍页扫码入群。Ubuntu.下安装mpich2(HYDRA3.3a2)
Ubuntu.下安装mpich2,直接使用命令sudo apt install mpich即可简单完成。对于源码编译,未来有机会再深入探讨。安装mpich的目的是为了支持国产开源CFD软件OneFLOW所需的并行计算能力,确保跨平台环境搭建。
安装完毕后,通过mpicxx --version查看版本信息,发现自动调用的是g++9.2.1,其他版本类似也进行了相应测试。
mpirun命令提供更多信息,显示出版本为hydra3.3a2,表明是较新版本。尝试直接下载源码编译,结果与通过apt安装的版本相近。
使用源码示例程序运行时,遇到了找不到文件的困扰,影响了测试心情。对比c代码,发现无明显问题,暗示环境配置大致正确。
测试并行运行功能,使用mpirun -n 4 ./cpi命令,发现可以成功并行,输出结果稍显杂乱。深入研究cxxpi.cxx文件,发现定义了预定义宏,导致简单代码编译失败。
通过调整mpicxx命令,增加预定义宏DHAVE_CXX_IOSTREAM和DHAVE_NAMESPACE_STD,成功解决了c++部分的问题。最终,运行mpirun -n 8 ./cxxpi确保了复杂环境的通过。
Ubuntu.与gcc9.2.1下的mpich2环境安装成功,对于有兴趣的读者,可以借鉴这些经验应用到更为复杂的项目中。