最近在一个淘客行业的公司搬砖,主要做的是后台开发的工作,偶尔也参与参与一些业务~😝
一开始我们用的发单工具都是第三方的,市面上的发单工具也都用过,这里就不一一例举了。
随着业务的发展,发现三方工具很难满足需求,找定制开发呢代价又不菲,于是老板决定自己搞一个微信的发单工具,经过调研发现pc微信的逆向似乎要简单一些,稳定性也还ok!于是乎撸起袖子开干。
经过一段时间的学习研究(枯燥乏味😔),终于是有了些进展,搞出了一个微信2.8.0.121版本微信助手,在这个助手的基础上做了一个发单工具,跟后台配合试用。
这中间走了很多弯路,也跌了很多坑,搞了易语言,弄了C++,最后还用了C#来做客户端,一路摸爬滚打也是不易,头都快挠秃😄
最近刚迭代好微信版本3.2.1.154,功能全面,包含了大部分功能,也做了一个通用的微信工具,仿wetool的。
需要体验的小伙伴可以留言!!
为了初学逆向的小伙伴们少走些弯路,这里把之前做的2.8.0.121版本的源码分享出来,主要实现了这些功能:
登录回调
个人信息获取
数据库读取
通讯录读取
好友操作(删除、改备注、自动通过)
接收消息
发送消息
虽然功能不怎么全,但也可以让初学的小伙伴们借鉴一下。微信助手库是使用c++实现的,采用窗口的消息机制进行通讯。客户端是使用c#写的,这部分源码就不放出了,涉及到一些公司的业务逻辑。
这里分享一下C#客户端微信多开代码
using System;
using System.Diagnostics;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
namespace util
{
public enum DllInjectionResult
{
DllNotFound,
RunExeFail,
InjectionFailed,
Success
}
public class DllInjector
{
static readonly IntPtr INTPTR_ZERO = (IntPtr)0;
static DllInjector _instance;
UInt32 INFINITE = 0xFFFFFFFF;
Int32 PAGE_EXECUTE_READWRITE = 0x40;
Int32 MEM_COMMIT = 0x1000;
Int32 MEM_RESERVE = 0x2000;
Int32 MEM_RELEASE = 0x8000;
public static DllInjector GetInstance
{
get
{
if (_instance == null)
{
_instance = new DllInjector();
}
return _instance;
}
}
DllInjector() { }
//多开并注入dll
public DllInjectionResult Inject(string sExeName, string sDllPath,int port, ref int wxPid,string sDllPath2, bool isMutl=false)
{
string PortReleaseGuid = "8975BE8E-2D5B-10DE-B294-6917E6D89593";
var mutex = new Mutex(false,
string.Concat("Global/", PortReleaseGuid));
mutex.WaitOne();
try
{
if (isMutl)
{
this.CloseWxMutex();
}
if (!File.Exists(sDllPath))
{
return DllInjectionResult.DllNotFound;
}
STARTUPINFO si = new STARTUPINFO();
PROCESS_INFORMATION pi = new PROCESS_INFORMATION();
si.dwFlags = 1;
si.wShowWindow = 5;//SW_SHOW*/
StringBuilder exename = new StringBuilder(100