如何使用一个手机号注册两个微信号!

本文介绍了一种在不购买额外手机卡的情况下实现同一手机使用两个微信号的方法。通过解除已绑定手机号的方法,使得该手机号可以重新用于注册另一个微信号。

大家都知道,现在的微信更新以后手机就不能解绑了,只能换绑,有很多时候我们需要两个微信号,特别是做销售和做微商的朋友,难道我们必须再专门买一个手机卡养着吗,尤其对于苹果用户来说,两个卡就意味着需要再搞一个手机,太不方便了。

如何一个手机注册两个微信号

 

下面就介绍一个方法,首先需要把已经有的微信设置一个微信号,然后退出来,登录的时候选择找回密码,手机不在身边(或者手机不可用)系统会提示你用一个手机号发个短信,这也是最关键的一步,一定要找一个已经绑定微信并且已经实名的手机号来发送短信否则会把这个手机号绑定上去。

如何一个手机注册两个微信号

 

然后手机就收到一条短信,你之前的微信和随机密码就发到这个手机上了,你就可以登录去修改密码了,这时候你的微信已经没有手机绑定关系了,你的手机号就又可以注册一个微信了,是不是很方便呢。

如何一个手机注册两个微信号

<think>我们正在讨论的是微信逆向工程中,如何通过调用获取手机号码并实现添加好友的功能。根据引用内容,我们可以提取以下关键信息: 1. 引用[1]提供了企业微信根据手机号查用户信息并添加好友的汇编调用示例: ``` __asm { pushad pushfd mov ecx, dword ptr dwDialog call dword ptr dwCallSerch popfd popad } ``` 这里`dwDialog`可能是对话框对象指针,`dwCallSerch`是搜索函数的地址。 2. 引用[3]提到在iOS逆向中,微信自动添加好友时有一个判断条件,涉及`m_bSuspiciousUser`(可疑用户)和`isMMContact`(是否已经是联系人),以及一个弹窗(MMUIAlertView)。然后调用`verifyContactWithOpCode:opcode:`方法进行添加好友。 3. 引用[4]提到PC端微信的界面构建,虽然不直接相关,但说明微信界面控件(如对话框)的创建和管理。 目标:逆向分析微信(PC版)中通过手机号查找用户并添加好友的功能。 ### 步骤分析 #### 1. 定位手机号搜索功能的关键CALL - 在微信中,通过手机号查找用户通常发生在“添加好友”对话框。 - 使用逆向工具(如x64dbg)附加微信,打开“添加好友”对话框,输入手机号并点击搜索。 - 关键点: - 搜索字符串:如“搜索”、“查找”、“手机号”等。 - 按钮事件:点击搜索按钮时触发的函数。 引用[1]中的汇编代码展示了调用搜索函数的方法,其中`ecx`寄存器指向一个结构(可能是对话框对象),然后调用搜索函数。 #### 2. 分析搜索功能CALL的参数 - 动态调试:在搜索按钮点击事件处下断点,观察栈和寄存器。 - 参数分析: - 输入参数:手机号字符串的地址。 - 上下文对象:对话框对象(如引用[1]中的`dwDialog`)。 - 调用约定:微信PC版通常是`__thiscall`,即`ecx`传递this指针,参数通过栈传递。 #### 3. 获取搜索结果 - 搜索函数执行后,会返回一个用户信息结构体(或对象)的指针。 - 需要分析返回值的存储位置(通常是`eax`寄存器)和结构。 #### 4. 实现添加好友功能 - 引用[3]提到iOS中的添加好友方法`verifyContactWithOpCode:opcode:`,在PC版中可能有类似的函数。 - 添加好友需要两个关键信息: - 用户ID(或微信号) - 验证信息(可选) #### 5. 调用添加好友的CALL - 根据引用[1]的添加好友部分,提到HOOK好友信息回调,说明添加好友操作可能是一个异步过程,需要处理回调。 - 调用添加好友函数时,需要传递用户信息结构体和验证信息等参数。 ### 具体实现步骤(以PC微信为例) #### 步骤1:定位搜索手机号的CALL - 在x64dbg中附加微信进程(WeChat.exe)。 - 打开“添加好友”窗口(通过主界面“+”->“添加好友”)。 - 在字符串搜索中输入“手机号”,找到相关字符串,然后定位到引用该字符串的代码。 - 在搜索按钮点击事件处下断点,输入手机号并点击搜索,触发断点。 - 单步跟踪,找到实际的搜索函数(通常是一个`__thiscall`,ecx为对话框对象,参数1为手机号字符串)。 假设我们找到的搜索函数地址为`WeChatWin.dll + 0x123456`。 #### 步骤2:构造调用搜索函数的代码 - 需要获取当前对话框对象的指针(可以通过窗口句柄遍历得到,或者通过全局变量)。 - 手机号字符串需要转换为宽字符(Unicode)。 伪代码: ```c // 假设对话框对象指针为 pDialog DWORD pDialog = 0xXXXXXXXX; // 通过逆向获取 wchar_t* phone = L"13800138000"; // 手机号 // 定义搜索函数类型 typedef void (__thiscall *SearchByPhone_t)(void* pThis, wchar_t* phone); SearchByPhone_t SearchByPhone = (SearchByPhone_t)(WeChatWinBase + 0x123456); // 调用 __asm { mov ecx, pDialog push phone call SearchByPhone } ``` #### 步骤3:获取搜索结果 - 搜索完成后,微信会显示用户信息。我们需要在内存中获取这个用户信息结构体。 - 通常在搜索函数之后,结果会存储在对话框对象的某个成员变量中。通过逆向分析对话框对象的结构,找到存储用户信息的偏移。 例如,在对话框对象`+0x123`处有一个指针,指向用户信息结构体。 #### 步骤4:定位添加好友的CALL - 在用户信息显示后,点击“添加到通讯录”按钮,下断点跟踪。 - 引用[3]中提到iOS的添加好友方法,PC版可能有类似逻辑:先判断用户是否可疑或已是好友(弹窗),然后调用添加函数。 假设添加好友函数地址为`WeChatWin.dll + 0xABCDEF`,调用约定为`__thiscall`,参数为用户信息结构体和验证信息。 #### 步骤5:调用添加好友函数 - 需要构造验证信息(可选)。 - 调用添加函数。 伪代码: ```c // 假设用户信息结构体指针 pUserInfo // 验证信息 wchar_t* verifyMsg = L"你好,我是xxx"; // 添加好友函数类型 typedef void (__thiscall *AddFriend_t)(void* pThis, void* pUserInfo, wchar_t* verifyMsg); AddFriend_t AddFriend = (AddFriend_t)(WeChatWinBase + 0xABCDEF); // 调用 // 注意:第一个参数可能是某个管理器对象(如联系人管理器),需要逆向分析 void* pManager = ...; // 通过逆向获取 __asm { mov ecx, pManager push verifyMsg push pUserInfo call AddFriend } ``` ### 注意事项 1. **版本差异**:不同微信版本的偏移地址和结构体会变化,需要重新分析。 2. **异步处理**:添加好友操作可能是异步的,需要等待回调或检查结果状态。 3. **错误处理**:如引用[3]所述,需要处理用户已经是好友或可疑用户的情况(弹窗),否则程序可能崩溃。 4. **内存安全**:确保传递的参数是有效的内存地址,避免微信崩溃。 ### 总结流程图 ```mermaid graph TD A[启动微信] --> B[打开添加好友对话框] B --> C[输入手机号并点击搜索] C --> D[定位搜索函数CALL] D --> E[获取用户信息结构体] E --> F[点击添加到通讯录] F --> G[定位添加好友函数CALL] G --> H[调用添加好友函数] ``` ### 相关问题 1. 如何通过微信逆向获取联系人列表的CALL? 2. 微信添加好友时的验证信息如何加密传递? 3. 逆向分析微信时如何绕过其反调试机制? 4. 如何获取微信对话框对象的指针?</think>### 微信逆向分析:通过手机号获取用户信息并添加好友的实现 #### 核心步骤分析 1. **定位手机号搜索功能** - 在微信主界面触发"添加好友"对话框(引用[4]的`CDialogBuilder`相关函数) - 搜索特征字符串: - "手机号"、"添加手机联系人"等中文资源 - "m_bSuspiciousUser"、"isMMContact"等关键函数名(引用[3]) - 下断点观察输入手机号时的参数传递: ```asm ; 典型调用结构(引用[1]) mov ecx, dword ptr [dwDialog] ; 对话框对象指针 push 13800138000 ; 手机号参数 call dword ptr [dwCallSearch] ; 搜索功能CALL ``` 2. **解析搜索结果数据结构** - 搜索结果通常包含: ```c struct UserInfo { DWORD isContact; // 是否已是联系人 (isMMContact引用[3]) DWORD isSuspicious; // 可疑用户标志 (m_bSuspiciousUser引用[3]) wchar_t* wxid; // 微信号指针 wchar_t* nickname; // 昵称指针 DWORD* avatarPtr; // 头像数据指针 }; ``` - 关键验证逻辑(引用[3]): ```c if (user.isSuspicious && !user.isContact) { ShowAlert("可疑用户"); // MMUIAlertView弹窗 } ``` 3. **实现添加好友功能** - 定位添加好友CALL(引用[1][3]): ```asm ; iOS示例(引用[3]) call verifyContactWithOpCode:opcode: ; Windows示例 mov ecx, userInfoStruct ; 用户信息结构体 push verifyMsg ; 验证消息指针 call AddFriendFunction ``` - 核心参数: - ECX:用户信息结构体指针 - 栈参数1:验证消息字符串 - 栈参数2:操作码(通常为0) 4. **完整调用链实现** ```c // 搜索用户函数 UserInfo* SearchByPhone(DWORD dialogPtr, wchar_t* phone) { DWORD base = GetWeChatWinBase(); DWORD searchFunc = base + 0x123456; // 实际偏移需动态分析 UserInfo* result = nullptr; __asm { pushad mov ecx, dialogPtr push phone call searchFunc mov result, eax // 结果通常在EAX popad } return result; } // 添加好友函数 void AddFriend(UserInfo* user, wchar_t* verifyMsg) { DWORD base = GetWeChatWinBase(); DWORD addFunc = base + 0xABCDEF; // 实际偏移需动态分析 __asm { pushad mov ecx, user // 用户信息结构体 push 0 // 操作码 push verifyMsg // 验证消息 call addFunc add esp, 0x8 // 平衡堆栈 popad } } // 使用示例 void AddFriendByPhone(wchar_t* phone, wchar_t* msg) { DWORD dialog = FindAddFriendDialog(); // 定位对话框对象 UserInfo* user = SearchByPhone(dialog, phone); if (user && !user->isContact && !user->isSuspicious) { AddFriend(user, msg); } else { // 处理异常情况 } } ``` #### 关键注意事项 1. **安全验证机制**(引用[3]) - 必须检查`isSuspicious`和`isContact`标志 - 触发安全机制会导致弹窗警告(MMUIAlertView)或账号限制 2. **异步回调处理**(引用[1]) - 添加好友操作需要处理HOOK回调: ```c // HOOK好友验证回调函数 void __stdcall AddFriendCallback(DWORD status) { if (status == 0) { // 添加成功 } else { // 处理失败 } } ``` 3. **跨版本兼容** - 关键函数偏移随版本变化(如v3.9.5.81→v3.9.9.35) - 特征定位法: ```asm ; 搜索特征字节序列 68 ?? ?? ?? ?? // push phoneNumber B9 ?? ?? ?? ?? // mov ecx, object E8 ?? ?? ?? ?? // call searchFunction ``` 4. **反调试对策** - 使用动态模块加载绕过检测 - 在关键函数头部设置硬件断点而非软件断点 - 避免长时间附加调试器 #### 完整工作流 ```mermaid graph TD A[定位添加好友对话框] --> B[输入手机号触发搜索] B --> C[分析搜索CALL参数] C --> D[解析用户信息结构] D --> E{安全检测} E -->|通过| F[调用添加好友CALL] E -->|未通过| G[处理异常] F --> H[Hook回调函数] H --> I[获取添加结果] ``` ### 相关问题 1. 如何逆向定位微信对话框对象的内存地址? 2. 微信添加好友时的验证消息加密方式是什么? 3. 如何绕过微信的可疑用户检测机制? 4. 微信多版本兼容的CALL定位有什么技巧? 5. 逆向分析中如何处理微信的异步回调机制?
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值