自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (2)
  • 收藏
  • 关注

原创 记一次StackOverflow

概述目前项目会使用chromium项目的base模块在调用友商一模块时,出现StackOverflow事件分析在base库的task_runner线程中,调用该模块,会出现StackOverflow在另一种std::thread创建的线程中,调用该模块,正常在main函数中,调用该模块,正常因此初步推断友商模块可能对base模块的task_runner水土不符?上IDA进行分析,发现在调用 _alloca_probe函数时出现的崩溃。参考连接:解析__alloca_probe

2021-07-09 16:49:38 304

原创 如何确保Visual Studio编译的程序适用于指定Windows

最近在编译Chromium,发现有的代码引入了Windows 8+的API,而且是静态引用,非动态引用。这就导致编译后,Windows 7系统是肯定跑不起来的。那是如何在编译阶段发现这一问题呢?在编译时,Windows平台相关API都会依赖一个头文件sdkddkver.h,这里进行了版本定义。#if !defined(_WIN32_WINNT) && !defined(_CHICAGO_)#define _WIN32_WINNT 0x0A00#endif#ifndef.

2021-03-28 15:00:16 327

原创 Ubuntu 20.04安装pip

英文原版:How to Install Python Pip on Ubuntu 20.04如何在Ubuntu 20.04安装Python pipPip是一个用于安装Python包的工具。有了pip,你可以从Python Package Index(PyPI)和其他package indexes中搜索,下载并安装包。这个教程解释如何在Ubuntu 20.04上安装Python 3和Python 2的pip。还将指引你了解通过pip安装和管理Python包的基础知识。开始之前Python有两种:Py

2021-03-24 14:08:10 4079 3

原创 C#解密Golang CFB 密文方式

golang使用CFB加解密非常方便:package mainimport ("crypto/aes""crypto/cipher""encoding/hex""fmt")func main() { key := []byte("example key 1234") ciphertext, _ := hex.DecodeString("22277966616d9bc47177bd02603d08c9a67d5380d0fe8cf3b44438dff7b9") block, err := aes.N

2021-01-10 12:41:15 490

原创 联通光猫CUAdmin获取

设备型号 HG220GS-U硬件版本 V3.0软件版本 E00L3.03首先通过光猫下方的账号密码登录。URL修改为http://192.168.1.1/servmngr.html启动FTP服务器,Telnet服务器,管理员帐号开关通过FTP获取bin/httpd使用IDA分析httpd能看到0049A5B5处的字符串也是JmpwfGjcfsjpnfJmpwfGjcfsjpnf0000,和参考文章一样。直接借用参考文章的代码进行计算。就拿出来了。但是不清楚为什么IDA的字符串搜索中查不.

2020-08-30 23:28:17 9884

原创 STM32CubeIDE使用小记

发现STM32出了一款IDE,方便开发者进行开发,看了一下应该是基于Eclipse改的。调试的时候发现一个问题,第一次可以写入程序,但是运行起来会断开连接,下次选择调试,就会提示Error in initializing ST-LINK device经过研究,发现是对应针脚被关闭了。因为我使用J-LINK进行调试,主要使用两个GPIO口:SWCLKSWDIO根据原理图,分别对应PA13和PA14针脚。在Pinout & Configuration中,将PA14设置为SYS_JTCK-

2020-08-05 00:28:48 3653 2

原创 KMP算法记录

本代码根据《编译原理》第2版 第3章给出的伪代码改编#include <vector>class KMP{private: std::vector<int> m_failArray; std::string m_pat;public: KMP(std::string pat) { int M = pat.length(); m_failArray.resize(M); m_pat = pa.

2020-06-30 22:48:37 315

原创 GCC升级后,CentOS 7无法进入系统解决过程

下载了CentOS 7的内核,准备编译一下,结果每次make都提示需要升级编译器,于是我编译安装了一个gcc 10,安装在了/home/virtual/SoftwareLibrary中,结果重启后,系统就凉了,启动过程停在Host SMBus controller not enabled这句话停在Host SMBus controller not enabled其实并不代表系统凉凉,按Ctrl+Alt+F2就可以切换到控制台模式。登陆系统后,尝试ping命令,发现网络无问题,于是尝试启动ssh服务:.

2020-06-18 10:44:12 2250

原创 用Crypto++的RSA算法进行加解密

OpenSSL库过于庞大,一个exe静态链接后,会变成2MB。于是寻找别的算法库。最后找到了Crypto++。程序编译后,Release版本只会增大200KB,还是很不错的。cryptest中的代码,会自动把二进制转为字符串,很让人头大。幸好找到了以Crypto++实现RSA加解密二进制数据,讲解了二进制操作的方法。因为那篇文章已经有几年历史,有几个API有一些变动。生产RSA密钥对(默...

2020-04-06 21:12:46 2397

原创 libtermcap.so.2

最近遇到一个程序,依赖libtermcap.so.2,找了很久都没找到是哪个库。最后在libtermcap.so.2 no such file or directory unbuntu找到了答案$ sudo updatedb$ locate libncurses/lib/i386-linux-gnu/libncurses.so.5/lib/i386-linux-gnu/libncur...

2020-03-31 15:05:20 2950 3

原创 libevent的回调模式

在上一篇博客libevent多线程不发数据的问题研究了libevent多线程下如何正确的进行数据收发原以为问题已经解决,没想到数据量大后,依然会出现数据接收不完全的问题。一直以为是bufferevent_write不对。检测返回值发现成功。但是接收端确实是没收到这么多数据。获得fd后,自行调用write,也出现同样问题。使用wireshark抓包发现,数据包是成功发出的。经过群友点拨,应该...

2020-03-10 17:57:13 661

原创 libevent多线程不发数据的问题

刚开始以为是自己的watermark不对,于是一顿修改。发现还是存在不发数据的问题。原来,多线程使用libevent,不仅仅要event_base_new之前调用evthread_use_windows_threads,还需要创建bufferevent时,增加BEV_OPT_THREADSAFE选项。加上后,问题就解决了;)...

2020-03-05 20:44:28 216

原创 recvfrom 10054之谜

众所周知,UDP通信是不需要提前建立连接的,只要bind后,直接recvfrom就可以了。但是写UDP转发时,发现其中一方重启后,UDP转发的接收就会失败一次。查阅资料后发现是Winsock的Bug,在WinSock Recvfrom() 现在返回 WSAECONNRESET 代替阻止或超时(WSAIoctl中的SIO_UDP_CONNRESET参数)一文中有解释。只需要以下代码就可以解决:...

2020-03-03 15:36:18 469

原创 从Windows到Linux之——pkg-config

pkg-config是接触了Linux后才遇到的东西,之前在Windows上没有见过类似的东西。第一次见是wx-config,教程里写编译的时候只需要使用:g++ myfoo.cpp `wx-config --libs --cxxflags` -o myfoo就可以编译,直接写g++ myfoo.cpp-o myfoo就不行,很好奇,它是如何让编译通过的?尝试在终端运行wx-confi...

2020-01-19 16:18:02 605

原创 从Windows到Linux之——头文件、库环境设置

在Windows上使用Vistual Studio进行开发,配置头文件,库非常方便头文件:项目属性>配置属性>C/C++>常规>附加包含目录lib路径:项目属性>配置属性>链接器>常规>附加库目录指定lib:项目属性>配置属性>链接器>输入>附加依赖项只要配置以上三个位置,就可以愉快的使用第三方库了。那么在Lin...

2020-01-19 15:54:42 1031

原创 Deepin上编译wxWidgets

系统版本15.11桌面版,全新安装在~/SoftwareLibrary中克隆wxWidgets。SoftwareLibrary是我自己的建立的目录git clone https://github.com/wxWidgets/wxWidgets.git然后进入wxWidgets目录,在docs/gtk/install.md有安装教程,说的比较简单粗暴,很适合我:If you co...

2020-01-18 14:28:58 1182

原创 静态编译libcurl方法

使用libcurl,DLL方式很正常,但是LIB方式无论怎么设置都会提示:error LNK2019: 无法解析的外部符号 __imp__curl_global_init,该符号在函数 _main 中被引用error LNK2019: 无法解析的外部符号 __imp__curl_global_cleanup,该符号在函数 _main 中被引用error LNK2019: 无法解析的外部符号 ...

2019-08-27 19:07:59 1135

转载 WM_TIMER是否会堆满整个消息队列?

微软大佬Raymond的一篇文章做了简单的介绍:If my WM_TIMER handler takes longer than the timer period, will my queue fill up with WM_TIMER messages?

2019-07-23 17:49:35 280

原创 WPF 自定义控件后如何处理新添加控件的消息

目前有个需求,写一个类似Chrome标签页的界面,标签页上有一个+号,点击增加标签。+号增加了却不知道如何处理+号的Click事件:首先写Generic.xaml(其中AddItemButton就是我添加的按钮): &lt;SolidColorBrush x:Key="TabItem.Selected.Background" Color="#FFFFFF"/&gt; &lt;S...

2018-11-26 18:06:18 938

转载 WPF 如何编辑ContextMenu的Style

ContextMenu 怎么用blend编辑默认样式

2018-11-13 15:32:25 2211

原创 WPF 如何在ListView中某一列显示进度条

使用DataTemplate:&lt;ListView&gt; &lt;ListView.View&gt; &lt;GridView&gt; &lt;GridViewColumn Header="进度" Width="200"&gt; &lt;GridViewColumn.CellTemplate&gt;

2018-11-13 15:30:21 998 3

原创 WPF 如何统一设置ListView中GridViewColumn的Style

原先代码,如果GridViewColumn多了要写多次,很麻烦:&lt;ListView&gt; &lt;ListView.View&gt; &lt;GridView ColumnHeaderContainerStyle="{StaticResource GridViewColumnStyle}"&gt; &lt;GridViewColumn Style={StaticResour...

2018-11-13 15:23:50 4502

原创 WPF如何去掉ContextMenu的显示和隐藏动画

首先上一个例子:&lt;Grid Name="grid" Margin="5"&gt; &lt;ListBox&gt; &lt;ListBoxItem Content="asdasd"/&gt; &lt;ListBoxItem Content="asdasd"/&gt; &am

2018-11-13 15:09:09 1396

原创 WPF ListView 数据绑定后,ListViewItem如何拥有ContextMenu

这个需要重写ListView的Style。首先在ListView的Style对应位置增加一个ContextMenu的声明: &lt;!--ListViewItem的菜单绑定--&gt; &lt;ContextMenu x:Key="ListViewItemContextMenu" ItemsSource="{Binding MenuItems}"/&gt;ItemsSourc...

2018-11-13 15:04:24 2516

原创 WPF MenuItem检查自己是否有子项

在写MenuItem的ControlTemplete的时候通过检查Role的值可以判断MenuItem状态:&lt;Trigger Property="Role" Value="TopLevelHeader"&gt; &lt;/Trigger&gt;&lt;Trigger Property="Role" Value="TopLevelItem"&gt;&lt;/

2018-10-18 13:14:56 1007

原创 WPF实现一个环形等待进度条

显示效果:上面的红色是我设置的一个背景。以下是XAML:&lt;UserControl x:Class="WPFStyle.DIYControl.RoundProcessBarLoading" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x...

2018-10-15 17:18:07 2365

原创 HICON 转ImageSource

C++通过SHGetFileInfo拿到的图标是HICON类型。WPF要显示只能用Image控件,设置Source源,需要HICON转ImageSource//IntPtr pIconData 通过HICON强转private ImageSource IconDataToImageSource(IntPtr pIconData){ ImageSource imageSour...

2018-09-18 18:01:57 675

原创 C++/CX String^ 转const wchar_t*

Microsoft解决方案#include &lt;vcclr.h&gt;#include &lt;vcclr.h&gt; void func(String^ strFileName){ pin_ptr&lt;const wchar_t&gt; wch = PtrToStringChars(strFileName); //......}

2018-09-18 16:58:11 1024

原创 C#调用C/C++ DLL方式总结

C#与C/C++ DLL交互方式总结C#调用C/C++ DLL导出C/C++的导出函数:int __stdcall AFunc(wchar_t* str){ //ugsdifgoisuhfgiosugdtfuywegouy return 0;}C#声明:[DllImport(&amp;quot;xxxx.dll&amp;quot;, CharSet = CharSet.Unicode, C...

2018-09-14 11:28:55 2713 1

原创 如何隐藏导入表

当有人问我这个问题的时候,我真的是一脸懵逼,我只知道编译的时候尽量少的引用dll可以减少导入表的量。

2017-11-11 15:25:37 949

原创 反思

很久没有更新博客了,确实堕落了几个月。在上家公司以驱动开发的名义入职,结果就研究了一个WDF驱动,然后写了1个月Python爬虫。最后被调去做了duilib;由于本身很不喜欢客户端,所以一直都是煎熬状态;然后开始了我毕业后第一次跳槽。刚开始是准备找C++服务端,寻思着我基础没问题,还有一些获奖经历,还是应届,应该很轻松,认识的网友C++还没学完都能找个9K的服务端,我肯定也没问题的。带着满满的自信开

2017-11-11 11:17:56 240

原创 C++ 获取Windows还原点列表(2)

上一节是获取了系统磁盘上系统还原点文件,成功解决了WMI和PowerShell无法获得系统还原点的问题,但是还原点多余的情况依然无法解决。这几天看了室友的《加密与解密 第三版》对逆向有了很浓厚的兴趣,练手就准备用这个程序。系统还原点的程序是C:\Windows\System32\rstrui.exe使用IDA和OD。历时一周,终于有了头绪,rstrui.exe里面有一个类的静态函数(CSxFunct

2017-08-02 13:53:32 734

原创 C++ 获取Windows还原点列表

本来是用WMI就可以搞定的,但是不知道什么时候开始,WMI貌似没效果了,SELECT * from SystemRestore结果是空的,但是系统程序rstrui.exe里面能成功找出还原点,这就很神奇了。。。决定研究一下。

2017-07-24 14:09:30 1115

原创 Ramdisk (NT)研究

准备自己写一个NT式的Ramdisk,想模仿Filedisk那样可以让系统自己来格式化空间。记录一下研究过程。

2017-06-26 17:33:56 516 3

原创 WinDbg命令常用命令(驱动)

刚开始研究驱动,对WinDbg的命令不熟练,写个文档记录一下,免得经常忘记。希望大佬不要说我是标题党查看内存!poolused分析错误!analyze

2017-06-26 09:21:47 573

原创 获取电脑硬件对应的驱动程序信息

刚换了工作,入职时候大佬让我研究下 驱动人生/驱动精灵 判断驱动是否正常是怎么做到的一开始是一脸懵逼的,完全不知道要如何下手,不过应该是获取设备管理器里硬件属性,然后进行判断吧,我就跟据我的猜测进行研究。

2017-06-22 16:18:53 3713 2

原创 如何在不打开Visual Studio的情况下启动HlpViewer.exe

每次想查资料,都要先打开Visual Studio,然后打开HlpViewer.exe,感觉真的特别麻烦,就想直接打开

2017-06-02 23:28:45 1268

原创 VS中printf参数研究

最近有人在群里问了一个问题:int a = 1;printf("%d, %d, %d\n", a, a++, ++a);这个执行结果不是应该为3 2 1么?为什么结果是3 2 3?

2017-06-02 22:16:02 788

原创 VS2017远程调试

由于某些因素,我需要程序在其他系统运行,但是又不想打日志,就想直接远程调试。

2017-05-22 11:41:45 25577 3

原创 MFC窗口接受拖放

最近想练习用WPF写界面,调用API的时候发现太麻烦,每个参数要自己声明类型,于是准备写一个DLL,在DLL里面调用API,将结果返回(字符串)。

2017-05-21 17:13:17 499

Ramdisk.cpp

NT驱动的Ramdisk,支持在我的电脑中格式化选择分区格式。需要在应用层中使用DefineDosDevice(DDD_RAW_TARGET_PATH, L"Z:", L"\\Device\\HellDisk")函数进行挂载

2017-06-27

HeadFileChange.exe

把函数声明改为可以定义成函数指针的声明 int __stdcall func(int a); 转换为 typedef int (__stdcall *pfnfunc)(int a);

2016-12-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除