吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3504|回复: 1
收起左侧

[第五课] 重启验证文字版

[复制链接]
zwmwcj 发表于 2018-3-30 09:17
    在看了第五课的视频,结合自己的操作,写了一个文字版,本人小白一个,错误地方指导,不要喷。来主题。

实例程序:52PoJie培训程序

   OD载入程序,在汇编窗口,右击-中文搜索引擎-3 智能搜索,搜索“重启验证1”。


2018-03-29_13-07-09.jpg

Server (IO) Error


图片不知不能上传,提示Server (IO) Error,不知就什么原因,知道的能告知下了。
004027C4    push 52PoJie?00544660   你选择的验证类型是重启验证1

  选中地址004027C4行,双击当前行,来到反汇编窗口 。
004027C2 |. 6A 00 push 0x0
004027C4 |. 68 60465400 push 52PoJie?00544660 ; 你选择的验证类型是重启验证1   //跳转到地址
004027C9 |. E8 B17F0000 call 52PoJie?0040A77F

  找到程序段的段首,设置断点 。
004026F0 |. 55 push ebp   //到段首,设置断点
004026F1 |. 8BEC mov ebp,esp
004026F3 |. 6A FF push -0x1

   在遇到call XXXXXX,带地址的,单步往下运行时,注意查看各窗口提示信息。
0040275B |. E8 C8590100 call 52PoJie?00418128   //带地址的call,注意查看下个地址各窗口信息
00402760 |. 8B45 EC mov eax,[local.5] ; 52PoJie?0058E5F0
00402763 |. 8378 F4 00 cmp dword ptr ds:[eax-0xC],0x0

   在地址00402760,反汇编窗口信息窗口显示输入的假码。
00402760 |. 8B45 EC mov eax,[local.5]
堆栈 ss:[0012F5A4]=0020B9B0, (ASCII "1234567890")
eax=0020B9B0, (ASCII "1234567890")

   运行到地址00402769,KERNEL32.CreateFile函数,创建一个文件52Pojie.txt。
00402767 |. /74 74 je short 52PoJie?004027DD
00402769 |. |6A 00 push 0x0 ; /hTemplateFile = NULL
0040276B |. |6A 00 push 0x0 ; |Attributes = 0
0040276D |. |6A 02 push 0x2 ; |Mode = CREATE_ALWAYS
0040276F |. |6A 00 push 0x0 ; |pSecurity = NULL
00402771 |. |6A 01 push 0x1 ; |ShareMode = FILE_SHARE_READ
00402773 |. |68 00000040 push 0x40000000 ; |Access = GENERIC_WRITE
00402778 |. |FFB6 BC000000 push dword ptr ds:[esi+0xBC] ; |FileName = "E:\_破解学习\_脱壳视频二\05 反击作者的挑衅--实战解除程序重启验证\52Pojie.txt"
0040277E |. |FF15 10345400 call dword ptr ds:[<&KERNEL32.CreateFile>; \CreateFileA   //创建52Pojie.txt文件,KERNEL32.CreateFile函数
00402784 |. |8BF0 mov esi,eax

  地址004027B6,KERNEL32.WriteFile函数,写入输入假码到文件52Pojie.txt。
004027AD |> \6A 00 push 0x0 ; /pOverlapped = NULL
004027AF |. 8D45 E8 lea eax,[local.6] ; |
004027B2 |. 50 push eax ; |pBytesWritten = 00000001
004027B3 |. 57 push edi ; |nBytesToWrite = A (10.)
004027B4 |. 51 push ecx ; |Buffer = kernel32.7C81138E
004027B5 |. 56 push esi ; |hFile = 00000234 (window)
004027B6 |. FF15 2C345400 call dword ptr ds:[<&KERNEL32.WriteFile>>; \WriteFile    //写入输入假码,KERNEL32.WriteFile函数
004027BC |. 85C0 test eax,eax

   写好假码,弹窗提示重启验证,退出程序。
004027C4 |. 68 60465400 push 52PoJie?00544660 ; 你选择的验证类型是重启验证1
004027C9 |. E8 B17F0000 call 52PoJie?0040A77F   //弹窗提示
004027CE |. 6A 00 push 0x0 ; /ExitCode = 0x0   //退出程序
004027D0 |. FF15 40385400 call dword ptr ds:[<&USER32.PostQuitMess>; \PostQuitMessage

   重新载入程序,汇编窗口,右击-中文搜索引擎-3 智能搜索,搜索“52Pojie.txt”。
00402AFB  push 52PoJie?005445D8  %s\52Pojie.txt

  选中地址00402AFB行,双击当前行,来到反汇编窗口  。
00402AF5 |. 8DB7 BC000000 lea esi,dword ptr ds:[edi+0xBC]
00402AFB |. 68 D8455400 push 52PoJie?005445D8 ; %s\52Pojie.txt   //跳转到地址
00402B00 |. 56 push esi

   找到程序段的段首,设置断点 。
00402A60 /. 55 push ebp   //来到段首,设置断点
00402A61 |. 8BEC mov ebp,esp
00402A63 |. 6A FF push -0x1

   地址00402AE8,KERNEL32.GetCurrent函数,获取被调试程序存放目录。
00402ADC |. 8D85 ECFEFFFF lea eax,[local.69]
00402AE2 |. 50 push eax ; /Buffer = 00000040
00402AE3 |. 68 04010000 push 0x104 ; |BufSize = 104 (260.)
00402AE8 |. FF15 14345400 call dword ptr ds:[<&KERNEL32.GetCurrent>; \GetCurrentDirectoryA   //获取被调试程序存放目录
00402AEE |. 8D85 ECFEFFFF lea eax,[local.69]   //显示目录
堆栈地址=0012F480, (ASCII "E:\")
eax=00000040

    地址00402AFB,获取被调试程序存放目录下的52Pojie.txt文件。
00402AFB |. 68 D8455400 push 52PoJie?005445D8 ; %s\52Pojie.txt   //获取%s\52Pojie.txt文件
00402B00 |. 56 push esi
00402B01 |. E8 8AE9FFFF call 52PoJie?00401490

   来到关键跳,关键跳可能会计算注册码,单步步入查看。
00402C34 |. E8 77F4FFFF call 52PoJie?004020B0   //跳转条件,这个应该是算法存放地址
00402C39 |. 85C0 test eax,eax   //跳转条件比较
00402C3B |. 74 11 je short 52PoJie?00402C4E   //跳转
00402C3D |. 68 18465400 push 52PoJie?00544618 ; 验证通过   //验证通过提示

   来到关键跳程序段的段首,单步运行。
00401FE0 |$ 55 push ebp
00401FE1 |. 8BEC mov ebp,esp
00401FE3 |. 81EC 10010000 sub esp,0x110

  运行到地址00402006,KERNEL32.CreateFile函数,Mode = OPEN_EXISTING打开52Pojie.txt 文件。
00401FF5 |. 33F6 xor esi,esi
00401FF7 |. 56 push esi ; /hTemplateFile = NULL
00401FF8 |. 56 push esi ; |Attributes = 0
00401FF9 |. 6A 03 push 0x3 ; |Mode = OPEN_EXISTING
00401FFB |. 56 push esi ; |pSecurity = NULL
00401FFC |. 6A 01 push 0x1 ; |ShareMode = FILE_SHARE_READ
00401FFE |. 6A 01 push 0x1 ; |Access = 1
00402000 |. FFB1 BC000000 push dword ptr ds:[ecx+0xBC] ; |FileName = 00026AAE ???
00402006 |. FF15 10345400 call dword ptr ds:[<&KERNEL32.CreateFile>; \CreateFileA   //获取%s\52Pojie.txt文件
0040200C |. 8BF8 mov edi,eax

   运行到地址00402048,KERNEL32.ReadFile函数,读取52Pojie.txt 文件内字符串,在读取真注册码。
00402033 |. 8D85 F0FEFFFF lea eax,[local.68]
00402039 |. 56 push esi ; /pOverlapped = NULL
0040203A |. 50 push eax ; |pBytesRead = 00000001
0040203B |. 68 04010000 push 0x104 ; |BytesToRead = 104 (260.)
00402040 |. 8D85 F4FEFFFF lea eax,[local.67] ; |
00402046 |. 50 push eax ; |Buffer = 00000001
00402047 |. 57 push edi ; |hFile = 0000012C (window)
00402048 |. FF15 28345400 call dword ptr ds:[<&KERNEL32.ReadFile>] ; \ReadFile   //读取%s\52Pojie.txt字符串
0040204E |. 85C0 test eax,eax
00402050 |. 74 3D je short 52PoJie?0040208F
00402052 |. B9 24465400 mov ecx,52PoJie?00544624 ; JXU2MjExJXU2   //真注册码
00402057 |. 8D85 F4FEFFFF lea eax,[local.67]
0040205D |. 8D49 00 lea ecx,dword ptr ds:[ecx]
00544624=52PoJie?00544624 (ASCII "JXU2MjExJXU2")   //地址00402052信息
ecx=00544624 (52PoJie?00544624), ASCII "JXU2MjExJXU2"

   比较了,看不明白,只好复制“JXU2MjExJXU2”注册码,测试通过。
00402060 |> /8A10 /mov dl,byte ptr ds:[eax]   //真假注册码比较
00402062 |. |3A11 |cmp dl,byte ptr ds:[ecx]
00402064 |. |75 1A |jnz short 52PoJie?00402080
00402066 |. |84D2 |test dl,dl
00402068 |. |74 12 |je short 52PoJie?0040207C
0040206A |. |8A50 01 |mov dl,byte ptr ds:[eax+0x1]
0040206D |. |3A51 01 |cmp dl,byte ptr ds:[ecx+0x1]
00402070 |. |75 0E |jnz short 52PoJie?00402080
00402072 |. |83C0 02 |add eax,0x2
00402075 |. |83C1 02 |add ecx,0x2
00402078 |. |84D2 |test dl,dl
0040207A |.^\75 E4 \jnz short 52PoJie?00402060
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtmlclip1/01/clip_image024.jpg
 

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

yalu520 发表于 2018-5-7 00:30
安装新版的Adobe Flash Player就可以上传了~~
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-22 10:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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