rios0rios0/to-key

GitHub: rios0rios0/to-key

一款已停止维护的 iOS 教育性应用,用 Objective-C 重新实现经典 crack-me 序列号算法并提供可配置随机密码生成功能。

Stars: 3 | Forks: 0

To Key

Latest Release License

一款 iOS 应用程序,将经典逆向工程 crack-me 挑战的 keygen 求解器与可配置的随机密码生成器捆绑在一起。该项目于 2012 年作为一个教育练习而开发,旨在使用 Objective-C 和 UIKit 框架研究序列号密钥算法及移动端开发。 **编程语言:** Objective-C (UIKit) | **IDE:** Xcode | **状态:** 已停止维护 (2012-03-29) ## 功能 - **Crack-me key 生成器** —— 通过重新实现注册算法来解决四个经典的 keygen 挑战: - **EvilCode's Keygen-Me #1** —— 遍历每个字符,应用左移 2 位并加上 82,然后通过乘以 2748 推导出第二个 key;以 `~Evil---Code` 格式输出序列号 - **Boonz KeygenMe #1** —— 减去每个 ASCII 值并加上一个校正常数 (+25),然后对中间 key 进行立方运算;以 `Bon---41720F48` 格式输出序列号 - **Ghost Keygen-me (Dinamico)** —— 在累加器循环中对每个字符应用 XOR 10 并加上 2;以 `C` 格式输出序列号 - **Muckis Crackme #2** —— 对每个字符结合使用左移 4 / 右移 5 以及 XOR 和加法,然后对与魔数常数 (789999) 的差值求平方;以 `CM2--` 格式输出序列号 - **密码生成器** —— 一次最多可生成 15 个随机密码,字符组成可配置: - 四个独立的滑块,用于控制小写字母、大写字母、数字和特殊字符的数量 - 密码总长度上限为 20 个字符,并配有实时计数器 - 垂直滑块 UI(通过 `CGAffineTransform` 旋转 270 度) - **基于导航的 UI** —— 采用主从架构,包含一个 `UINavigationController`,从 plist 数据源加载的 `UITableView` 主列表,以及两个详情屏幕(keygen 输入/输出和密码配置) - **基于 Plist 的数据模型** —— 所有 crack-me 条目和密码程序条目均在 `OptionsList.plist` 中定义,每个条目包含名称、描述和图标字段 ## 技术 | 组件 | 技术 | |-----------|------------| | 语言 | Objective-C(手动 retain/release,无 ARC) | | 框架 | UIKit (iOS SDK 3.0+) | | UI | XIB/NIB 文件(MainWindow、MasterViewController、DetailViewController、PasswordViewController) | | 构建系统 | Xcode 项目(`project.pbxproj`) | | 目标架构 | ARMv7 | | 屏幕方向 | 仅支持竖屏 | ## 项目结构 ``` Project/ To Key.xcodeproj/ # Xcode project configuration To Key/ main.m # Application entry point AppDelegate.h/.m # App lifecycle, sets up UINavigationController MasterViewController.h/.m/.xib # Table view listing crack-mes and password tools DetailViewController.h/.m/.xib # Keygen input/output view with 4 algorithm implementations PasswordViewController.h/.m/.xib # Password generator with 4 vertical sliders OptionsList.plist # Data source defining all menu entries (names, icons, descriptions) To Key-Info.plist # Bundle configuration (version 1.0, bundle ID, icon files) To Key-Prefix.pch # Precompiled header (UIKit + Foundation) en.lproj/ # English localization strings *.png # App icons, backgrounds, per-author avatar icons Imgs/ # Source PSD and PNG assets (icons, backgrounds, table headers/footers) Build/ # Pre-built .app bundle ``` ## 技术细节 ### Keygen 算法 这四种算法均针对输入字符串的 ASCII 字符值进行运算。它们逐个字符进行迭代,使用按位运算(移位、XOR)和算术运算累加生成中间 key 值。最终的序列号 key 被格式化为带有特定算法前缀和分隔符的十六进制字符串。所有 key 计算均使用 `DWORD` 类型(`unsigned long`),这与原始 x86 crack-me 目标的 32 位寄存器大小相匹配。 ### 密码生成 密码生成器根据滑块的值,通过拼接小写字母(`a-z`)、大写字母(`A-Z`)、数字(`0-9`)和特殊字符(`!@#$%...`)的子集来构建字符池。然后使用 `rand()` 从该组合池中选择字符,每次调用生成 15 个密码。四个滑块受到约束,使其总和不超过 20。 ## 安装说明 1. 在 Xcode 中打开 `Project/To Key.xcodeproj` 2. 选择 iOS 模拟器或已连接的设备作为构建目标 3. 构建并运行 (Cmd+R) **注意:** 本项目使用手动 retain/release (MRR) 内存管理,且目标为 iOS SDK 3.0+。如果不进行修改,可能需要旧版本的 Xcode 才能编译。 ## 贡献指南 本项目已不再积极维护。有关历史构建信息,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。 ## 许可证 本项目基于 MIT 许可证授权。详情请参阅 [LICENSE](LICENSE) 文件。
标签:CVE监控, iOS开发, Objective-C, 云资产清单, 密码生成器, 密钥生成器, 教育项目, 逆向工程