点评:CuteFTP的保护早期版本仍然比较严重,第一个密钥文件,然后改为注册码。它有一个3。x版本,作为滤网HCU(高裂化大学)。4版本可以变成注册版,但在输入注册码,它会连接到该公司的服务器进行验证,输入注册码后,就可以通过注册码,但通过






CuteFTP的保护早期版本仍然比较严重,第一个密钥文件,然后改为注册码。它有一个3。x版本,作为滤网HCU(高裂化大学)。4版本可以变成注册版,但在输入注册码,它将连接在其公司的服务器进行验证,输入注册码后,你可以按照注册码,但无法通过在线验证保存的注册码,这样下次启动时没有注册。你可以开始跟踪,当它开始找注册码,事实上所有的软件可以开始开始。

检查RegMon和Filemon并发现那里是一个注册表项称为key1,一些很长的和混乱的字符,你可以使用创建regqueryvalueexa为断点,然后遵循它,但注册表读的太多,和SoftICE条件断点不是很好(我用的regqueryvalueexa如果(BPX ESP * 8)= =key1 经过拆解,找到参照key1 字符串



015f:00489074乐章ESI,{它们!regqueryvalueexa }

015f:0048907a锦州004890a9

015f:0048907c mov ecx,{ 10 } ESP

015f:00489080 { 14 } LEA EDX,ESP

015f:00489084推EDX

00489085 015f:LEA EAX,{ 20 } ESP

015f:00489089推EBX

015f:0048908a推eax

015f:0048908b推00

015f:0048908d推0053e030 / / key1

015f:00489092推ECX

015f:00489093电话 / /读取注册表ESI

015f:00489095测试eax,eax

015f:00489097 004890a2 JNZ

015f:00489099乐章EDX,{ 10 } ESP

015f:0048909d推EDX

015f:0048909e叫EBP

015f:004890a0 JMP 00489108



…



对015f长度:00489108 mov ecx,{ 14 } / / ESP key1字符串

015f:0048910c CMP ECX,14 / /长度小于或等于0x14将继续检查

015f:0048910f乙脑0048911b

015f:00489111流行的EDI

015f:00489112弹出

015f:00489113 pop ebp

015f:00489114异或eax,eax / /袋的家伙

015f:00489116流行EBX

00489117 015f:add esp,10

015f:0048911a RET

015f:0048911b mov eax,{ 28 } ESP

015f:0048911f测试eax,eax

00489121 015f:锦州00489125

015f:MOV EAX 00489123 { },ECX

015f:00489125流行的EDI

015f:00489126弹出

015F:00489127 POP EBP

00489128 015f:mov eax,0000000 1

015f:0048912d pop ebx

015f:0048912e add esp,10

015f:00489131 RET



改变key1字符串到小于20的长度,asciiz串一遍。后与BPR断点的KEY1字符串阅读KEY1,就会看到它转换成资本key1和检查长度:



015f:004ab0f0 repnz scasb

015f:004ab0f2不是ECX

015f:004ab0f4 dec ecx

015f:004ab0f5 CMP ECX,0e

015f:004ab0f8锦州004ab16d



可以看出,长度应为14个字符。下一步,检查是否key1第一个字符是一个计算注册码的其他:



00491828 015f:CMP BYTE PTR {续},41 / / key1第一个字符

015f:0049182b锦州00491832

015f:0049182d流行EDI

015f:0049182e XOR EAX,EAX / /坏家伙

015f:00491830流行EBX

015f:00491831 RET

015f:ESI / / 00491832推以下的计算过程

015f:00491833乐章ESI、0000000 1

00491838 015f:MOV AL,{ EBX,ESI }

015f:0049183b推eax

015f:0049183c叫004917d0

00491841 015f:SHL EDI,05

00491844 015f:add esp,04

015f:00491847或EDI,eax

015f:00491849公司ESI

015f:0049184a CMP ESI,07

015f:0049184d JL 00491838

015f:0049184f MOV CL,{ 07 } EBX

015f:00491852推ECX

015f:00491853电话004917d0

00491858 015f:add esp,04

015f:0049185b LEA EDX,{ 00000000 } EDI * 4

00491862 015f:SHR eax,02

015f:00491865弹出

015f:00491866流行的EDI

015f:00491867或EAX,EDX

015f:00491869流行EBX

015f:0049186a RET



计算完成后,它开始比较。



015f:004ab0f0 repnz scasb

015f:004ab0f2不是ECX

015f:004ab0f4 dec ecx

015f:004ab0f5 CMP ECX,0e / /这就是句子长度

015f:004ab0f8锦州004ab16d

015f:004ab0fa推ESI

015f:004ab0fb叫004b1b8a

015f:004ab100推0e

015f:004ab102 LEA EAX,{ 20 } ESP

015f:004ab106推ESI

015f:004ab107推eax

015f:004ab108叫004af930

015f:004ab10d LEA ECX,{ 28 } ESP

015f:004ab111 MOV BYTE PTR { 36 } ESP,00

015f:004ab116推ECX

015f:004ab117打00491820 / /这就是计算

015f:004ab11c MOV EAX ESI,

015f:004ab11e推ESI

015f 004ab11f电话:00491510

015f:004ab124 LEA EDX,{ 20 } ESP

015f:004ab128 MOV EDI,eax

015f:004ab12a推EDX

015f:004ab12b推ESI

015f:004ab12c MOV BYTE PTR { 28 } ESP,00

015f:004ab131叫004916a0

015f:004ab136 LEA EAX,{ 38 } ESP

015f:004ab13a推0e / / 14字

015f:004ab13c LEA ECX,{ ESP 2c }

015f: / / 004ab140压入真正的注册码

015f: / / 004ab141推ECX虚假注册码

015f: / / 004b04d0 004ab142呼叫

015f:004ab147 add esp,2c

015f:004ab14a测试eax,eax

015f:004ab14c锦州004ab15e

015f:004ab14e mov EDX,ESP 2c } {

015f:004ab152或斧头,FFFF / /好人

015f:004ab156 MOV { EDX },EDI

015f:004ab158流行EDI

015f:004ab159弹出

015f:004ab15a add esp,20

015f:004ab15d RET

015f:004ab15e mov eax,{ ESP 2c }

015f:{ } 004ab162 MOV EAX,EDI

015f:004ab164流行EDI

015f:004ab165异或斧头,斧头 / /坏家伙

015f:004ab168弹出

015f:004ab169 add esp,20

015f:004ab16c RET



在这一点上,注册码被发现。根据以上的计算和比较的过程中,可以看出,注册码是不是叫什么名字,所以它没有读取用户名时开始。使用Regmon监视行动时,它显示在对话框中,发现它也读regusername关键,这显然是一个用户名。

健康的关键:

hkey_local_machine 软件 GlobalSCAPE公司协调 key1

hkey_local_machine 软件 GlobalSCAPE公司 regusername CuteFTP

hkey_classes_root PFC

最后一个键是存储日期,旧版本在这里。