首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
软件逆向
发新帖
0
0
[求助]调试SEH程序时遇到困难,高手帮看一下
发表于: 2005-5-31 19:10
4479
[求助]调试SEH程序时遇到困难,高手帮看一下
wenglingok
26
2005-5-31 19:10
4479
小弟在调试SEH程序时遇到一些困难,高手帮忙看一下这个程序的部分代码,输入假注册码
"987654321abcd"
进入程序注册部分:
0049D830 $ 55 PUSH EBP
0049D831 . 8BEC MOV EBP,ESP
0049D833 . 83C4 BC ADD ESP,-44
0049D836 . 53 PUSH EBX
0049D837 . 56 PUSH ESI
0049D838 . 57 PUSH EDI
0049D839 . 33DB XOR EBX,EBX
0049D83B . 895D BC MOV DWORD PTR SS:[EBP-44],EBX
0049D83E . 895D C0 MOV DWORD PTR SS:[EBP-40],EBX
0049D841 . 895D C4 MOV DWORD PTR SS:[EBP-3C],EBX
0049D844 . 895D C8 MOV DWORD PTR SS:[EBP-38],EBX
0049D847 . 895D DC MOV DWORD PTR SS:[EBP-24],EBX
0049D84A . 895D F0 MOV DWORD PTR SS:[EBP-10],EBX
0049D84D . 895D EC MOV DWORD PTR SS:[EBP-14],EBX
0049D850 . 895D E8 MOV DWORD PTR SS:[EBP-18],EBX
0049D853 . 894D F8 MOV DWORD PTR SS:[EBP-8],ECX
0049D856 . 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
0049D859 . 8BD8 MOV EBX,EAX
0049D85B . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0049D85E . E8 3172F6FF CALL DriverSt.00404A94
0049D863 . 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
0049D866 . E8 2972F6FF CALL DriverSt.00404A94
0049D86B . 8B45 0C MOV EAX,DWORD PTR SS:[EBP+C]
0049D86E . E8 2172F6FF CALL DriverSt.00404A94
0049D873 . 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
0049D876 . E8 1972F6FF CALL DriverSt.00404A94
0049D87B . 33C0 XOR EAX,EAX
0049D87D . 55 PUSH EBP
0049D87E . 68 68DB4900 PUSH DriverSt.0049DB68
0049D883 . 64:FF30 PUSH DWORD PTR FS:[EAX]
0049D886 . 64:8920 MOV DWORD PTR FS:[EAX],ESP
0049D889 > E8 5292F6FF CALL <JMP.&kernel32.GetTickCount> ; [GetTickCount
0049D88E . 8BF0 MOV ESI,EAX
0049D890 . 68 D0070000 PUSH 7D0 ; /Timeout = 2000. ms
0049D895 . E8 BA06F7FF CALL <JMP.&kernel32.Sleep> ; \Sleep
0049D89A . 8B43 54 MOV EAX,DWORD PTR DS:[EBX+54]
0049D89D . 8078 04 00 CMP BYTE PTR DS:[EAX+4],0
0049D8A1 . 74 0A JE SHORT DriverSt.0049D8AD
0049D8A3 . 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
0049D8A6 . 8BC3 MOV EAX,EBX
0049D8A8 . E8 27F9FFFF CALL DriverSt.0049D1D4
0049D8AD > E8 2E92F6FF CALL <JMP.&kernel32.GetTickCount> ; [GetTickCount
0049D8B2 . 81C6 CF070000 ADD ESI,7CF
0049D8B8 . 3BC6 CMP EAX,ESI
0049D8BA .^ 72 CD JB SHORT DriverSt.0049D889
0049D8BC . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0049D8BF . E8 E06FF6FF CALL DriverSt.004048A4 ; 取得机器码的长度
0049D8C4 . 3B43 58 CMP EAX,DWORD PTR DS:[EBX+58] ; 机器码长度不大于50
0049D8C7 . 7F 19 JG SHORT DriverSt.0049D8E2
0049D8C9 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0049D8CC . E8 D36FF6FF CALL DriverSt.004048A4 ; 取得机器码的长度
0049D8D1 . 3B43 5C CMP EAX,DWORD PTR DS:[EBX+5C]
0049D8D4 . 7C 0C JL SHORT DriverSt.0049D8E2 ; 机器码的长度不小于5
0049D8D6 . 8B45 0C MOV EAX,DWORD PTR SS:[EBP+C]
0049D8D9 . E8 C66FF6FF CALL DriverSt.004048A4 ; 取注册码的长度
0049D8DE . 85C0 TEST EAX,EAX
0049D8E0 . 75 09 JNZ SHORT DriverSt.0049D8EB
0049D8E2 > C645 F7 00 MOV BYTE PTR SS:[EBP-9],0
0049D8E6 . E9 33020000 JMP DriverSt.0049DB1E
0049D8EB > 8D55 DC LEA EDX,DWORD PTR SS:[EBP-24]
0049D8EE . 8B45 0C MOV EAX,DWORD PTR SS:[EBP+C]
0049D8F1 . E8 D6ADF6FF CALL DriverSt.004086CC ; 注册码小写转大写
0049D8F6 . 8B55 DC MOV EDX,DWORD PTR SS:[EBP-24]
0049D8F9 . 8D45 0C LEA EAX,DWORD PTR SS:[EBP+C]
0049D8FC . E8 7B6DF6FF CALL DriverSt.0040467C
0049D901 . C645 F7 00 MOV BYTE PTR SS:[EBP-9],0
0049D905 . B1 01 MOV CL,1
0049D907 . 8B55 0C MOV EDX,DWORD PTR SS:[EBP+C]
0049D90A . 8BC3 MOV EAX,EBX
0049D90C . E8 83FAFFFF CALL DriverSt.0049D394 ; 取得注册码的第二位"8"
0049D911 . 84C0 TEST AL,AL
0049D913 . 0F85 05020000 JNZ DriverSt.0049DB1E
0049D919 . 33C9 XOR ECX,ECX
0049D91B . 55 PUSH EBP
0049D91C . 68 A4DA4900 PUSH DriverSt.0049DAA4
0049D921 . 64:FF31 PUSH DWORD PTR FS:[ECX]
0049D924 . 64:8921 MOV DWORD PTR FS:[ECX],ESP
0049D927 . 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
0049D92A . 8B55 0C MOV EDX,DWORD PTR SS:[EBP+C]
0049D92D . 8A52 01 MOV DL,BYTE PTR DS:[EDX+1]
0049D930 . E8 976EF6FF CALL DriverSt.004047CC
0049D935 . 8D45 D8 LEA EAX,DWORD PTR SS:[EBP-28]
0049D938 . 8B55 0C MOV EDX,DWORD PTR SS:[EBP+C]
0049D93B . 8A52 09 MOV DL,BYTE PTR DS:[EDX+9] ; 注册码的第十位"A"
0049D93E . 8850 01 MOV BYTE PTR DS:[EAX+1],DL
0049D941 . C600 01 MOV BYTE PTR DS:[EAX],1
0049D944 . 8D55 D8 LEA EDX,DWORD PTR SS:[EBP-28]
0049D947 . 8D45 D4 LEA EAX,DWORD PTR SS:[EBP-2C]
0049D94A . E8 BD57F6FF CALL DriverSt.0040310C
0049D94F . 8D45 D0 LEA EAX,DWORD PTR SS:[EBP-30]
0049D952 . 8B55 0C MOV EDX,DWORD PTR SS:[EBP+C]
0049D955 . 8A52 07 MOV DL,BYTE PTR DS:[EDX+7] ; 注册码的第八位"2"
0049D958 . 8850 01 MOV BYTE PTR DS:[EAX+1],DL
0049D95B . C600 01 MOV BYTE PTR DS:[EAX],1
0049D95E . 8D55 D0 LEA EDX,DWORD PTR SS:[EBP-30]
0049D961 . 8D45 D4 LEA EAX,DWORD PTR SS:[EBP-2C]
0049D964 . B1 02 MOV CL,2
0049D966 . E8 7157F6FF CALL DriverSt.004030DC ; 连接上面的两位
0049D96B . 8D55 D4 LEA EDX,DWORD PTR SS:[EBP-2C]
0049D96E . 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14]
0049D971 . E8 D26EF6FF CALL DriverSt.00404848 ; 得到字符串"A2"
0049D976 . 8D45 D8 LEA EAX,DWORD PTR SS:[EBP-28]
0049D979 . 8B55 0C MOV EDX,DWORD PTR SS:[EBP+C]
0049D97C . 8A52 03 MOV DL,BYTE PTR DS:[EDX+3] ; 注册码的第四位"6"
0049D97F . 8850 01 MOV BYTE PTR DS:[EAX+1],DL
0049D982 . C600 01 MOV BYTE PTR DS:[EAX],1
0049D985 . 8D55 D8 LEA EDX,DWORD PTR SS:[EBP-28]
0049D988 . 8D45 D4 LEA EAX,DWORD PTR SS:[EBP-2C]
0049D98B . E8 7C57F6FF CALL DriverSt.0040310C
0049D990 . 8D45 D0 LEA EAX,DWORD PTR SS:[EBP-30]
0049D993 . 8B55 0C MOV EDX,DWORD PTR SS:[EBP+C]
0049D996 . 8A52 05 MOV DL,BYTE PTR DS:[EDX+5] ; 注册码的第六位"4"
0049D999 . 8850 01 MOV BYTE PTR DS:[EAX+1],DL
0049D99C . C600 01 MOV BYTE PTR DS:[EAX],1
0049D99F . 8D55 D0 LEA EDX,DWORD PTR SS:[EBP-30]
0049D9A2 . 8D45 D4 LEA EAX,DWORD PTR SS:[EBP-2C]
0049D9A5 . B1 02 MOV CL,2
0049D9A7 . E8 3057F6FF CALL DriverSt.004030DC
0049D9AC . 8D55 D4 LEA EDX,DWORD PTR SS:[EBP-2C]
0049D9AF . 8D45 CC LEA EAX,DWORD PTR SS:[EBP-34]
0049D9B2 . E8 5557F6FF CALL DriverSt.0040310C
0049D9B7 . 8D45 D0 LEA EAX,DWORD PTR SS:[EBP-30]
0049D9BA . 8B55 0C MOV EDX,DWORD PTR SS:[EBP+C]
0049D9BD . 8A52 0B MOV DL,BYTE PTR DS:[EDX+B] ; 注册码的第十二位"C"
0049D9C0 . 8850 01 MOV BYTE PTR DS:[EAX+1],DL
0049D9C3 . C600 01 MOV BYTE PTR DS:[EAX],1
0049D9C6 . 8D55 D0 LEA EDX,DWORD PTR SS:[EBP-30]
0049D9C9 . 8D45 CC LEA EAX,DWORD PTR SS:[EBP-34]
0049D9CC . B1 03 MOV CL,3
0049D9CE . E8 0957F6FF CALL DriverSt.004030DC ; 连接上面的三位
0049D9D3 . 8D55 CC LEA EDX,DWORD PTR SS:[EBP-34]
0049D9D6 . 8D45 E8 LEA EAX,DWORD PTR SS:[EBP-18]
0049D9D9 . E8 6A6EF6FF CALL DriverSt.00404848 ; 得到字符串"64C"
0049D9DE . 8D45 C8 LEA EAX,DWORD PTR SS:[EBP-38]
0049D9E1 . 8B4D F0 MOV ECX,DWORD PTR SS:[EBP-10]
0049D9E4 . BA 84DB4900 MOV EDX,DriverSt.0049DB84
0049D9E9 . E8 026FF6FF CALL DriverSt.004048F0
0049D9EE . 8B45 C8 MOV EAX,DWORD PTR SS:[EBP-38]
0049D9F1 . BA FFFF0000 MOV EDX,0FFFF
0049D9F6 . E8 69B3F6FF CALL DriverSt.00408D64 ; 得到0x8
0049D9FB . 8BF0 MOV ESI,EAX
0049D9FD . 8D45 C4 LEA EAX,DWORD PTR SS:[EBP-3C]
0049DA00 . 8B4D EC MOV ECX,DWORD PTR SS:[EBP-14]
0049DA03 . BA 84DB4900 MOV EDX,DriverSt.0049DB84
0049DA08 . E8 E36EF6FF CALL DriverSt.004048F0
0049DA0D . 8B45 C4 MOV EAX,DWORD PTR SS:[EBP-3C]
0049DA10 . BA FFFF0000 MOV EDX,0FFFF
0049DA15 . E8 4AB3F6FF CALL DriverSt.00408D64 ; 得到0xA2
0049DA1A . 8BF8 MOV EDI,EAX
0049DA1C . 8D45 C0 LEA EAX,DWORD PTR SS:[EBP-40]
0049DA1F . 8B4D E8 MOV ECX,DWORD PTR SS:[EBP-18]
0049DA22 . BA 84DB4900 MOV EDX,DriverSt.0049DB84
0049DA27 . E8 C46EF6FF CALL DriverSt.004048F0
0049DA2C . 8B45 C0 MOV EAX,DWORD PTR SS:[EBP-40]
0049DA2F . BA FFFF0000 MOV EDX,0FFFF
0049DA34 . E8 2BB3F6FF CALL DriverSt.00408D64 ; 得到0x64C
0049DA39 . 8BD7 MOV EDX,EDI
0049DA3B . 0BD6 OR EDX,ESI ; 0x8 | 0xA2 = 0xAA
0049DA3D . 0BD0 OR EDX,EAX ; 0xAA | 0x64C = 0x6EE
0049DA3F . 81FA FFFF0000 CMP EDX,0FFFF ; 这里结果好像不可能等于0xFFFF,上面进行运算的数值最多三个字节,改变假注册码最多也只能等于0xFFF,所以只能从下面跳到异常的地方
0049DA45 . 75 0F JNZ SHORT DriverSt.0049DA56
0049DA47 . 64:8F05 00000000 POP DWORD PTR FS:[0]
0049DA4E . 83C4 08 ADD ESP,8
0049DA51 . E9 C8000000 JMP DriverSt.0049DB1E ; 成功的地方在0049DB1A,即使暴力修改上面的JNZ,从这里也跳不到成功的地方。
0049DA56 > 8BD6 MOV EDX,ESI
0049DA58 . 66:83F2 07 XOR DX,7 ; 0x8 ^ 0x7 = 0xF
0049DA5C . 8BF7 MOV ESI,EDI
0049DA5E . 66:81F6 B700 XOR SI,0B7 ; 0xA2 ^ 0xB7 = 0x15
0049DA63 . 66:35 B705 XOR AX,5B7 ; 0x64C ^ 0x5B7 = 0x3FB
0049DA67 . 8BCE MOV ECX,ESI
0049DA69 . E8 A6CDF6FF CALL DriverSt.0040A814 ; 此Call产生异常
0049DA6E . DD5D E0 FSTP QWORD PTR SS:[EBP-20]
0049DA71 . 9B WAIT
0049DA72 . E8 65CFF6FF CALL DriverSt.0040A9DC
0049DA77 . DC5D E0 FCOMP QWORD PTR SS:[EBP-20]
0049DA7A . DFE0 FSTSW AX
0049DA7C . 9E SAHF
0049DA7D . 76 1B JBE SHORT DriverSt.0049DA9A
0049DA7F . DD45 E0 FLD QWORD PTR SS:[EBP-20]
0049DA82 . D81D 88DB4900 FCOMP DWORD PTR DS:[49DB88]
0049DA88 . DFE0 FSTSW AX
0049DA8A . 9E SAHF
0049DA8B . 74 0D JE SHORT DriverSt.0049DA9A
0049DA8D . 33C0 XOR EAX,EAX
0049DA8F . 5A POP EDX
0049DA90 . 59 POP ECX
0049DA91 . 59 POP ECX
0049DA92 . 64:8910 MOV DWORD PTR FS:[EAX],EDX
0049DA95 . E9 84000000 JMP DriverSt.0049DB1E
0049DA9A > 33C0 XOR EAX,EAX
0049DA9C . 5A POP EDX
0049DA9D . 59 POP ECX
0049DA9E . 59 POP ECX
0049DA9F . 64:8910 MOV DWORD PTR FS:[EAX],EDX
0049DAA2 . EB 11 JMP SHORT DriverSt.0049DAB5
0049DAA4 .^ E9 6362F6FF JMP DriverSt.00403D0C ; 异常后,到这里继续执行
0049DAA9 . E8 C665F6FF CALL DriverSt.00404074
0049DAAE . EB 6E JMP SHORT DriverSt.0049DB1E ; 成功的地方在0049DB1A
0049DAB0 . E8 BF65F6FF CALL DriverSt.00404074
0049DAB5 > 8D45 BC LEA EAX,DWORD PTR SS:[EBP-44]
0049DAB8 . 50 PUSH EAX
0049DAB9 . 8B4D 0C MOV ECX,DWORD PTR SS:[EBP+C]
0049DABC . 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0049DABF . 8BC3 MOV EAX,EBX
0049DAC1 . E8 76F0FFFF CALL DriverSt.0049CB3C
0049DAC6 . 8B45 BC MOV EAX,DWORD PTR SS:[EBP-44]
0049DAC9 . BA 94DB4900 MOV EDX,DriverSt.0049DB94 ; ASCII "645364631365423154824"
0049DACE . E8 99ACF6FF CALL DriverSt.0040876C
0049DAD3 . 85C0 TEST EAX,EAX
0049DAD5 . 75 06 JNZ SHORT DriverSt.0049DADD
0049DAD7 . C645 F7 01 MOV BYTE PTR SS:[EBP-9],1
0049DADB . EB 04 JMP SHORT DriverSt.0049DAE1
0049DADD > C645 F7 00 MOV BYTE PTR SS:[EBP-9],0
0049DAE1 > 807D F7 01 CMP BYTE PTR SS:[EBP-9],1
0049DAE5 . 75 37 JNZ SHORT DriverSt.0049DB1E
0049DAE7 . 8D43 50 LEA EAX,DWORD PTR DS:[EBX+50]
0049DAEA . 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0049DAED . E8 466BF6FF CALL DriverSt.00404638
0049DAF2 . 8D43 60 LEA EAX,DWORD PTR DS:[EBX+60]
0049DAF5 . 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8]
0049DAF8 . E8 3B6BF6FF CALL DriverSt.00404638
0049DAFD . 8D43 68 LEA EAX,DWORD PTR DS:[EBX+68]
0049DB00 . 8B55 0C MOV EDX,DWORD PTR SS:[EBP+C]
0049DB03 . E8 306BF6FF CALL DriverSt.00404638
0049DB08 . 8D43 44 LEA EAX,DWORD PTR DS:[EBX+44]
0049DB0B . 8B55 08 MOV EDX,DWORD PTR SS:[EBP+8]
0049DB0E . E8 256BF6FF CALL DriverSt.00404638
0049DB13 . 8BC3 MOV EAX,EBX
0049DB15 . E8 C2020000 CALL DriverSt.0049DDDC
0049DB1A . C645 F7 01 MOV BYTE PTR SS:[EBP-9],1 ; SS:[EBP-9]里置1,走到这里就成功了
0049DB1E > 33C0 XOR EAX,EAX
0049DB20 . 5A POP EDX
0049DB21 . 59 POP ECX
0049DB22 . 59 POP ECX
0049DB23 . 64:8910 MOV DWORD PTR FS:[EAX],EDX
0049DB26 . 68 6FDB4900 PUSH DriverSt.0049DB6F
0049DB2B > 8D45 BC LEA EAX,DWORD PTR SS:[EBP-44]
0049DB2E . BA 04000000 MOV EDX,4
0049DB33 . E8 D06AF6FF CALL DriverSt.00404608
0049DB38 . 8D45 DC LEA EAX,DWORD PTR SS:[EBP-24]
0049DB3B . E8 A46AF6FF CALL DriverSt.004045E4
0049DB40 . 8D45 E8 LEA EAX,DWORD PTR SS:[EBP-18]
0049DB43 . BA 03000000 MOV EDX,3
0049DB48 . E8 BB6AF6FF CALL DriverSt.00404608
0049DB4D . 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
0049DB50 . BA 02000000 MOV EDX,2
0049DB55 . E8 AE6AF6FF CALL DriverSt.00404608
0049DB5A . 8D45 08 LEA EAX,DWORD PTR SS:[EBP+8]
0049DB5D . BA 02000000 MOV EDX,2
0049DB62 . E8 A16AF6FF CALL DriverSt.00404608
0049DB67 . C3 RETN
0049DB68 .^ E9 5364F6FF JMP DriverSt.00403FC0
0049DB6D .^ EB BC JMP SHORT DriverSt.0049DB2B
0049DB6F . 8A45 F7 MOV AL,BYTE PTR SS:[EBP-9]
0049DB72 . 5F POP EDI
0049DB73 . 5E POP ESI
0049DB74 . 5B POP EBX
0049DB75 . 8BE5 MOV ESP,EBP
0049DB77 . 5D POP EBP
0049DB78 . C2 0800 RETN 8
不用暴力修改,怎样才能通过注册码的校验呢??
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
收藏
・
0
免费
・
0
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
3
)
prince
雪 币:
603
活跃值:
(617)
能力值:
( LV12,RANK:660 )
在线值:
发帖
51
回帖
1874
粉丝
8
关注
私信
prince
16
2
楼
什么程序?放上来学习一下~
2005-5-31 20:56
0
mylee
雪 币:
312
活跃值:
(860)
能力值:
( LV2,RANK:10 )
在线值:
发帖
2
回帖
148
粉丝
1
关注
私信
mylee
3
楼
找
注
册
码
还
是
暴
力
破
解
?
方
法
不
详
。
2005-5-31 21:32
0
wenglingok
雪 币:
671
活跃值:
(723)
能力值:
( LV9,RANK:1060 )
在线值:
发帖
52
回帖
679
粉丝
1
关注
私信
wenglingok
26
4
楼
问题已经解决,原来在这里
0049DA69 . E8 A6CDF6FF CALL DriverSt.0040A814 ; 此Call产生异常
异常就在这个Call内部,产生异常前还有对注册码的验证,没有仔细看,只有注册码符合条件,是可以跳过异常的,并且执行到成功的地方。
2005-5-31 21:50
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
wenglingok
26
52
发帖
679
回帖
1060
RANK
关注
私信
他的文章
[原创]Python模拟登陆某网教师教育网
7134
[原创]**阅卷系统 V8.1 寻找暗桩
6184
[原创]Vista 的扫雷
22265
[原创]简单RSA128的笔记
11723
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部