【文章标题】: 加密解密第三版\2.1.4\TraceMe
【文章作者】: iEXE
【作者邮箱】: iexe2010@hotmail.com
【作者主页】: http://iexeiexe2010.spaces.live.com/default.aspx
【作者QQ号】: 603690023
【软件名称】: TraceMe
【软件大小】: -
【下载地址】: -
【加壳方式】: -
【保护方式】: -
【编写语言】: C
【使用工具】: OD
【操作平台】: win
【软件介绍】: -
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
俺刚来看雪,很菜,下面是俺的第一篇帖子
;跟踪至序列号验证例程
0040133F 90 NOP
00401340 /$ 55 PUSH EBP
00401341 |. 8B6C24 0C MOV EBP,DWORD PTR SS:[ESP+C]
00401345 |. 56 PUSH ESI
00401346 |. 57 PUSH EDI
00401347 |. 8B7C24 18 MOV EDI,DWORD PTR SS:[ESP+18] ; 用户名长度
0040134B |. B9 03000000 MOV ECX,3 ; 循环计数
00401350 |. 33F6 XOR ESI,ESI ; 清零
00401352 |. 33C0 XOR EAX,EAX ; 清零
00401354 |. 3BF9 CMP EDI,ECX
00401356 |. 7E 21 JLE SHORT TraceMe.00401379 ; 不大于则跳
00401358 |. 53 PUSH EBX ; 保存EBX准备循环
00401359 |> 83F8 07 /CMP EAX,7 ; 循环取(0-7)位密钥
0040135C |. 7E 02 |JLE SHORT TraceMe.00401360 ;
0040135E |. 33C0 |XOR EAX,EAX
00401360 |> 33D2 |XOR EDX,EDX
00401362 |. 33DB |XOR EBX,EBX
00401364 |. 8A1429 |MOV DL,BYTE PTR DS:[ECX+EBP] ; 取第 ECX(大于等于3) 个用户名字符
00401367 |. 8A98 30504000 |MOV BL,BYTE PTR DS:[EAX+405030] ; 密钥第EAX个BYTE
0040136D |. 0FAFD3 |IMUL EDX,EBX ; 第ECX个用户名字符与第EAX位密钥乘
00401370 |. 03F2 |ADD ESI,EDX ; 上述结果+ESI;(累加)
00401372 |. 41 |INC ECX ; 后一位 用户名
00401373 |. 40 |INC EAX ; 后一位 密钥
00401374 |. 3BCF |CMP ECX,EDI ; 第 3 至 用户名长度-1 次循环
00401376 |.^ 7C E1 \JL SHORT TraceMe.00401359 ; ---循环---
00401378 |. 5B POP EBX ; 恢复EBX寄存器
00401379 |> 56 PUSH ESI ; /<%ld>
0040137A |. 68 78504000 PUSH TraceMe.00405078 ; |Format = "%ld"
0040137F |. 55 PUSH EBP ; |s
00401380 |. FF15 9C404000 CALL DWORD PTR DS:[<&USER32.wsprintfA>] ; \wsprintfA
00401386 |. 8B4424 1C MOV EAX,DWORD PTR SS:[ESP+1C] ; 指向输入的序列号的指针
0040138A |. 83C4 0C ADD ESP,0C ; 未知
0040138D |. 55 PUSH EBP ; /计算出的序列号转换后的字串
0040138E |. 50 PUSH EAX ; |用户输入的序列号
0040138F |. FF15 04404000 CALL DWORD PTR DS:[<&KERNEL32.lstrcmpA>] ; \lstrcmpA 比较字串
00401395 |. F7D8 NEG EAX ; 对 EAX 取补 进位标志 置位
00401397 |. 1BC0 SBB EAX,EAX ; 带进位减;
00401399 |. 5F POP EDI
0040139A |. 5E POP ESI
0040139B |. 40 INC EAX ; +1
0040139C |. 5D POP EBP
0040139D \. C3 RETN
0040139E 90 NOP
//发现有源码,不再分析了,注册机:
// trackme.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "windows.h"
#include "iostream"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
char key[] = {0x0c,0x0a,0x13,0x09,0x0c,0x0b,0x0a,0x08};
int j = 0,r = 0;
char szUserName[51];
cout<<"Input The User Name:";
cin>>szUserName;
if (lstrlen(szUserName) < 5 )
{
cout<<"The Length of UserName must be greater than 4.\n";
system("pause");
return 1;;
}
for (int i = 3; i < lstrlen(szUserName); i ++)
{
if (j > 7) j = 0;
r = r + *(szUserName + i) * key[j];
j ++;
}
wsprintf(szUserName,"%ld",(unsigned int)r);
cout<<"The Serial Number is:";
cout<<szUserName;
cout<<"\nOk...\n";
system("pause");
return 0;
}
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
2010年03月13日 15:56:32
[课程]FART 脱壳王!加量不加价!FART作者讲授!