逆向学习笔记02——时间验证
逆向学习笔记——验证
验证类型:
- 本地验证
(1) 文件验证:后缀为 .int ; .dat ; .dll
(2) 实践验证:系统时间
(3) 注册表
(4) DEMO
(5) ……
- 网络验证
(1) C/S架构(Client/Server) 客户端/服务端
(2) B/S架构(Browser/Server) 浏览器端/服务端
(3) 基于TCP/IP协议 手机验证 密保
关键跳(Magic Jump)
破解程序:
- 修改HEX
- 修改汇编指令
练习实例:
MFC编写小段时间验证程序:
// TIME验证.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <windows.h> int main(int argc, char* argv[]) { SYSTEMTIME tagOldTime = {0}; SYSTEMTIME tagNewTime = {0}; // 获取程序运行时的当前时间. GetLocalTime(&tagOldTime); // 死循环,不停的判断. (假的死循环) while(TRUE) { // 实时获取当前时间. GetLocalTime(&tagNewTime); printf("%d年%d月%d日 星期%d %d:%d:%d:%d\r\n", tagNewTime.wYear, tagNewTime.wMonth, tagNewTime.wDay, tagNewTime.wDayOfWeek, tagNewTime.wHour, tagNewTime.wMinute, tagNewTime.wSecond, tagNewTime.wMilliseconds); // TIME验证 if(tagOldTime.wMinute + 1 <= tagNewTime.wMinute) { MessageBox(NULL, "本次的使用时间已经到期", "NULL", MB_ICONERROR); return 0; } // 暂停时间(睡眠) Sleep(1000); } return 0; }
破解方法:
1.找到关键跳

2.破解
1)修改HEX
7E 0C ==> 90 90

2)修改汇编指令
jle short 004010D8 ==> nop

2016-04-06 17:26:41

浙公网安备 33010602011771号