上一页 1 2 3 4 5 6 7 ··· 26 下一页
摘要: 偶然的机会,在github上发现了一个有趣且优秀的项目,https://github.com/Maplespe/explorerTool。 这里学习了一下,并顺带学习了一下涉及的相关知识点。不得不感叹作者的厉害之处,能想到这种方法。 主要实现原理: 1、创建一个DLL,通过远线程注入的方式,注入资源 阅读全文
posted @ 2024-04-22 23:14 zhaotianff 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 最近在做一个资源管理器背景工具,将模块注入后,需要跟模块进行通信,意向传递一些信息。 一开始想到的是使用共享内存,但是无法进行实时通知。 匿名管道的话需要传入句柄字符串,也不太适用这里的场景。 使用Mailslots可以间隔的去取消息,刚好可以实现这个需求。不同于消息队列的时,没取到消息时,不会阻塞 阅读全文
posted @ 2024-04-19 16:15 zhaotianff 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 通过函数BeginPaint画图 1、创建一个Windows桌面应用程序 2、找到WM_PAINT消息的处理函数,添加代码如下: 1 case WM_PAINT: 2 { 3 PAINTSTRUCT ps; 4 HDC hdc = BeginPaint(hWnd, &ps); 5 TextOut(h 阅读全文
posted @ 2024-04-08 10:45 zhaotianff 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 前言 很早以前在github上看到的一个项目,通过hook WindowsAPI函数FillRect,对资源管理器背景进行了重绘。 项目地址如下: https://github.com/Maplespe/explorerTool 我第一次见到的时候,觉得这个项目还是非常吸引我,因为从XP过后,我再也 阅读全文
posted @ 2024-04-01 17:16 zhaotianff 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 这种在实际使用中应该很难碰到,我最近刚好遇上这样一个问题。 因为公司的打包服务器需要代码提交,才会自动进行打包,而我又没权限进行手动打包。所以最快的解决办法就是创建一次没有修改的提交。 方法如下: 在进行commit时带上--allow-empty参数即可。 如 1 git commit -m "t 阅读全文
posted @ 2024-03-27 09:38 zhaotianff 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 在应用层下,进程遍历有多种方式,这里介绍几种常用的方式:进程快照、NtQuerySystemInformation、EnumProcesses函数、WMI等。 在C#中Process类提供了一个GetProcesses()函数,这个函数内部就是调用的NtQuerySystemInformation进 阅读全文
posted @ 2024-03-20 17:41 zhaotianff 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 有前面的文章中,我介绍了一个Windows API的监控工具(API Monitor)的使用。它内部就是使用了Hook机制,能Hook Windows API,能在我们钩选的API函数被调用时,进入中断。 这里我们借助github上一个库来自己实现一下类似API Monitor的功能。 MinHoo 阅读全文
posted @ 2024-03-14 16:20 zhaotianff 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 远线程注入 远线程(RemoteThread)注入是指一个进程在另一个进程中创建线程的技术,这是一种很经典的DLL注入技术。 虽然比较古老,但是很实用。通过远线程注入,再配合api函数的hook技术,可以实现很多有意思的功能。 实现远线程注入的关键函数 OpenProcess 打开现有的本地进程,函 阅读全文
posted @ 2024-03-13 12:04 zhaotianff 阅读(43) 评论(0) 推荐(0) 编辑
摘要: git rebase 正文待更新 参考资料: https://blog.screensteps.com/recovering-from-a-disastrous-git-rebase-mistake https://git-scm.com/docs/git-rebase https://blog.c 阅读全文
posted @ 2024-03-12 16:43 zhaotianff 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable] 2 public int Count 3 { 4 [__Dynamicall 阅读全文
posted @ 2024-03-12 14:35 zhaotianff 阅读(12) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 26 下一页