分类目录归档:编程之路

PC微信逆向之发送消息


写在前面

最近在搞微信的发送消息CALL,跟着网上的教程,一步一步走,很容易定位到CALL的地址,在适当的地方用OD断下,修改压入的参数内容,消息内容或接收人成功改变,但在使用C++调用的时候,因为不懂汇编指令,所以踩了一些坑。

工具

微信 3.5.0.46
Windows10 Pro
OllyICE 1.10
Cheat Engine 7.0
Visual Studio 2019

定位CALL地址

这部分感觉讲不太明白,而且网上有很多现成的教程,找这个CALL的思路还是比较简单的,推荐阅读下面这篇文章:
CSDN:PC微信逆向:发送与接收消息的分析与代码实现
下面是我定位到的内容:

787D

Read more

使用VS2019创建ATL组件


写在前面

之前遇到32位程序调用64位DLL的问题,百度的结果是使用com组件完成进程间通信,真的是很不错的思路,可以完成多种混合编程。本文记录一下如何开发一个简单的COM组件。

创建工程

打开VS2019,新建项目,选择ATL项目,点击创建,然后选择ATL项目类型,可执行文件、动态链接库或者是服务,只是注册方式不一样。然后在解决方案资源管理器中,右键创建的项目->添加->新建项目,选择ATL->ATL简单对象,然后弹出属性页,填写短名称和ProgID,ProgID一般为组件类.短名称,后面调用组件的时候要用到ProgID。填写这两项即可,别的不需要管,填写完毕点击完成。

Read more

TensorFlow的C/C++API


写在前面

上篇文章写了用python训练验证码识别模型,精度还是蛮不错的,但是有个问题不知道各位看官有没有注意到,识别100张验证码用了10s,差不多0.1s/张,这个速度,看起来还是挺快的对吧,实话说一开始我也觉得他蛮快的,直到完成了C++的调用,识别100张验证码用了大概0.43s,吼吼,这是什么速度哇。

难点分析

为了实现这个api调用,至少花了我一整个星期的时间,目前网络上多数资料仍停留在tensorflow1.0版本的C++调用,还要下载源码编译出tensorflow.lib和tensorflow.dll,期间会遇到环境、网络等各种各样的问题,对于不经常接触这些的我实在不怎么友好,上

Read more

C++控制USB根集线器的启停


写在前面

在此之前先想想做这件事的原因,哦,我想起来了,上周自动化测试好像有关于网银盾的,业务方不接受手工辅助插拔
虽然他们的要求有点难搞,不过正所谓不查一下资料就不知道真的能搞,搜了两天的资料,终于拼凑出了这篇文章
主要功能是实现USB根集线器的自动启停,在这个过程中,USB设备会重新挂载(ps:鼠标也会短暂失灵)

主要思路

在查资料的时候,发现Windows提供了一系列SetUPDi函数,可以操作设备管理器

相关函数

FormatGUID
这个没什么好说的,主要是格式化输出设备类GUID(注意那个“类”字)

void FormatGUID(GUID guid)
{
    cout.fil

Read more

看看最近都做了些什么


两图流



疫情大数据模块几周前就做好了,不再赘述
主要是引入了音乐播放控件,简单定制了一个管理后台,方便我添加歌曲,或者把不想给你们听的歌藏起来
浮世万千是随机获取一句暖心情话的API,放在我另一个网站上。情话是要说给谁听呢,我也不知道,大概率不是屏幕前的你
留言板模块还没有着手去做,既然放在解忧杂货店里,肯定要做的像话一点,过年期间也许就做好了

Read more

Python与C++混合编程


写在前面

今天在CSDN看到某个算法(约瑟夫生死者游戏)的三种写法,分别是C、C++、Python,我分别实现后产生了一种想法,既然Python被称为胶水语言,那么应该可以把Python移植到C++中执行,说干就干!

三种版本

C语言版(ysfc.cpp),在vs2019中使用cpp后缀

#include<stdio.h>

void ysfc()
{
    int i = 1;
    int j = 0;
    int c = 0;
    int a[30] = { 0 };
    int b[30] = { 0 };
    while (i <= 31)
  

Read more

记录第五六周的C++作业


作业要求

/*用Visual Studio 编写一个MFC界面,功能如下:
一. 仿照RW编写一个界面,枚举本机PCI的信息。*/

RW界面

设计思路

首先打开VS2019,新建基于对话框的MFC控制台程序,点击资源文件,双击后缀为.rc的文件进入资源视图,在Dialog中选中面板,删除已有的三个组件,然后添加三个按钮(Button),一个下拉选择框(Combo Box),一个列表(List Contorl),一个次级面板(Tab Control)。如下所示:

代码部分

//主要修改末尾为Dlg的文件,其完整代码如下

// MFCApplication2Dlg.cpp: 实现文件
//

Read more

记录第四周的C++作业


作业要求

/*
用Visual Studio 编写一个控制台程序,功能如下:
一、使用SMBIOS读取本机的MEMORY信息,并打印一下信息
[MEMORY]
NUM = 2
SIZE=32GB

[0]
LOCATOR=DIMM1
SIZE=16GB
TYPE=DDR4
SPEED=2666MHZ
MANUFACTURER=Micron

[1]
LOCATOR=DIMM1
SIZE=16GB
TYPE=DDR4
SPEED=2666MHZ
MANUFACTURER=Micron

注:可以参考RW上SMBIOS信息对照
*/

头文件

#pragma once //只编译一次,节省时间
/

Read more

记录第三周的C++作业


作业要求

"""
一、使用命令CPUInfo.exe -c 读取本机CPU的信息,并存储到INI格式的文本中:
示例如下:
[CPU]
Manufacturer=AuthenticAMD
BrandID=AMD Athlon Gold 3150U with Radeon Graphics
CPUID=0F81
Cores=2
HyperThread=True
MainClock=2396MHZ
L1CacheSize=192KB
L2CacheSize=1024KB
L3CacheSize=4096KB
二、使用命令CPUInfo.exe -r 读取INI文本中C

Read more

记录第二周的C++作业


作业要求

Visual Studio 编写一个控制台程序<程序名Members.exe为例>,功能如下:
第一阶段:依次输入姓名,性别,工号,电话,然后即时的显示出来。
第二阶段:把输入信息以下面格式保存在文本中,并且可以增加人员信息并保存:这个阶段程序完成后请存入6名以上同仁信息。
Index 1
Name: xxx
Sex: Male
ID: W00000
Number: 121
第三阶段:查询人员信息:
输入"Members.exe -find Index1""Members.exe -find xxx" "Member

Read more