欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

Crack之亲历手迹2--我的第一个注册机 (2千字)

Crack之亲历手迹2--我的第一个注册机 (2千字)

Crack之亲历手迹2--我的第一个注册机
//-------------------------------------------------
目标程序:icontoy2.exe:392 KB (401,920 字节)
          绿色软件,单独exe文件
          Delphi编写无需pakage支持,未加壳
破解目标:找到注册码,最好做出注册机
//--------------------------------------------------
破解过程:
1。用IDA反汇编。
2。用SoftICE,下bpx getwindowtext
              bpx getwindowtexta
              bpx getwindowtextw
              bpx getdlgitemtext
              bpx getdlgitemtexta
              bpx getdlgitemtextw结果只栏到TApplication::GetTitle中的程式,并未拦截到程序获取注册码
  的过程。
  ???或许Delphi的TControl::GetText另有函数?(详细见2002-2-15日记)
3。用W32Dasm反汇编,找到Registration key error!字符串,点击后直接进入了OnOK的处理函数,That's OK!
4。在IDA中找到这个处理函数,
  分析发现:
  首先打开注册表,将用户名、Key写入注册表
  mov    edx, offset _str__software_akato_0.Text
  mov    eax, ebx
  call    @Registry@TRegistry@OpenKey$qqrx17System@AnsiString4bool
  lea    edx, [ebp+var_4]
  mov    eax, [esi+270h]
  call    @TControl@GetText ; TControl::GetText
  mov    ecx, [ebp+var_4]
  mov    edx, offset _str_reg_key_0.Text
  mov    eax, ebx
  call    @TRegistry@WriteString ; TRegistry::WriteString
  然后再从注册表中读出来
  lea    ecx, [ebp+var_8]
  mov    edx, offset _str_reg_key_0.Text
  mov    eax, ebx
  call    @TRegistry@ReadString ; TRegistry::ReadString
  mov    edx, [ebp+var_8]
  mov    eax, edi
  call    @System@@LStrAsg$qqrv ; System __linkproc__ LStrAsg(void)
  再与十个可能的注册码一一比较
  mov    eax, [edi]
  mov    edx, offset _str_R3212959_0.Text
  call    @System@@LStrCmp$qqrv ; System __linkproc__ LStrCmp(void)
  jz      short loc_439CEA
  mov    eax, [edi]
  mov    edx, offset _str_8M6M8DTA_0.Text
  call    @System@@LStrCmp$qqrv ; System __linkproc__ LStrCmp(void)
  jnz    short loc_439D36
  如是十个注册码中的一个则显示注册成功,或则显示注册失败
  mov    eax, offset _str_Registration_ke.Text
  call    @Dialogs@ShowMessage$qqrx17System@AnsiString ; Dialogs::ShowMessage(System::AnsiString)
  现在我们可以知道他的注册码了,只能为下面的十个字串中的一个
  8M6M8DTA
  R3212959
  12959TAT
  322223XL
  reggy322
  reggy105
  reg10515
  reg15810
  22322322
  32222332
5。使用VC++6.0做出注册机

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功