# Auto Account Machine (AAM)

🛠️ **自动化工具集 - 虚拟数据生成工具**

一个模块化、可扩展的命令行工具集，用于生成各种虚拟测试数据。

## ✨ 特性

- 🎯 **模块化设计** - 插件化架构，易于添加新工具
- 🚀 **开箱即用** - 简单的CLI界面，无需复杂配置
- 🔧 **高度可配置** - 支持多种输出格式和自定义选项
- 📦 **轻量级** - 最小依赖，快速安装
- 🌍 **跨平台** - 支持 macOS、Linux、Windows
- 🛡️ **反检测技术** - 使用最新的 rebrowser-puppeteer，降低被识别风险

## 📦 安装

### 本地安装

```bash
# 克隆仓库
git clone <repository-url>
cd auto-account-machine

# 安装依赖
npm install

# 测试运行
node src/index.js card
```

### 全局安装（可选）

```bash
# 在项目目录下
npm link

# 现在可以全局使用 aam 命令
aam --help
```

## 🚀 快速开始

### 生成信用卡

```bash
# 生成一张默认银联卡
node src/index.js card

# 或使用 npm script
npm run card
```

输出示例：
```
6228367541234567|08|28|456
```

## 📖 使用指南

### 信用卡生成器

#### 基本用法

```bash
# 生成一张银联卡
node src/index.js card

# 生成Visa卡
node src/index.js card -t visa

# 批量生成10张银联卡
node src/index.js card -t unionpay -n 10

# JSON格式输出
node src/index.js card -t visa -f json

# 美化格式输出
node src/index.js card -f pretty
```

#### 参数说明

| 参数 | 简写 | 说明 | 默认值 | 可选值 |
|------|------|------|--------|--------|
| --type | -t | 卡类型 | unionpay | unionpay, visa, mastercard, amex, discover |
| --count | -n | 生成数量 | 1 | 任意正整数 |
| --format | -f | 输出格式 | pipe | pipe, json, csv, pretty |

#### 支持的卡类型

```bash
# 查看所有支持的卡类型
node src/index.js card list-types
```

| 卡类型 | 说明 | 卡号长度 | CVV长度 |
|--------|------|----------|---------|
| unionpay | 中国银联 | 16 | 3 |
| visa | Visa | 16 | 3 |
| mastercard | MasterCard | 16 | 3 |
| amex | American Express | 15 | 4 |
| discover | Discover | 16 | 3 |

#### 输出格式

```bash
# 查看所有支持的输出格式
node src/index.js card list-formats
```

**Pipe 格式** (默认)
```
6228367541234567|08|28|456
```

**JSON 格式**
```json
{
  "number": "6228367541234567",
  "month": "08",
  "year": "28",
  "cvv": "456",
  "type": "中国银联 (UnionPay)"
}
```

**CSV 格式**
```
6228367541234567,08,28,456
```

**Pretty 格式**
```
Card Number: 6228367541234567
Expiry Date: 08/28
CVV: 456
Type: 中国银联 (UnionPay)
```

## 🔧 高级用法

### 管道操作

```bash
# 生成并保存到文件
node src/index.js card -n 100 > cards.txt

# 生成JSON格式并美化
node src/index.js card -f json | jq

# 批量生成CSV格式
node src/index.js card -t visa -n 50 -f csv > visa_cards.csv
```

### 脚本集成

```javascript
// 在Node.js项目中使用
const CardGenerator = require('./src/tools/card-generator/generator');

const generator = new CardGenerator();
const card = generator.generate('unionpay');

console.log(card);
// { number: '6228367541234567', month: '08', year: '28', cvv: '456', type: '中国银联 (UnionPay)' }
```

## 🏗️ 项目结构

```
auto-account-machine/
├── bin/
│   └── aam                      # CLI入口
├── src/
│   ├── index.js                 # 主入口和工具注册
│   ├── cli.js                   # CLI路由
│   ├── tools/                   # 工具集目录
│   │   └── card-generator/     # 信用卡生成器
│   │       ├── index.js        # 工具入口
│   │       ├── generator.js    # 生成逻辑
│   │       ├── config.js       # 配置
│   │       └── formatter.js    # 格式化
│   └── shared/                  # 共享模块
│       ├── utils.js            # 工具函数
│       ├── logger.js           # 日志
│       └── errors.js           # 错误处理
├── tests/                       # 测试
├── docs/                        # 文档
├── package.json
└── README.md
```

## 🔌 扩展开发

### 添加新工具

1. 在 `src/tools/` 创建新目录
2. 创建工具入口文件，导出符合以下接口的对象：

```javascript
module.exports = {
  name: 'tool-name',           // 工具名称（必需）
  alias: 'alias',              // 别名（可选）
  description: '工具描述',     // 描述（必需）
  execute: (options) => {      // 执行函数（必需）
    // 工具逻辑
  }
};
```

3. 在 `src/cli.js` 注册命令
4. 工具会自动被发现和加载

### 示例：创建新工具

```javascript
// src/tools/email-generator/index.js
module.exports = {
  name: 'email-generator',
  alias: 'email',
  description: '生成虚拟邮箱地址',
  execute: (options) => {
    // 实现邮箱生成逻辑
    console.log('generated@example.com');
  }
};
```

## 🧪 测试

```bash
# 运行测试（待实现）
npm test

# 手动测试
node src/index.js card -n 5
```

## 📋 待办事项

- [x] 信用卡生成器（支持Luhn算法）
- [x] 账号注册工具（支持步骤化流程）
- [x] 反检测技术（rebrowser-puppeteer）
- [x] 人类行为模拟
- [ ] 添加更多网站注册脚本
- [ ] 添加单元测试
- [ ] 验证码识别集成
- [ ] 代理池管理
- [ ] 发布到 npm

## 🤝 贡献

欢迎贡献代码、报告问题或提出建议！

1. Fork 项目
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启 Pull Request

## ⚠️ 免责声明

**重要提示：** 本工具生成的所有信用卡号仅供测试和教育目的使用。这些卡号是虚拟的，不具有任何实际的货币价值或购买能力。

- ❌ 请勿将生成的卡号用于任何非法活动
- ❌ 请勿尝试使用这些卡号进行真实交易
- ❌ 请勿用于欺诈、诈骗或其他违法行为

使用本工具进行非法活动是违法的，可能导致法律责任。我们强烈反对任何非法使用，并将配合执法部门对滥用行为进行调查。

**本工具仅用于：**
- ✅ 软件开发测试
- ✅ 教育和学习目的
- ✅ 系统集成测试
- ✅ UI/UX 原型设计

## 📄 许可证

MIT License - 详见 [LICENSE](LICENSE) 文件

## 📧 联系方式

如有问题或建议，请通过以下方式联系：

- 提交 Issue
- 发送 Pull Request

---

**⭐ 如果这个项目对您有帮助，请给个星标支持！**
