- 博客(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
360
原创 如何确保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
409
原创 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
4502
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
542
原创 联通光猫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
11367
原创 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
5007
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
351
原创 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
2508
原创 用Crypto++的RSA算法进行加解密
OpenSSL库过于庞大,一个exe静态链接后,会变成2MB。于是寻找别的算法库。最后找到了Crypto++。程序编译后,Release版本只会增大200KB,还是很不错的。cryptest中的代码,会自动把二进制转为字符串,很让人头大。幸好找到了以Crypto++实现RSA加解密二进制数据,讲解了二进制操作的方法。因为那篇文章已经有几年历史,有几个API有一些变动。生产RSA密钥对(默...
2020-04-06 21:12:46
2694
原创 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
3368
3
原创 libevent的回调模式
在上一篇博客libevent多线程不发数据的问题研究了libevent多线程下如何正确的进行数据收发原以为问题已经解决,没想到数据量大后,依然会出现数据接收不完全的问题。一直以为是bufferevent_write不对。检测返回值发现成功。但是接收端确实是没收到这么多数据。获得fd后,自行调用write,也出现同样问题。使用wireshark抓包发现,数据包是成功发出的。经过群友点拨,应该...
2020-03-10 17:57:13
719
原创 libevent多线程不发数据的问题
刚开始以为是自己的watermark不对,于是一顿修改。发现还是存在不发数据的问题。原来,多线程使用libevent,不仅仅要event_base_new之前调用evthread_use_windows_threads,还需要创建bufferevent时,增加BEV_OPT_THREADSAFE选项。加上后,问题就解决了;)...
2020-03-05 20:44:28
272
原创 recvfrom 10054之谜
众所周知,UDP通信是不需要提前建立连接的,只要bind后,直接recvfrom就可以了。但是写UDP转发时,发现其中一方重启后,UDP转发的接收就会失败一次。查阅资料后发现是Winsock的Bug,在WinSock Recvfrom() 现在返回 WSAECONNRESET 代替阻止或超时(WSAIoctl中的SIO_UDP_CONNRESET参数)一文中有解释。只需要以下代码就可以解决:...
2020-03-03 15:36:18
556
原创 从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
706
原创 从Windows到Linux之——头文件、库环境设置
在Windows上使用Vistual Studio进行开发,配置头文件,库非常方便头文件:项目属性>配置属性>C/C++>常规>附加包含目录lib路径:项目属性>配置属性>链接器>常规>附加库目录指定lib:项目属性>配置属性>链接器>输入>附加依赖项只要配置以上三个位置,就可以愉快的使用第三方库了。那么在Lin...
2020-01-19 15:54:42
1100
原创 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
1317
原创 静态编译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
1246
转载 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
316
原创 WPF 自定义控件后如何处理新添加控件的消息
目前有个需求,写一个类似Chrome标签页的界面,标签页上有一个+号,点击增加标签。+号增加了却不知道如何处理+号的Click事件:首先写Generic.xaml(其中AddItemButton就是我添加的按钮): <SolidColorBrush x:Key="TabItem.Selected.Background" Color="#FFFFFF"/> <S...
2018-11-26 18:06:18
980
原创 WPF 如何在ListView中某一列显示进度条
使用DataTemplate:<ListView> <ListView.View> <GridView> <GridViewColumn Header="进度" Width="200"> <GridViewColumn.CellTemplate>
2018-11-13 15:30:21
1061
3
原创 WPF 如何统一设置ListView中GridViewColumn的Style
原先代码,如果GridViewColumn多了要写多次,很麻烦:<ListView> <ListView.View> <GridView ColumnHeaderContainerStyle="{StaticResource GridViewColumnStyle}"> <GridViewColumn Style={StaticResour...
2018-11-13 15:23:50
4697
原创 WPF如何去掉ContextMenu的显示和隐藏动画
首先上一个例子:<Grid Name="grid" Margin="5"> <ListBox> <ListBoxItem Content="asdasd"/> <ListBoxItem Content="asdasd"/> &am
2018-11-13 15:09:09
1501
原创 WPF ListView 数据绑定后,ListViewItem如何拥有ContextMenu
这个需要重写ListView的Style。首先在ListView的Style对应位置增加一个ContextMenu的声明: <!--ListViewItem的菜单绑定--> <ContextMenu x:Key="ListViewItemContextMenu" ItemsSource="{Binding MenuItems}"/>ItemsSourc...
2018-11-13 15:04:24
2647
原创 WPF MenuItem检查自己是否有子项
在写MenuItem的ControlTemplete的时候通过检查Role的值可以判断MenuItem状态:<Trigger Property="Role" Value="TopLevelHeader"> </Trigger><Trigger Property="Role" Value="TopLevelItem"></
2018-10-18 13:14:56
1052
原创 WPF实现一个环形等待进度条
显示效果:上面的红色是我设置的一个背景。以下是XAML:<UserControl x:Class="WPFStyle.DIYControl.RoundProcessBarLoading" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x...
2018-10-15 17:18:07
2485
原创 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
735
原创 C++/CX String^ 转const wchar_t*
Microsoft解决方案#include <vcclr.h>#include <vcclr.h> void func(String^ strFileName){ pin_ptr<const wchar_t> wch = PtrToStringChars(strFileName); //......}
2018-09-18 16:58:11
1095
原创 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(&quot;xxxx.dll&quot;, CharSet = CharSet.Unicode, C...
2018-09-14 11:28:55
2784
1
原创 反思
很久没有更新博客了,确实堕落了几个月。在上家公司以驱动开发的名义入职,结果就研究了一个WDF驱动,然后写了1个月Python爬虫。最后被调去做了duilib;由于本身很不喜欢客户端,所以一直都是煎熬状态;然后开始了我毕业后第一次跳槽。刚开始是准备找C++服务端,寻思着我基础没问题,还有一些获奖经历,还是应届,应该很轻松,认识的网友C++还没学完都能找个9K的服务端,我肯定也没问题的。带着满满的自信开
2017-11-11 11:17:56
266
原创 C++ 获取Windows还原点列表(2)
上一节是获取了系统磁盘上系统还原点文件,成功解决了WMI和PowerShell无法获得系统还原点的问题,但是还原点多余的情况依然无法解决。这几天看了室友的《加密与解密 第三版》对逆向有了很浓厚的兴趣,练手就准备用这个程序。系统还原点的程序是C:\Windows\System32\rstrui.exe使用IDA和OD。历时一周,终于有了头绪,rstrui.exe里面有一个类的静态函数(CSxFunct
2017-08-02 13:53:32
789
原创 C++ 获取Windows还原点列表
本来是用WMI就可以搞定的,但是不知道什么时候开始,WMI貌似没效果了,SELECT * from SystemRestore结果是空的,但是系统程序rstrui.exe里面能成功找出还原点,这就很神奇了。。。决定研究一下。
2017-07-24 14:09:30
1209
原创 WinDbg命令常用命令(驱动)
刚开始研究驱动,对WinDbg的命令不熟练,写个文档记录一下,免得经常忘记。希望大佬不要说我是标题党查看内存!poolused分析错误!analyze
2017-06-26 09:21:47
642
原创 获取电脑硬件对应的驱动程序信息
刚换了工作,入职时候大佬让我研究下 驱动人生/驱动精灵 判断驱动是否正常是怎么做到的一开始是一脸懵逼的,完全不知道要如何下手,不过应该是获取设备管理器里硬件属性,然后进行判断吧,我就跟据我的猜测进行研究。
2017-06-22 16:18:53
3917
原创 如何在不打开Visual Studio的情况下启动HlpViewer.exe
每次想查资料,都要先打开Visual Studio,然后打开HlpViewer.exe,感觉真的特别麻烦,就想直接打开
2017-06-02 23:28:45
1330
原创 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
839
原创 MFC窗口接受拖放
最近想练习用WPF写界面,调用API的时候发现太麻烦,每个参数要自己声明类型,于是准备写一个DLL,在DLL里面调用API,将结果返回(字符串)。
2017-05-21 17:13:17
540
Ramdisk.cpp
2017-06-27
HeadFileChange.exe
2016-12-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人