文章      动态     相关文章     最新文章     手机版动态     相关动态     |   首页|会员中心|保存桌面|手机浏览

a0689o

http://keair.bhha.com.cn/coma0689o/

相关列表
文章列表
  • 暂无文章
推荐文章
联系方式
  • 联系人:李先生
  • 电话:13549316734
wxid加好友工具插件,代码转换器,可在安卓手机操作,易语言开源版!手机转换器「wxid加好友工具插件,代码转换器,可在安卓手机操作,易语言开源版!」
发布时间:2025-01-20        浏览次数:7        返回列表

网上这个工具卖的挺厉害的,那么我今天就分享出来,然后在给大家演示一下,免得大家以为我分享的工具是唬人的,我提前说明一下我这边开源的工具都是确保能用的,我测试好了才会分享出来,用不了的也不会开源,然后它可以通过WXID直接加对方为好友,不需要小程序查的,可以批量添加哈,这款工具需要一个“etcp_ultimate.ec”模块和“WeChatHook.dll”组件即可实现,下面我都会分享出来。

UI界面:

我测试一下哈现在是2023年11月20号,然后下面是一个没有设置了微信号的账号,就是只有WXID。【仅供教程演示】

然后通过工具添加后,可以直接到对方的主页上面,能实现添加好友的效果,如下图所示。

dll分享:

=============================================================

.版本 2

.程序集 ByteBuffer

.程序集变量 data, 字节集

.程序集变量 pdata, 整数型

.程序集变量 size, 整数型

.程序集变量 position, 整数型

.子程序 _初始化, , , 当基于本类的对象被创建后,此方法会被自动调用

.子程序 _销毁, , , 当基于本类的对象被销毁前,此方法会被自动调用

data = { }

pdata = 0

size = 0

position = 0

.子程序 GetBuffer, 字节集, 公开

.如果真 (position < size)

  返回 (_readBytes (pdata, position))

.如果真结束

返回 (data)

.子程序 CreateBuffer, , 公开

.参数 len, 整数型

data = 取空白字节集 (len)

pdata = GetBinAddr (data)

size = len

.子程序 ByteBuffer, , 公开

.参数 bin, 字节集

data = bin

pdata = GetBinAddr (data)

size = 取字节集长度 (data)

.子程序 GetByte, 字节型, 公开

.局部变量 ret, 字节型

ret = _readByte (_add (pdata, position))

position = _add (position, 1)

返回 (ret)

.子程序 GetShort, 整数型, 公开

.局部变量 ret, 整数型

ret = _readWord (_add (pdata, position))

position = _add (position, 2)

返回 (ret)

.子程序 GetInt, 整数型, 公开

.局部变量 ret, 整数型

ret = _readDword (_add (pdata, position))

position = _add (position, 4)

返回 (ret)

.子程序 GetBin, 字节集, 公开

.参数 len, 整数型

.局部变量 ret, 字节集

.如果真 (len = 0)

  返回 ({ })

.如果真结束

ret = _readBytes (_add (pdata, position), len)

position = _add (position, len)

返回 (ret)

.子程序 GetToken, 字节集, 公开

返回 (GetBin (GetShort ()))

.子程序 SetInt, , 公开

.参数 val, 整数型

_writeDword (_add (pdata, position), val)

position = _add (position, 4)

.子程序 SetShort, , 公开

.参数 val, 短整数型

_writeWord (_add (pdata, position), val)

position = _add (position, 2)

.子程序 SetByte, , 公开

.参数 val, 字节型

_writeByte (_add (pdata, position), val)

position = _add (position, 1)

.子程序 SetBin, , 公开

.参数 val, 字节集

_writeBytes (_add (pdata, position), val)

position = _add (position, 取字节集长度 (val))

.子程序 SetToken, , 公开

.参数 val, 字节集

.局部变量 len, 整数型

len = 取字节集长度 (val)

SetShort (len)

.如果真 (len ≠ 0)

  _writeBytes (_add (pdata, position), val)

  position = _add (position, 取字节集长度 (val))

.如果真结束

========================================================

help:

========================================================

.版本 2

.程序集 help

.子程序 CopyMemory

.参数 内存地址, 整数型

.参数 数据源, 整数型

.参数 长度, 整数型

置入代码 ({ 81, 87, 86, 139, 77, 16, 139, 125, 8, 139, 117, 12, 243, 164, 94, 95, 89 })

.子程序 _readByte, 字节型

.参数 地址, 整数型

置入代码 ({ 139, 69, 8, 15, 182, 0, 93, 194, 4, 0 })

返回 (0)

.子程序 _readBytes, 字节集

.参数 地址, 整数型

.参数 长度, 整数型

.局部变量 字节集, 字节集

字节集 = 取空白字节集 (长度)

CopyMemory (GetBinAddr (字节集), 地址, 长度)

返回 (字节集)

.子程序 _readWord, 短整数型

.参数 地址, 整数型

置入代码 ({ 139, 69, 8, 15, 183, 0, 93, 194, 4, 0 })

返回 (0)

.子程序 _readDword, 整数型

.参数 地址, 整数型

置入代码 ({ 139, 69, 8, 139, 0, 93, 194, 4, 0 })

返回 (0)

.子程序 _writeDword

.参数 内存地址, 整数型

.参数 值, 整数型

置入代码 ({ 81, 139, 77, 12, 139, 69, 8, 137, 8, 89, 93, 194, 8, 0 })

.子程序 _writeWord

.参数 地址, 整数型

.参数 值, 短整数型

置入代码 ({ 81, 102, 139, 69, 12, 139, 77, 8, 102, 137, 1, 89, 93, 194, 8, 0 })

.子程序 _writeByte

.参数 地址, 整数型

.参数 值, 字节型

置入代码 ({ 81, 138, 69, 12, 139, 77, 8, 136, 1, 89, 93, 194, 8, 0 })

.子程序 _writeBytes

.参数 地址, 整数型

.参数 内容, 字节集

CopyMemory (地址, GetBinAddr (内容), 取字节集长度 (内容))

.子程序 _add, 整数型

.参数 数值1, 整数型

.参数 数值2, 整数型

置入代码 ({ 139, 69, 8, 3, 69, 12, 93, 194, 8, 0 })

返回 (0)

.子程序 _add2, 整数型

.参数 数值1, 整数型

.参数 数值2, 整数型

.参数 数值3, 整数型

置入代码 ({ 139, 69, 8, 3, 69, 12, 3, 69, 16, 93, 194, 12, 0 })

返回 (0)

.子程序 _imul, 整数型

.参数 数值1, 整数型

.参数 数值2, 整数型

置入代码 ({ 81, 139, 69, 8, 139, 77, 12, 15, 175, 193, 89, 93, 194, 8, 0 })

返回 (0)

.子程序 GetBinAddr, 整数型

.参数 字节集变量, 字节集, 参考

置入代码 ({ 139, 69, 8, 139, 0, 131, 248, 0, 116, 3, 131, 192, 8, 201, 194, 4, 0 })

返回 (0)

.子程序 GetStrAddr, 整数型

.参数 StringA, 文本型

置入代码 ({ 139, 69, 8, 139, 0, 201, 194, 4, 0 })

返回 (0)

.子程序 injectDll

.参数 hProcess, 整数型

.参数 hThread, 整数型

.参数 dll, 文本型

.局部变量 CONTEXT, CONTEXT

.局部变量 tmp, 整数型

.局部变量 addr, 整数型

.局部变量 Code, 字节集

tmp = VirtualAllocEx (hProcess, 0, 1024, 4096, 64)

CONTEXT.ContextFlags = 65543

ZwGetContextThread (hThread, CONTEXT)

addr = CONTEXT.Eip

CONTEXT.Eip = tmp

Code = { 96, 232, 0, 0, 0, 0, 88, 131, 192, 19, 80, 184 } + 到字节集 (_取函数入口 (“kernel32.dll”, “LoadLibraryA”)) + { 255, 208, 97 } + { 104 } + 到字节集 (addr) + { 195 } + 到字节集 (dll)

WriteProcessMemory_Bin (hProcess, tmp, Code, 取字节集长度 (Code), 0)

ZwSetContextThread (hThread, CONTEXT)

.子程序 取子程序真实地址, 整数型, , 支持任何参数

.参数 子程序指针, 子程序指针

置入代码 ({ 83, 81, 139, 69, 8, 64, 139, 8, 128, 249, 232, 117, 248, 139, 72, 1, 141, 92, 8, 5, 139, 11, 193, 225, 8, 129, 249, 0, 85, 139, 236, 141, 64, 4, 117, 225, 139, 195, 89, 91, 201, 194, 4, 0 })

返回 (0)

.子程序 取文本中间内容, 文本型

.参数 欲取全文本, 文本型

.参数 前面文本, 文本型

.参数 后面文本, 文本型

.参数 起始搜寻位置, 整数型, 可空

.参数 是否区分大小写, 逻辑型, 可空

.局部变量 局_位置, 整数型

.局部变量 局_位置1, 整数型

.局部变量 局_前面文本, 文本型

.局部变量 局_后面文本, 文本型

局_前面文本 = 子文本替换 (前面文本, “#引号”, #引号, , , 真)

局_后面文本 = 子文本替换 (后面文本, “#引号”, #引号, , , 真)

是否区分大小写 = 取反 (是否区分大小写)

局_位置 = 寻找文本 (欲取全文本, 局_前面文本, 起始搜寻位置, 是否区分大小写)

.如果真 (局_位置 ≠ -1)

  局_位置 = 局_位置 + 取文本长度 (局_前面文本)

.如果真结束

局_位置1 = 寻找文本 (欲取全文本, 局_后面文本, 局_位置, 是否区分大小写)

.如果真 (局_位置 = -1 或 局_位置1 = -1)

  返回 (“”)

.如果真结束

返回 (取文本中间 (欲取全文本, 局_位置, 局_位置1 - 局_位置))

.子程序 _取函数入口, 整数型

.参数 动态链接库路径, 文本型, , 库名 例:user32.dll

.参数 欲截获的函数名, 文本型, , 函数名 例:GetWindow

.局部变量 hLibModule, 整数型

hLibModule = GetModuleHandle (动态链接库路径)

.如果真 (hLibModule = 0)

  返回 (0)

.如果真结束

返回 (Ams_GetProcAddress (hLibModule, 欲截获的函数名))

.子程序 Ams_GetProcAddress, 整数型, , 为什么用asm呢? 万恶的apphelp.dll

.参数 模块句柄, 整数型

.参数 函数名称, 文本型

置入代码 ({ 139, 93, 8, 131, 251, 0, 116, 58, 139, 67, 60, 3, 195, 139, 80, 120, 3, 211, 139, 74, 24, 139, 66, 32, 81, 81, 80, 51, 192, 131, 201, 255, 139, 125, 12, 139, 63, 242, 174, 247, 209, 88, 81, 139, 125, 12, 139, 63, 139, 52, 24, 3, 243, 243, 166, 89, 116, 14, 131, 192, 4, 94, 78, 86, 117, 232, 51, 192, 201, 194, 8, 0, 94, 89, 43, 206, 139, 66, 36, 141, 4, 72, 15, 183, 4, 24, 139, 74, 28, 141, 4, 129, 139, 4, 24, 3, 195, 201, 194, 8, 0 })

返回 (0)

' 01001102  8B5D 08     mov ebx,dword ptr ss:[ebp+0x8]

' 01001105  83FB 00     cmp ebx,0x0

' 01001108  74 3D      je Xaa.01001147

' 0100110A  8B43 3C     mov eax,dword ptr ds:[ebx+0x3C]

' 0100110D  03C3      add eax,ebx

' 0100110F  8B50 78     mov edx,dword ptr ds:[eax+0x78]

' 01001112  03D3      add edx,ebx

' 01001114  8B4A 14     mov ecx,dword ptr ds:[edx+0x14]

' 01001117  8B42 20     mov eax,dword ptr ds:[edx+0x20]

' 0100111A  51       push ecx

' 0100111B  51       push ecx

' 0100111C  50       push eax

' 0100111D  33C0      xor eax,eax

' 0100111F  83C9 FF     or ecx,0xFFFFFFFF

' 01001122  8B7D 0C     mov edi,dword ptr ss:[ebp+0xC]

' 01001125  8B3F      mov edi,dword ptr ds:[edi]

' 01001127  F2:AE      repne scas byte ptr es:[edi]

' 01001129  F7D1      not ecx

' 0100112B  58       pop eax

' 0100112C  51       push ecx

' 0100112D  8B7D 0C     mov edi,dword ptr ss:[ebp+0xC]

' 01001130  8B3F      mov edi,dword ptr ds:[edi]

' 01001132  8B3418     mov esi,dword ptr ds:[eax+ebx]

' 01001135  03F3      add esi,ebx

' 01001137  F3:A6      repe cmps byte ptr es:[edi],byte ptr ds:[esi]

' 01001139  59       pop ecx

' 0100113A  74 0E      je Xaa.0100114A

' 0100113C  83C0 04     add eax,0x4

' 0100113F  5E       pop esi

' 01001140  4E       dec esi

' 01001141  56       push esi

' 01001142 ^ 75 E8      jnz Xaa.0100112C

' 01001144  33C0      xor eax,eax

' 01001146  C9       leave

' 01001147  C2 0800     retn 0x8

' 0100114A  5E       pop esi

' 0100114B  59       pop ecx

' 0100114C  2BCE      sub ecx,esi

' 0100114E  8B42 24     mov eax,dword ptr ds:[edx+0x24]

' 01001151  8D0448     lea eax,dword ptr ds:[eax+ecx*2]

' 01001154  0FB70418    movzx eax,word ptr ds:[eax+ebx]

' 01001158  8B4A 1C     mov ecx,dword ptr ds:[edx+0x1C]

' 0100115B  8D0481     lea eax,dword ptr ds:[ecx+eax*4]

' 0100115E  8B0418     mov eax,dword ptr ds:[eax+ebx]

' 01001161  03C3      add eax,ebx

' 01001163  C9       leave

' 01001164  C2 0800     retn 0x8

.子程序 UnicodeToAnsi, 文本型

.参数 宽文本字节集, 字节集, , Unicode

.局部变量 临时文本, 字节集

.局部变量 窄文本长, 整数型, , , 单位: Word

.局部变量 宽文本长, 整数型

宽文本长 = 取字节集长度 (宽文本字节集) ÷ 2

窄文本长 = WideCharToMultiByte (936, 0, 宽文本字节集, 宽文本长, 临时文本, 0, “”, 0)

临时文本 = 取空白字节集 (窄文本长)

WideCharToMultiByte (936, 0, 宽文本字节集, 宽文本长, 临时文本, 窄文本长, “”, 0)

临时文本 = 子字节集替换 (临时文本, { 0 }, { }, , )

返回 (到文本 (临时文本))

.子程序 AnsiToUnicode, 字节集

.参数 窄文本, 文本型, , Ansi文本

.局部变量 数据2, 字节集

.局部变量 长度, 整数型

.如果真 (窄文本 = “”)

  返回 ({ 0, 0 })

.如果真结束

长度 = MultiByteToWideChar (0, 0, 窄文本, _add (取文本长度 (窄文本), 1), 数据2, 0)

数据2 = 取空白字节集 (_imul (长度, 2))

MultiByteToWideChar (0, 0, 窄文本, _add (取文本长度 (窄文本), 1), 数据2, _imul (长度, 2))

返回 (数据2)

.子程序 公共_RC4

.参数 待加密数据, 字节集

.参数 返回数据, 字节集

.参数 密码字节集, 字节集

.局部变量 S, 字节型, , "256"

.局部变量 K, 字节型, , "256"

.局部变量 i, 整数型

S [1] = 0

K [1] = 0

置入代码 ({ 139, 69, 252, 131, 192, 8, 185, 0, 1, 0, 0, 51, 219, 42, 217, 136, 28, 3, 226, 247, 80, 139, 85, 16, 139, 18, 139, 122, 4, 131, 194, 8, 139, 117, 248, 131, 198, 8, 185, 0, 1, 0, 0, 51, 219, 59, 223, 114, 2, 51, 219, 138, 36, 19, 136, 38, 70, 67, 226, 241, 95, 51, 219, 129, 238, 0, 1, 0, 0, 51, 192, 185, 0, 1, 0, 0, 138, 20, 48, 2, 218, 138, 20, 56, 2, 218, 138, 20, 56, 138, 52, 59, 136, 52, 56, 136, 20, 59, 64, 226, 231, 139, 117, 8, 139, 54, 139, 78, 4, 137, 77, 244, 131, 198, 8 })

返回数据 = 取空白字节集 (i)

置入代码 ({ 139, 77, 244, 139, 85, 12, 139, 18, 131, 194, 8, 51, 192, 51, 219, 81, 15, 182, 200, 254, 193, 82, 138, 52, 57, 2, 222, 138, 20, 59, 136, 20, 57, 136, 52, 59, 2, 214, 15, 182, 210, 138, 20, 58, 138, 12, 48, 50, 202, 90, 136, 12, 16, 64, 89, 226, 214 })

============================================================

程序集代码:

============================================================

.版本 2

.数据类型 MyData

  .成员 Name, 文本型

  .成员 User, 文本型

  .成员 Wxid, 文本型

  .成员 Phone, 文本型

.数据类型 UserData

  .成员 socket, 整数型

  .成员 Name, 文本型

  .成员 User, 文本型

  .成员 Wxid, 文本型

  .成员 V1, 文本型

  .成员 Note, 文本型

.数据类型 WeChatMsg

  .成员 Type, 整数型

  .成员 Wxid, 文本型

  .成员 Msg, 文本型

.数据类型 PROCESS_INFORMATION

  .成员 hProcess, 整数型

  .成员 hThread, 整数型

  .成员 dwProcessId, 整数型

  .成员 dwThreadId, 整数型

.数据类型 STARTUPINFO

  .成员 cb, 整数型

  .成员 lpReserved, 文本型

  .成员 lpDesktop, 文本型

  .成员 lpTitle, 文本型

  .成员 dwX, 整数型

  .成员 dwY, 整数型

  .成员 dwXSize, 整数型

  .成员 dwYSize, 整数型

  .成员 dwXCountChars, 整数型

  .成员 dwYCountChars, 整数型

  .成员 dwFillAttribute, 整数型

  .成员 dwFlags, 整数型

  .成员 wShowWindow, 短整数型

  .成员 cbReserved2, 短整数型

  .成员 lpReserved2, 整数型

  .成员 hStdInput, 整数型

  .成员 hStdOutput, 整数型

  .成员 hStdError, 整数型

.数据类型 CONTEXT, , CONTEXT

  .成员 ContextFlags, 整数型, , , 0

  .成员 Dr0, 整数型, , , 4

  .成员 Dr1, 整数型, , , 8

  .成员 Dr2, 整数型, , , c

  .成员 Dr3, 整数型, , , 10

  .成员 Dr6, 整数型, , , 14

  .成员 Dr7, 整数型, , , 18

  .成员 ControlWord, 整数型, , , 1c

  .成员 StatusWord, 整数型, , , 20

  .成员 TagWord, 整数型, , , 24

  .成员 ErrorOffset, 整数型, , , 28

  .成员 ErrorSelector, 整数型, , , 2c

  .成员 DataOffset, 整数型, , , 30

  .成员 DataSelector, 整数型, , , 34

  .成员 RegisterArea, 字节型, , "80", 38

  .成员 Cr0NpxState, 整数型, , , 88

  .成员 SegGs, 整数型, , , 8c

  .成员 SegFs, 整数型, , , 90

  .成员 SegEs, 整数型, , , 94

  .成员 SegDs, 整数型, , , 98

  .成员 Edi, 整数型, , , 9c

  .成员 Esi, 整数型, , , a0

  .成员 Ebx, 整数型, , , a4

  .成员 Edx, 整数型, , , a8

  .成员 Ecx, 整数型, , , ac

  .成员 Eax, 整数型, , , b0

  .成员 Ebp, 整数型, , , b4

  .成员 Eip, 整数型, , , b8

  .成员 SegCs, 整数型, , , bc

  .成员 EFlags, 整数型, , , c0

  .成员 Esp, 整数型, , , c4

  .成员 SegSs, 整数型, , , c8

  .成员 ExtendedRegisters, 字节型, , "512", cc