飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3444|回复: 6

[原创] 【答坛友问】PDF2TXT v3.2简单算法分析+ASM注册函数

[复制链接]
  • TA的每日心情
    难过
    2024-4-22 14:49
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2010-4-30 14:52:59 | 显示全部楼层 |阅读模式
    【破文标题】PDF2TXT v3.2简单算法分析+ASM注册函数
    【破文作者】飘云/P.Y.G
    【官方主页】https://www.chinapyg.com
    【作者博客】http://blog.piaoyunsoft.com
    破解平台】WinXp SP3
    【破解工具】PEiD0.94、OD
    【作者邮箱】piaoyun04@163.com
    【软件名称】PDF2TXT v3.2
    【软件大小】1.34M
    【原版下载】http://verypdf.com/pdf2txt/pdf2txt.htm

    问题由来https://www.chinapyg.com/viewthr ... p;page=1&extra=

    OD载入程序运行,下断 BP MessageBoxA
    找到到这里:
    这里是 verypdf.dll 领空,而不是提问者所说的系统领空
    1. 100019A2  mov     esi, dword ptr [esp+E8]
    2. 100019A9  push    0C8
    3. 100019AE  mov     ecx, 32
    4. 100019B3  xor     eax, eax
    5. 100019B5  mov     edi, 1001A850                    ; 1234567890abcdef
    6. 100019BA  push    1001A850                         ; 1234567890abcdef
    7. 100019BF  push    3FB
    8. 100019C4  push    esi
    9. 100019C5  rep     stos dword ptr es:[edi]
    10. 100019C7  call    dword ptr [10013334]             ; USER32.GetDlgItemTextA
    11. 100019CD  push    1001A850                         ; 1234567890abcdef
    12. 100019D2  call    10001170                         ; 算法CALL

    13. {----------------------算法CALL-------------------------}

    14. 10001170  sub     esp, 18
    15. 10001173  push    ebx
    16. 10001174  push    esi
    17. 10001175  mov     esi, dword ptr [esp+24]
    18. 10001179  lea     edx, dword ptr [esp+8]
    19. 1000117D  push    edi
    20. 1000117E  xor     bl, bl
    21. 10001180  mov     al, byte ptr [esi+E]             ; KEY[14]
    22. 10001183  mov     cl, byte ptr [esi+F]             ; KEY[15]
    23. 10001186  push    edx
    24. 10001187  mov     byte ptr [esp+1C], al
    25. 1000118B  mov     byte ptr [esp+1D], bl
    26. 1000118F  mov     byte ptr [esp+10], cl
    27. 10001193  mov     byte ptr [esp+11], bl
    28. 10001197  call    100027D1                         ; KEY[14]校验
    29. 1000119C  mov     edi, eax
    30. 1000119E  lea     eax, dword ptr [esp+1C]
    31. 100011A2  push    eax
    32. 100011A3  call    100027D1                         ; KEY[15]校验
    33. 100011A8  add     edi, eax
    34. 100011AA  add     esp, 8
    35. 100011AD  cmp     edi, 0B                          ; 校验通过后两数相加要=11
    36. 100011B0  je      short 100011BB
    37. 100011B2  pop     edi
    38. 100011B3  pop     esi
    39. 100011B4  xor     eax, eax
    40. 100011B6  pop     ebx
    41. 100011B7  add     esp, 18
    42. 100011BA  retn
    43. 100011BB  mov     cl, byte ptr [esi]               ; KEY[0]
    44. 100011BD  mov     dl, byte ptr [esi+1]             ; KEY[1]
    45. 100011C0  lea     eax, dword ptr [esp+C]
    46. 100011C4  mov     byte ptr [esp+18], cl
    47. 100011C8  push    eax
    48. 100011C9  mov     byte ptr [esp+1D], bl
    49. 100011CD  mov     byte ptr [esp+10], dl
    50. 100011D1  mov     byte ptr [esp+11], bl
    51. 100011D5  call    100027D1
    52. 100011DA  lea     ecx, dword ptr [esp+1C]
    53. 100011DE  mov     edi, eax
    54. 100011E0  push    ecx
    55. 100011E1  call    100027D1
    56. 100011E6  add     edi, eax
    57. 100011E8  add     esp, 8
    58. 100011EB  cmp     edi, 8                           ; 校验通过后两数相加要=8
    59. 100011EE  je      short 100011F9
    60. 100011F0  pop     edi
    61. 100011F1  pop     esi
    62. 100011F2  xor     eax, eax
    63. 100011F4  pop     ebx
    64. 100011F5  add     esp, 18
    65. 100011F8  retn
    66. 100011F9  mov     cl, byte ptr [esi+5]             ; KEY[5]
    67. 100011FC  mov     al, 24                           ; $
    68. 100011FE  cmp     cl, al                           ; KEY[5]必须为 $
    69. 10001200  je      short 1000120B
    70. 10001202  pop     edi
    71. 10001203  pop     esi
    72. 10001204  xor     eax, eax
    73. 10001206  pop     ebx
    74. 10001207  add     esp, 18
    75. 1000120A  retn
    76. 1000120B  cmp     byte ptr [esi+6], al             ; KEY[6]必须为 $
    77. 1000120E  je      short 10001219
    78. 10001210  pop     edi
    79. 10001211  pop     esi
    80. 10001212  xor     eax, eax
    81. 10001214  pop     ebx
    82. 10001215  add     esp, 18
    83. 10001218  retn
    84. 10001219  mov     cl, byte ptr [esi+7]             ; KEY[7]
    85. 1000121C  xor     eax, eax
    86. 1000121E  cmp     cl, 40                           ; KEY[7]必须为@
    87. 10001221  pop     edi
    88. 10001222  pop     esi
    89. 10001223  pop     ebx
    90. 10001224  sete    al                               ; 标志位
    91. 10001227  add     esp, 18
    92. 1000122A  retn
    复制代码
    【算法总结】
    1.KEY[14] + KEY[15] = 11
    2.KEY[1] + KEY[2] = 8
    3.KEY[5] = $  (24h)
    4.KEY[6] = $  (24h)
    5.KEY[7] = @  (40h)
    6.其他位用随机字符填充即可

    【注册函数】

    1. .data
    2. szFormat db '%s',0
    3. szConstTable db '0123456789abcdefghijklmnopqrstuvwxyz',0


    4. .code

    5. _Rand proc uses ecx edx First:DWORD,Second:DWORD
    6. rdtsc
    7. ;invoke GetTickCount
    8. mov ecx,23
    9. mul ecx
    10. add eax,7
    11. mov ecx,Second
    12. sub ecx,First
    13. inc ecx
    14. xor edx,edx
    15. div ecx
    16. add edx,First
    17. mov eax,edx
    18. ret
    19. _Rand endp


    20. ;=================================================
    21. ;注册算法:
    22. ;1.KEY[14] + KEY[15] = 11
    23. ;2.KEY[1] + KEY[2] = 8
    24. ;3.KEY[5] = $  (24h)
    25. ;4 KEY[6] = $  (24h)
    26. ;5 KEY[7] = @  (40h)
    27. ;6 其他位用随机字符填充即可
    28. ;Code By PiaoYun/P.Y.G
    29. ;=================================================
    30. KeyGen proc

    31. LOCAL @szKey[17]:BYTE;多定义一个字节空间~ 否则出问题
    32. LOCAL @szOut[256]:BYTE

    33. invoke RtlZeroMemory,addr @szOut,sizeof @szOut
    34. invoke RtlZeroMemory,addr @szKey,sizeof @szKey

    35. xor eax,eax
    36. xor ecx,ecx
    37. xor edx,edx

    38. ;KEY[15]
    39. invoke _Rand,2,9
    40. movzx edx,byte ptr [szConstTable+eax]
    41. mov byte ptr[@szKey + 14],dl
    42. ;计算KEY[16]
    43. mov     edx,11
    44. sub edx,eax
    45. movzx edx,byte ptr [szConstTable+edx]
    46. mov byte ptr[@szKey + 15],dl

    47. ;KEY[0]
    48. invoke _Rand,0,8
    49. movzx edx,byte ptr [szConstTable+eax]
    50. mov byte ptr[@szKey + 0],dl
    51. ;计算KEY[1]
    52. mov     edx,8
    53. sub edx,eax
    54. movzx edx,byte ptr [szConstTable+edx]
    55. mov byte ptr[@szKey + 1],dl

    56. mov byte ptr[@szKey + 5],24h
    57. mov byte ptr[@szKey + 6],24h
    58. mov byte ptr[@szKey + 7],40h

    59. ;KEY:2、3、4
    60. mov ecx,2
    61. @@:
    62. invoke _Rand,0,35
    63. movzx edx,byte ptr [szConstTable+eax]
    64. mov byte ptr[@szKey + ecx],dl
    65. inc ecx
    66. cmp ecx,5
    67. jl @B

    68. ;KEY:8,9,10,11,12,13
    69. mov ecx,8
    70. @@:
    71. invoke _Rand,0,35
    72. movzx edx,byte ptr [szConstTable+eax]
    73. mov byte ptr[@szKey + ecx],dl
    74. inc ecx
    75. cmp ecx,14
    76. jl @B

    77. invoke lstrcat,addr @szOut,addr @szKey ;连接字符串
    78. lea eax,@szOut
    79. ret

    80. KeyGen endp

    复制代码
    【版权声明】 本文纯属技术交流, 原创于PYG官方论坛, 转载请注明作者并保持文章的完整, 谢谢!
    1.gif
    2.gif

    KeyGen For VeryPDF PDF2TXT v3.2.rar

    2.23 KB, 下载次数: 4, 下载积分: 飘云币 -2 枚

    评分

    参与人数 1威望 +40 飘云币 +40 收起 理由
    月之精灵 + 40 + 40 虽然你不缺钱,但该加的还是应该加上哈

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-3 23:07
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2010-4-30 15:02:21 | 显示全部楼层
    第一个来学习
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-23 23:49
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2010-4-30 17:13:41 | 显示全部楼层
    呵呵,第二个来学习!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-3-8 12:43
  • 签到天数: 92 天

    [LV.6]常住居民II

    发表于 2010-4-30 18:57:02 | 显示全部楼层
    谢谢版主了。我是第三个来学习得
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2015-10-9 11:25
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2010-4-30 20:34:36 | 显示全部楼层
    我早上下载了这个软件,下班回来刚分析完,发现老大的分析与我不睦而和,哈哈,学习了
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2015-8-3 23:07
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2010-4-30 21:43:04 | 显示全部楼层
    原帖由 老万 于 2010-4-30 20:34 发表
    我早上下载了这个软件,下班回来刚分析完,发现老大的分析与我不睦而和,哈哈,学习了

    向您学习
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    昨天 10:27
  • 签到天数: 631 天

    [LV.9]以坛为家II

    发表于 2010-5-1 11:02:27 | 显示全部楼层
    学习一下老大的算法
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表