手头有个旧版的sublimetext,上一次用还是一年前了。用od分析了下里面的注册过程。
值得吐槽的是:注册时弹出来的提示活像crackme习题的提示。。
在菜单中输入序列号并注册后,关键判断是下面这段:
00FCAA9D . E8 DFF1FFFF CALL sublime_.00FC9C81
00FCAAA2 . 83C4 10 ADD ESP,10
00FCAAA5 . 85C0 TEST EAX,EAX
00FCAAA7 . 0F9405 24442A0>SETE BYTE PTR DS:[12A4424]
00FCAAAE . 85C0 TEST EAX,EAX
00FCAAB0 0F85 E4000000 JNZ sublime_.00FCAB9A
上面的代码:第一行是一个判断函数,返回值被保存,并根据其值条件转移,形成注册成功的结果。
来到这个函数内部,可以看到一段挺长但是没啥特别技巧的验证过程,不过我还没仔细看 - - 。
值得吐槽的是,这个函数里有大量的cmp , 据我了解是开发者禁止了被公开的序列号的ID,估计是这个过程吧。
最后返回值的地方:
00FCA3CF |> 8D4D C8 LEA ECX,DWORD PTR SS:[EBP-38]
00FCA3D2 |. E8 AC80F3FF CALL sublime_.00F02483
00FCA3D7 |. 8D4D B0 LEA ECX,DWORD PTR SS:[EBP-50]
00FCA3DA |. E8 A480F3FF