文章目录
一、PC 端工具 hacktool 启动 main 函数分析
将 hacktool.exe 启动起来后 , 会在 main
函数中执行 HackCommand
的 Prepare()
方法 , 准备工作完毕后 , 执行 HackCommand
的 Run()
方法 ;
// hacktool.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include "HackCommand.h"
#define ADB_COMMAND "D:\\Changzhi\\dnplayer2\\adb.exe forward tcp:9527 tcp:9527"
int main()
{
system(ADB_COMMAND);
HackCommand command;
if (command.Prepare()) {
command.Run();
}
return 0;
}
//adb forward tcp:9527 tcp:9527
二、PC 端工具 hacktool 工程中的核心类 HackCommand 分析
准备阶段 : 对应 HackCommand
类的 Prepare()
方法 , 逆向调试前 ,先要做一些准备 , 如 :
- 建立网络连接
- 等待远程 cmd 程序响应
- 操作 adb 命令 , 将 adb 修改为 tcp 网络接口
运行阶段 : 对应 HackCommand
类的 Run()
方法 , 与用户命令进行交互 ;
模拟器检测 : HackCommand
类的 CheckEmulator()
方法 ;
每次交互时 , 显示文本界面 : HackCommand
类的 ShowInfo()
方法 ;
构造方法与析构方法如下 :
-
构造方法 :
HackCommand()
-
析构方法 :
~HackCommand()
HackCommand 类声明 :
#pragma once
#include "CNetwork.h"
class HackCommand
{
public:
HackCommand();
~HackCommand();
bool Prepare();
void Run();
void ShowInfo();
private:
CNetwork m_network;
};
项目位置 :