-
-
[原创]看雪 2016CrackMe 攻防大赛--第21题
-
发表于: 2016-12-12 14:02 2547
-
加壳了,不知道什么壳。
esp定律搞定。
脱壳后是易语言的。
发现字符串tfosediwybedoc,试了试不对()。
只好自己跟了。
创建线程,主要的判断就在这。
取字符:
mid(pass,n,x)
n为开始位置,x为长度
从下边的结构中取一个字符:
00403ABB 8B5D D0 MOV EBX, DWORD PTR SS:[EBP-0x30]
00403ABE 8A03 MOV AL, BYTE PTR DS:[EBX]
00403AC0 50 PUSH EAX
00403AC1 68 01000000 PUSH 0x1
00403AC6 BB B0464000 MOV EBX, <1111111.E_chr>
00403ACB E8 E10A0000 CALL <1111111.j_E_Call_Kernel_Cmd> ; JMP 到 <1111111.E_Call_Kernel_Cmd>
比较函数:
跟了前两位发现是co.......
再看那个字符串,原来是倒了。。。。。
换成codebywidesoft,OK
esp定律搞定。
脱壳后是易语言的。
发现字符串tfosediwybedoc,试了试不对()。
只好自己跟了。
text:0040369B push 4044FFh .text:004036A0 push 3 .text:004036A5 mov eax, 1 .text:004036AA mov ebx, offset E_CreateThread .text:004036AF call j_E_Call_External_Cmd
创建线程,主要的判断就在这。
004044FF . 56 PUSH ESI ; 县城函数 00404500 . 57 PUSH EDI 00404501 . 53 PUSH EBX 00404502 . E8 8DF3FFFF CALL 1111111.00403894 00404507 . 5B POP EBX 00404508 . 5F POP EDI 00404509 . 5E POP ESI 0040450A . C3 RETN 判断长度是否等于0e.
00403960 8B45 F4 MOV EAX, DWORD PTR SS:[EBP-0xC] 00403963 3945 F8 CMP DWORD PTR SS:[EBP-0x8], EAX ; 判断注册码长度 正确长度0e
取字符:
004039EB A1 E0404800 MOV EAX, DWORD PTR DS:[0x4840E0] ; 注册码 004039F0 85C0 TEST EAX, EAX 004039F2 75 05 JNZ SHORT 1111111.004039F9 004039F4 B8 D7734600 MOV EAX, 1111111.004673D7 004039F9 50 PUSH EAX ; 注册码 004039FA 68 03000000 PUSH 0x3 004039FF BB 50464000 MOV EBX, <1111111.E_mid> 00403A04 E8 A80B0000 CALL <1111111.j_E_Call_Kernel_Cmd> ; JMP 到 <1111111.E_Call_Kernel_Cmd>
mid(pass,n,x)
n为开始位置,x为长度
从下边的结构中取一个字符:
00403ABB 8B5D D0 MOV EBX, DWORD PTR SS:[EBP-0x30]
00403ABE 8A03 MOV AL, BYTE PTR DS:[EBX]
00403AC0 50 PUSH EAX
00403AC1 68 01000000 PUSH 0x1
00403AC6 BB B0464000 MOV EBX, <1111111.E_chr>
00403ACB E8 E10A0000 CALL <1111111.j_E_Call_Kernel_Cmd> ; JMP 到 <1111111.E_Call_Kernel_Cmd>
dd 1 .rdata:004673DC dd 0Eh .rdata:004673E0 dd 't' .rdata:004673E4 dd 'f' .rdata:004673E8 dd 'o' .rdata:004673EC dd 's' .rdata:004673F0 dd 'e' .rdata:004673F4 dd 'd' .rdata:004673F8 dd 'i' .rdata:004673FC dd 'w' .rdata:00467400 dd 'y' .rdata:00467404 dd 'b' .rdata:00467408 dd 'e' .rdata:0046740C dd 'd' .rdata:00467410 dd 'o' .rdata:00467414 dd 'c'
比较函数:
00403AF2 FF75 F8 PUSH DWORD PTR SS:[EBP-0x8] 00403AF5 E8 FDFCFFFF CALL 1111111.004037F7 ; 比较
跟了前两位发现是co.......
再看那个字符串,原来是倒了。。。。。
换成codebywidesoft,OK
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
看原图
赞赏
雪币:
留言: