Tags: re qt 

Rating:

just a solution:

by tracing your input (must be 16 chars) as license (eg hwbp) you will find license checking algo:
```
00007FF77E134BCB | 44 0F B6 C0 | movzx r8d,al |
00007FF77E134BCF | 0F B6 CB | movzx ecx,bl |
00007FF77E134BD2 | C0 E1 06 | shl cl,6 |
00007FF77E134BD5 | C0 FB 02 | sar bl,2 |
00007FF77E134BD8 | 0A CB | or cl,bl |
00007FF77E134BDA | 80 F1 AE | xor cl,AE |
00007FF77E134BDD | 0F B6 D1 | movzx edx,cl |
00007FF77E134BE0 | C0 FA 03 | sar dl,3 |
00007FF77E134BE3 | C0 E1 05 | shl cl,5 |
00007FF77E134BE6 | 0A D1 | or dl,cl |
00007FF77E134BE8 | 80 F2 66 | xor dl,66 |
00007FF77E134BEB | 0F B6 C2 | movzx eax,dl |
00007FF77E134BEE | D0 F8 | sar al,1 |
00007FF77E134BF0 | C0 E2 07 | shl dl,7 |
00007FF77E134BF3 | 41 0F B6 D8 | movzx ebx,r8b |
00007FF77E134BF7 | C0 FB 04 | sar bl,4 |
00007FF77E134BFA | 0A DA | or bl,dl |
00007FF77E134BFC | 0A D8 | or bl,al |
00007FF77E134BFE | F6 D3 | not bl |
00007FF77E134C00 | 41 32 D8 | xor bl,r8b |
00007FF77E134C03 | 3A 1E | cmp bl,byte ptr ds:[rsi] |
00007FF77E134C05 | 75 17 | jne snake.7FF77E134C1E |
00007FF77E134C07 | F6 D3 | not bl |
00007FF77E134C09 | FF C7 | inc edi |
00007FF77E134C0B | 48 FF C6 | inc rsi |
00007FF77E134C0E | 49 8B 47 18 | mov rax,qword ptr ds:[r15+18] |
00007FF77E134C12 | 3B 78 04 | cmp edi,dword ptr ds:[rax+4] | checkkkkkkkk
00007FF77E134C15 | 7C 99 | jl snake.7FF77E134BB0 |
```

by using some operations it checks license char by char (result of every loop is used for next one)

final values should be :
01 95 66 3E 1B 56 64 2C 28 0A 9A 04 AD 0C C8 D9

I just edited code inside debugger to bruteforce every char

valid license: "1Lov3oldArc4de!!"

//TMT