Otoboku 发表于 2021-9-1 20:22

160 cm 之 010

# 010

和009 一样,进入循环后,取出每一个字母,加0xA,然后变回字符,组成一个新的串

```
lea   edx,
lea   eax,
push    edx             ; pLenth
push    eax             ; pValue
mov   , 1
mov   dword ptr , 2
call    ds:__vbaI4Var
lea   ecx,
push    eax             ; nStart
lea   edx,
push    ecx             ; pSrc
push    edx             ; pDst
call    ds:rtcMidCharVar       ;取出第n位字母
lea   eax,
lea   ecx,
push    eax             ; pSrc
push    ecx             ; pDst
call    ds:__vbaStrVarVal
push    eax             ; Str
call    ds:rtcAnsiValueBstr   ;变成ascii
add   ax, 0Ah   ;加0xa
jo      loc_40226A


movsx   edx, ax
push    edx             ; MultiByteStr
call    ds:rtcBstrFromAnsi       ;变回字母
mov   , eax
lea   eax,
lea   ecx,
push    eax             ; pvarg
lea   edx,
push    ecx             ; pvarSrc
push    edx             ; pRet
mov   dword ptr , 8
call    ebx ; __vbaVarCat   ;连在一起
mov   edx, eax      ; pSrc
lea   ecx, ; pDst
call    esi ; __vbaVarMove
lea   ecx, ; Str
call    ds:__vbaFreeStr
lea   eax,
lea   ecx,
push    eax
lea   edx,
```

然后比较,发现一个字符串

```
loc_40202B:
lea   eax,
lea   ecx,
push    eax             ; pValue2
push    ecx             ; pValue1
mov   , offset aKxyRoYxoMKmuon ; "kXy^rO|*yXo*m\\kMuOn*+"
mov   dword ptr , 8008h
call    ds:__vbaVarTstEq
test    ax, ax
jz      loc_402119;不等有就跳失败
```



## 注册机

那就倒过来反推,计算出来发现是 `aNoThEr oNe cRaCkEd !`

```
static string RegCode(string name)
{
StringBuilder sb = new StringBuilder();
foreach (char item in name)
{
    sb.Append((char)(item - 0xa));
}
return sb.ToString();
}
```

thghx 发表于 2021-9-1 21:11

很羡慕各位大神

tbloy 发表于 2021-9-2 00:00

很好的学习贴

aloveletter 发表于 2021-9-2 16:57


很好的学习贴

pur1n 发表于 2021-9-2 18:47

你好,可以把160CM文件发一份吗?教练,我也想学破解。

zxbia 发表于 2021-9-8 20:06

很好的学习贴{:1_893:}

luoxi888 发表于 2023-6-2 19:46

很羡慕各位大神
页: [1]
查看完整版本: 160 cm 之 010