kanxue
2005-10-31, 13:22:31
校验无非就是读取文件,计算其Hash值,以比较文件是否被修改过。因此可以用相关的函数设断:CreateFileA(W)、GetFileSize
关于软件破解自校验的问题
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
笑语 2005-10-31, 13:07:38 我用Ollydbg进行调试烈火网络电视v5.7,软件的upx壳我脱掉了可是用Ollydbg一调试运行Ollydbg就自动关掉了.可能是自校验我实在没有办法了 哪位大侠能教教我怎么改自校验代码 万分感谢 kanxue 2005-10-31, 13:22:31 校验无非就是读取文件,计算其Hash值,以比较文件是否被修改过。因此可以用相关的函数设断:CreateFileA(W)、GetFileSize 鸡蛋壳 2005-10-31, 13:44:27 最初由 kanxue 发布 校验无非就是读取文件,计算其Hash值,以比较文件是否被修改过。因此可以用相关的函数设断:CreateFileA(W)、GetFileSize 非也,也有内存段效验或者镜像文件效验,做的好都算比较变态的效验。 笑语 2005-10-31, 13:58:02 谢谢两位前辈,可是我在没脱壳之前用Ollydbg进行调试烈火网络电视v5.7,文件载入正常,但f9运行,Ollydbg也会自动退出请问这是自校验吗? rick 2005-10-31, 14:37:55 做坏事被人发现了,呵呵 所以就把你关掉了。。。。 笑语 2005-10-31, 15:08:08 还有我脱壳后程序可正常运行,但已载入od后在od里f9运行就不行,连od也一起关掉这到底是不是自校验?如果是该怎么解决?谢谢 笑语 2005-11-01, 01:16:59 地址 十六进制 反汇编 00501D0F E8 5824F6FF call firetv_U.0046416C 00501D14 8B0D A8525000 mov ecx,dword ptr ds:[5052A8] ; firetv_U.005074F4 00501D1A 8B03 mov eax,dword ptr ds:[ebx] 00501D1C 8B15 28854F00 mov edx,dword ptr ds:[4F8528] ; firetv_U.004F8574 00501D22 E8 4524F6FF call firetv_U.0046416C 00501D27 8B0D 1C4F5000 mov ecx,dword ptr ds:[504F1C] ; firetv_U.005074FC 00501D2D 8B03 mov eax,dword ptr ds:[ebx] 00501D2F 8B15 A0884F00 mov edx,dword ptr ds:[4F88A0] ; firetv_U.004F88EC 00501D35 E8 3224F6FF call firetv_U.0046416C 00501D3A 8B0D 784F5000 mov ecx,dword ptr ds:[504F78] ; firetv_U.00507504 00501D40 8B03 mov eax,dword ptr ds:[ebx] 00501D42 8B15 908A4F00 mov edx,dword ptr ds:[4F8A90] ; firetv_U.004F8ADC 00501D48 E8 1F24F6FF call firetv_U.0046416C 00501D4D 8B0D E4525000 mov ecx,dword ptr ds:[5052E4] ; firetv_U.0050750C 00501D53 8B03 mov eax,dword ptr ds:[ebx] 00501D55 8B15 64944F00 mov edx,dword ptr ds:[4F9464] ; firetv_U.004F94B0 00501D5B E8 0C24F6FF call firetv_U.0046416C 00501D60 8B0D B4545000 mov ecx,dword ptr ds:[5054B4] ; firetv_U.00507514 00501D66 8B03 mov eax,dword ptr ds:[ebx] 00501D68 8B15 00964F00 mov edx,dword ptr ds:[4F9600] ; firetv_U.004F964C 00501D6E E8 F923F6FF call firetv_U.0046416C 00501D73 8B0D 78525000 mov ecx,dword ptr ds:[505278] ; firetv_U.0050755C 00501D79 8B03 mov eax,dword ptr ds:[ebx] 00501D7B 8B15 E4155000 mov edx,dword ptr ds:[5015E4] ; firetv_U.00501630 00501D81 E8 E623F6FF call firetv_U.0046416C 00501D86 8B0D D4525000 mov ecx,dword ptr ds:[5052D4] ; firetv_U.0050751C 00501D8C 8B03 mov eax,dword ptr ds:[ebx] 00501D8E 8B15 189A4F00 mov edx,dword ptr ds:[4F9A18] ; firetv_U.004F9A64 00501D94 E8 D323F6FF call firetv_U.0046416C 00501D99 8B0D 94505000 mov ecx,dword ptr ds:[505094] ; firetv_U.005074E0 00501D9F 8B03 mov eax,dword ptr ds:[ebx] 00501DA1 8B15 78714F00 mov edx,dword ptr ds:[4F7178] ; firetv_U.004F71C4 00501DA7 E8 C023F6FF call firetv_U.0046416C 00501DAC 8B03 mov eax,dword ptr ds:[ebx] 请问这段代码 是什么意思,因为程序运行到00501D0F就自动关闭了。我是菜鸟出来乍到请多多关照 nba2005 2005-12-01, 12:10:18 我最近也碰到这种情况. 由于是最新的壳版本,只好手动脱壳. 但OD载入就自动关闭了. 请高手指教,学习中. wangshq397 2005-12-01, 13:57:00 的确,有时用od无法载入,如何手动脱壳呢,是否需要先修改程序代码? kyc 2005-12-01, 15:25:03 这个不是自校验,是反调试. 004FDFE3 8D85 00FEFFFF lea eax,dword ptr ss:[ebp-200] 004FDFE9 50 push eax 004FDFEA 53 push ebx 004FDFEB E8 6496F0FF call <jmp.&USER32.GetWindowTextA> 004FDFF0 8D85 E4FDFFFF lea eax,dword ptr ss:[ebp-21C] 004FDFF6 8D95 00FEFFFF lea edx,dword ptr ss:[ebp-200] 004FDFFC B9 00010000 mov ecx,100 004FE001 E8 C668F0FF call firetvun.004048CC 004FE006 8B95 E4FDFFFF mov edx,dword ptr ss:[ebp-21C] 004FE00C B8 94E14F00 mov eax,firetvun.004FE194 004FE011 E8 426CF0FF call firetvun.00404C58 004FE016 85C0 test eax,eax 004FE018 74 0C je short firetvun.004FE026 004FE01A 6A 00 push 0 004FE01C 6A 00 push 0 004FE01E 6A 12 push 12 004FE020 53 push ebx 004FE021 E8 4E97F0FF call <jmp.&USER32.PostMessageA> 004FE026 6A 02 push 2 004FE028 53 push ebx 004FE029 E8 F695F0FF call <jmp.&USER32.GetWindow> 004FE02E 8BD8 mov ebx,eax 004FE030 85DB test ebx,ebx 004FE032 ^ 0F85 ADFEFFFF jnz firetvun.004FDEE5 004FE038 6A 00 push 0 004FE03A 68 A4E14F00 push firetvun.004FE1A4 ; ASCII "OLLYDBG" 004FE03F E8 6094F0FF call <jmp.&USER32.FindWindowA> 004FE044 85C0 test eax,eax 004FE046 74 0C je short firetvun.004FE054 004FE048 6A 00 push 0 004FE04A 6A 00 push 0 004FE04C 6A 12 push 12 004FE04E 50 push eax 004FE04F E8 2097F0FF call <jmp.&USER32.PostMessageA> 004FE054 6A 00 push 0 004FE056 68 ACE14F00 push firetvun.004FE1AC ; ASCII "TDeDeMainForm" 004FE05B E8 4494F0FF call <jmp.&USER32.FindWindowA> 004FE060 8BD8 mov ebx,eax 004FE062 85DB test ebx,ebx 004FE064 74 0C je short firetvun.004FE072 004FE066 6A 00 push 0 004FE068 6A 00 push 0 004FE06A 6A 12 push 12 004FE06C 53 push ebx 004FE06D E8 0297F0FF call <jmp.&USER32.PostMessageA> 004FE072 6A 00 push 0 004FE074 68 A4E14F00 push firetvun.004FE1A4 ; ASCII "OLLYDBG" 004FE079 E8 2694F0FF call <jmp.&USER32.FindWindowA> 004FE07E 85C0 test eax,eax 004FE080 74 0C je short firetvun.004FE08E 004FE082 6A 00 push 0 004FE084 6A 00 push 0 004FE086 6A 12 push 12 004FE088 50 push eax 004FE089 E8 E696F0FF call <jmp.&USER32.PostMessageA> 004FE08E 6A 00 push 0 004FE090 68 ACE14F00 push firetvun.004FE1AC ; ASCII "TDeDeMainForm" 004FE095 E8 0A94F0FF call <jmp.&USER32.FindWindowA> 004FE09A 85C0 test eax,eax 004FE09C 74 0C je short firetvun.004FE0AA 004FE09E 6A 00 push 0 004FE0A0 6A 00 push 0 004FE0A2 6A 12 push 12 004FE0A4 50 push eax 004FE0A5 E8 CA96F0FF call <jmp.&USER32.PostMessageA> 004FE0AA 6A 00 push 0 004FE0AC 68 BCE14F00 push firetvun.004FE1BC ; ASCII "explore" 004FE0B1 E8 EE93F0FF call <jmp.&USER32.FindWindowA> 004FE0B6 8BD8 mov ebx,eax 004FE0B8 85FF test edi,edi 004FE0BA 74 4B je short firetvun.004FE107 004FE0BC 6A 00 push 0 004FE0BE 68 C4E14F00 push firetvun.004FE1C4 ; ASCII "MDIClient" 004FE0C3 6A 00 push 0 004FE0C5 53 push ebx 004FE0C6 E8 E193F0FF call <jmp.&USER32.FindWindowExA> 004FE0CB 8BF8 mov edi,eax 004FE0CD 85FF test edi,edi 004FE0CF 74 36 je short firetvun.004FE107 004FE0D1 68 D0E14F00 push firetvun.004FE1D0 ; ASCII "CPU" 004FE0D6 6A 00 push 0 004FE0D8 6A 00 push 0 004FE0DA 57 push edi 004FE0DB E8 CC93F0FF call <jmp.&USER32.FindWindowExA> 004FE0E0 8BF8 mov edi,eax 004FE0E2 85FF test edi,edi 004FE0E4 74 21 je short firetvun.004FE107 004FE0E6 6A 00 push 0 004FE0E8 68 D4E14F00 push firetvun.004FE1D4 ; ASCII "OOOOASM" 004FE0ED 6A 00 push 0 004FE0EF 57 push edi 004FE0F0 E8 B793F0FF call <jmp.&USER32.FindWindowExA> 004FE0F5 8BF8 mov edi,eax 004FE0F7 85FF test edi,edi 004FE0F9 74 0C je short firetvun.004FE107 004FE0FB 6A 00 push 0 004FE0FD 6A 00 push 0 004FE0FF 6A 12 push 12 004FE101 53 push ebx 004FE102 E8 6D96F0FF call <jmp.&USER32.PostMessageA> 004FE107 33C0 xor eax,eax nba2005 2005-12-01, 17:56:35 不知怎么解决? 手动脱壳后运行正常,但经OD载入后就跳出,OD自动关闭。 未脱壳的没有这种现象。 难道不是自检效验吗?如果是反调试,那应该在未脱壳的软件上也会自动关闭。 不管什么原因,有那些解决的方法? yuyu 2005-12-03, 18:27:30 你用插件将OD隐藏,试试吧. marsaber 2005-12-03, 21:34:03 用插件将OD隐藏? 请教一下,怎么隐藏? yuyu 2005-12-04, 02:40:29 OD 用: ODbyDYK v1.10[05.09] 这个版本 在菜单有: 插件->调试OD隐藏插件. nba2005 2005-12-04, 12:01:12 下午就行动. cyto 2005-12-05, 21:16:56 根据10楼的,把其中OLLYDBG的两个跳转爆破掉就可以调试了。 OD自带的隐藏功能没用。 该程序也反调试DeDe,脱壳后发现是Delphi。 bqrmfjhh 2006-05-25, 14:43:37 这个程序比较简单。把他的黑名单改下就好了.不算什么难的.内存中搜索OLLYDBG,修改他为别的自然就不会关了你的OD. 该文章在 2014/4/10 11:30:30 编辑过 |
关键字查询
相关文章
正在查询... |