-
-
[旧帖]
[原创]新手初练
0.00雪花
-
发表于:
2008-10-8 14:23
3166
-
上班玩游戏时为了防止被领导发现下了个hidewindow这个软件,一看要交20块钱。。。顿时郁闷了,只好破解试试了,谁叫咱是网络流氓呢向来不付钱。
工具:ollydbg
过程:双击软件发现会进入软件操作窗口,但是窗口马上消失了,进程也消失了。这个时候应该想到什么了吧 SetTimer 和 KillTimer 。
破解思路1:
让程序跳过Settimer。
破解思路2:
把SetTimer后要执行的事件NOP掉。
用OD(ollydbg)开始调试软件,进去后下断点bpx SetTimer,发现有2个,首先要找出是哪个
SetTimer控制软件的关闭。按下F9被断下来在0045A79F,我们往上看下,看它是怎么被启动的
0045A76B |. 55 push ebp
0045A76C |. 68 DFA74500 push 0045A7DF
0045A771 |. 64:FF30 push dword ptr fs:[eax]
0045A774 |. 64:8920 mov dword ptr fs:[eax], esp
0045A777 6A 01 push 1
0045A779 |. 8B43 34 mov eax, dword ptr [ebx+34] ; |
0045A77C |. 50 push eax ; |hWnd
0045A77D |. E8 FA8C0300 call <jmp.&USER32.KillTimer> ; \KillTimer
0045A782 |. 8B73 30 mov esi, dword ptr [ebx+30]
0045A785 |. 85F6 test esi, esi
0045A787 74 40 je short 0045A7C9
0045A789 |. 807B 40 00 cmp byte ptr [ebx+40], 0
0045A78D |. 74 3A je short 0045A7C9
0045A78F |. 66:837B 3A 00 cmp word ptr [ebx+3A], 0
0045A794 74 33 je short 0045A7C9
0045A796 6A 00 push 0
0045A798 |. 56 push esi ; |Timeout
0045A799 |. 6A 01 push 1 ; |TimerID = 1
0045A79B |. 8B43 34 mov eax, dword ptr [ebx+34] ; |
0045A79E |. 50 push eax ; |hWnd
0045A79F |. E8 E08D0300 call <jmp.&USER32.SetTimer> ; \SetTimer
看红色的部分,如果在红色的位置向下跳了那么就不会执行settimmer,所以我们将任意一个
je short 0045A7C9 修改成 jmp short 0045A7C9 即可。保存修改,收工测试,成功。
[课程]Linux pwn 探索篇!