首页 > TAG信息列表 > intptr

使用C#编写一个.NET分析器(一)

译者注 这是在Datadog公司任职的Kevin Gosse大佬使用C#编写.NET分析器的系列文章之一,在国内只有很少很少的人了解和研究.NET分析器,它常被用于APM(应用性能诊断)、IDE、诊断工具中,比如Datadog的APM,Visual Studio的分析器以及Rider和Reshaper等等。之前只能使用C++编写,自从.NET Native

记一次被非托管代码支配的恐惧「C#对接企微会话存档SDK问题修复」

序 这个问题是我目前在做企微服务商开发以来周期最长、最折磨人的一个问题了; 从3月开始着手排查问题(其实在开发之初就发现了该问题,迫于进度,就暂时搁置了),其中断断续续去尝试解决,并且没有企微对接人,只能社区咨询以及demo调试,加之期间需求不断,也就拖到了当下; 加之企微并没有提供C#对

WPF中使用 WndProc 来处理Windows Messages

WPF对应的C#程序有时需要与Window32程序进行通信,会使用到窗口过程函数来接受Windows消息。 引入 System.Windows.Interop 命名空间,将使用到其中的 HwndSource 使用实例如下: // Add an event handler that receives all window messages, // 该函数的调用必须要当前程序的 MainWin

FB(S1C1): PInvokeStackImbalance对PInvoke函数的调用导致堆栈不对称

FB(S1C1): PInvokeStackImbalance对PInvoke函数的调用导致堆栈不对称   问题:     C#语言 对 C语言 导出函数进行调用时报出的错误.  方案:     设置调用约定CallingConvention的枚举值中的CallingConvention.Cdecl.  实施:     C语言导出函数形式 extern "C" _

使用C#制作可以录制自动化执行Windows操作脚本工具——类似于按键精灵

我们知道,如果要对一个网站进行自动化测试,可以使用Python的selenium对获取网页的元素进行一系列操作。同样,对于Windows应用,可以使用C#或者AutoIt(也是一种脚本语言,相比较与C#,AutoIt更适合做Windows应用的自动化脚本)捕获窗体句柄进行操作。 今天主要记录一下使用WPF制作可以录制自动

Using PostMessage/SendMessage to send keys to c# IE WebBrowser

[DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] static extern bool PostMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam); [DllImport("user32.dll")] static extern int SendMessage(IntPtr hWnd

C# Winform 使用全局快捷键

作者: 张赐荣 .NET 类库本身没有封装注册全局快捷键的函数,想要实现注册全局热键,就需要使用Win32API。 在WinAPI中,注册和注销全局快捷键分别通过registerhotkey和unregisterhotkey函数实现。 注册快捷键后,还需要重写窗口过程函数。 以下代码封装了全局快捷键注册功能 (在 Winform

关于 uintptr_t和intptr_t 类型

简介 最近在看代码时,发现了两个之前没见过的数据类型:intptr_t,uintptr_t。这两个数据类型是ISO C99定义的,具体代码在linux平台的/usr/include/stdint.h头文件中。 /* Types for `void *' pointers. */ #if __WORDSIZE == 64 # ifndef __intptr_t_defined typedef long int intptr

C# 抓取进程快照 propDump方式

private static void CreateMiniDump(string processName) { var pl = Process.GetProcessesByName(processName); if (pl.Length == 0) { Console.WriteLine($"找不到进程:{processName}"); ret

C# 判断文件是否被占用

using System.IO; using System.Runtime.InteropServices; namespace DarkBlue.FileOccupied { public sta class FileHlper { [DllImport("kernel32.dll")] public static extern IntPtr _lopen(string lpPathName, int iReadWrite);

Bitmap 与ImageSource之间的转换

public class ImageConverter { [DllImport("gdi32.dll", SetLastError = true)] private static extern bool DeleteObject(IntPtr hObject); /// <summary> /// 从bitmap转换成ImageSource /// </summary&g

.net delegate 万能适配

遇到一个技术点,记一下,.net 有一个 Delegate Marshall.GetDelegateForFunctionPointer(IntPtr ptr, Type t) 用来将内存地址映射为一个 delegate,转为 delegate 后就可以对内存段的二进制代码进行 .net 内的调用了。例如 ptr 是 VirtualAlloc 的地址,t 是具有 IntPtr(IntPtr lpStartA

AMSI 浅析及绕过——写得很深入,看来amsi还是静态方式做的,没有做到运行时检测,检测的银弹在哪里呢,语义分析和机器学习吗?

AMSI 浅析及绕过 0x00 前言 0x01 AMSI浅析 1、什么是AMSI? AMSI(Antimalware Scan Interface),即反恶意软件扫描接口,在windows 10和 windows server 2016上默认安装并启用。顾名思义,他的工作就是扫描、检测和阻止。windows 10和windows server2016中AMSI默认杀软就是Windows D

Winform中打开对应窗口标题的窗口

      1 public static class WindowsMessageHelper 2 { 3 4 public const int WM_COPYDATA = 0x004A; 5 6 [DllImport("User32.dll", EntryPoint = "SendMessage")] 7 private static extern int SendMessage

C#_动态获取鼠标位置的颜色

    API声明: /// <summary> /// 获取指定窗口的设备场景 /// </summary> /// <param name="hwnd">将获取其设备场景的窗口的句柄。若为0,则要获取整个屏幕的DC</param> /// <returns>指定窗口的设备场景句柄,出错则为0</returns> [DllImport("user32.dll")] public static

C#-DWMAPI绘制缩略图到winform窗口 (多窗口图像捕获)

此文章演示C#如何使用DwmApi来捕获程序的缩略图来映射到winform窗体上。  实现:   1.可随意捕获多个程序的缩略图。   2.并可设置缩略图的大小尺寸。   3.零延迟实时捕获缩略图。   注意点:   使用此接口捕获应用程序的缩略图时,必须保证要捕获的应用程序在任务栏上出现。

穿透 SESSION 0 隔离

注:这套程序在这里只是作为了解,博主本人并未测试,所有测试均来自文章最底层链接的原文章。 查看目标进程运行的SESSION位置 在实际开发过程中,可以通过Process Explorer 检查服务或程序处于哪个Session,会不会遇到Session 0 隔离问题。可以看到svchost.exe处于SESSION 0。QQ作为用户

C#调用大华摄像头

大华SDK包地址:https://support.dahuatech.com/tools/sdkExploit 效果图:     //32位SDK 大华摄像机打开方法 IntPtr _LoginID = IntPtr.Zero; NET_DEVICEINFO_Ex _DeviceInfo = new NET_DEVICEINFO_Ex(); IntPtr _PlayID = IntPtr.Zero;

csharp: Cyotek.GhostScript.Pdf Conversion pdf convert image x64

NativeMethods.cs  x64 using System; using System.Runtime.InteropServices; namespace Cyotek.GhostScript { /// <summary> /// 64位 /// https://github.com/kelter-antunes/Cyotek.GhostScript.x64 64位 /// </summary> internal class

WPF 自定义文本框输入法 IME 跟随光标

本文告诉大家在 WPF 写一个自定义的文本框,如何实现让输入法跟随光标 本文非小白向,本文适合想开发自定义的文本框,从底层开始开发的文本库的伙伴。在开始之前,期望了解了文本库开发的基础知识 本文实现的效果如下 实现 本文的方法参考了 WPF 官方仓库的逻辑,可以在 WPF 仓库的 wpf\sr

long 和 intptr_t

获取当前目录下的所有文件,用 _findfirst 在vs2013下好使,换成2018不行,后来考虑到2018默认是64位的  long-->intptr_t 后ok //文件句柄 //long hFile = 0; intptr_t hFile = 0; //文件信息 struct _finddata_t fileinfo; string p; if ((hF

C#隐藏桌面图标

private void ShowDeskIcon(bool b)//控制桌面图标显隐 { IntPtr desk = FindWindow("ProgMan", null);//获取桌面句柄 IntPtr list_ = FindWindowEx(desk, 0, "SHELLDLL_DefView", null);//获取上级句柄 IntPtr Idesk = FindWindowEx(list_, 0, "Sys

在WPF的程序中,嵌入其他进程的窗体

我最近遇到了这样一个问题,就是我的WPF程序中,需要用到32位的COM组件。所以我的WPF程序也是要32位的。但是32的程序的逻辑内存最多只有2G,因此,当这个COM组件比较吃内存的时候,程序就会出现内存不够的情况,就会出现异常。因此,我的解决方案是使用winform来调用这个COM组件。然后WPF程序

C#中的IntPtr

1、C#中的IntPtr类型被称之为“平台特定的整数类型”,用于本机资源,例如窗口句柄。 2、资源的大小取决于使用的硬件和操作系统,即此类型的实例在32位硬件和操作系统中将是32位,在64位硬件和操作系统中将是64位;但其大小总是足以包含系统的指针(因此也可以包含资源的名称)。 3、在调用API

WinForm C# 获取屏幕真实分辨率

       在上一篇文章(Winform C#截屏实现_学习记录专栏-CSDN博客)中,获取屏幕分辨率采取了折中的方法。然而在笔记本连接外接显示器,并且显示器显示模式扩展的情况下,获取到的屏幕分辨率就有会包含扩展屏,与目标机器的分辨率不符合。 网上继续搜索,才发现微软早提供了API获取的方