渗透TEA加密算法(3)

2021-04-05 03:23

渗透TEA加密算法

0040129E TEST EAX,EAX

004012A0 JE CrackMe_.004013F7

004012A6 MOV AL,BYTE PTR DS:[ESI+1]

004012A9 INC ESI

004012AA TEST AL,AL

; 密码要在0-9 a-f A-F之间

004012AC JNZ SHORT CrackMe_.00401272

004012AE LEA EDI,DWORD PTR SS:[ESP+2C]

004012B2 OR ECX,FFFFFFFF

004012B5 XOR EAX,EAX

004012B7 REPNE SCAS BYTE PTR ES:[EDI]

004012B9 NOT ECX

004012BB DEC ECX

; 密码长度要等于16

004012BC CMP ECX,10

这一段是验证密码的输入规则,密码必须为0-9 a-f A-F中的任意一个字符,并且密码长度要等于16。紧接着下面是把输入的密码字符型转成同字母的16进制。我就不贴代码了。看下面主要的地方。

0040130A LEA EAX,DWORD PTR SS:[ESP+10]

0040130E LEA ECX,DWORD PTR SS:[ESP+2C]

00401312 PUSH EAX

;这个参数值为1A2B3C4D5E6FABCD1A2BAC4D5E6FABCD,暂时不知道什么意思。 00401313 LEA EDX,DWORD PTR SS:[ESP+24]

00401317 PUSH ECX

;这个参数为1234567890ABCDEF,也就是我们输入的密码。

00401318 PUSH EDX

;这个参数全为0,应该是经过下面那个CALL后装返回值的。

00401319 CALL CrackMe_.00401410

来到这里后,看到有三个参数入栈,上面我加了说明。等走到00401339时先下个断,再dd edx,F8一下过了这个CALL看堆栈中EDX的返回值变成了D598F72A2C8CA076。看来这个极有可能就是TEA算法的地方。

我们先来看看TEA加密解密算法代码吧。我找了半天,现在分享出来:

void TEA_encipher(DWORD *data, DWORD *Key)

{

DWORD y=data[0];

DWORD z=data[1];

DWORD delta=0x9e3779b9;

DWORD sum=0;

DWORD a=Key[0];

DWORD b=Key[1];

DWORD c=Key[2];

DWORD d=Key[3];

for(int i=0;i<32;i++)

{


渗透TEA加密算法(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:(终极题库——最好的,又是电子表格)普法考试题库

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: