首页
社区
课程
招聘
[原创]看雪 2016CrackMe 攻防大赛--第21题
发表于: 2016-12-12 14:02 2547

[原创]看雪 2016CrackMe 攻防大赛--第21题

2016-12-12 14:02
2547
加壳了,不知道什么壳。
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直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//