能力值:
(RANK:260 )
2 楼
再试试。
应该是你找的程序恰好都反调试,或者是带有反调试的壳。
试试自己写的程序,或者Windows自带的程序,如notepad.exe
这种情况一般不是OD的问题,是被调程序的问题。
能力值:
( LV2,RANK:10 )
3 楼
谢谢,真的太感谢了,没想到这么快就有人回复了。
恩。现在知道不是OD的问题了。
可是这种反调调试的程序。或带有反调试的壳的程序。有什么破解思路吗。
能力值:
(RANK:260 )
4 楼
所谓的 "反-反调试“ 技术。
看样子你是初学者,这个不容易说清楚。
基本思路就是,把所有能用来反调试的路提前给它堵死。
比如可能会使用 IsDebuggerPressent 这个API来检测调试器,那么我们就提前在这个API处下断点进行拦截,这样当它调用到这里时,就到了我们调试人员的掌握之中了。
另外,带有壳的程序调试之前一般都需要先脱壳,特别是反调试的保护壳。
带壳调试仅仅在非常少见的情况下才用。
脱壳呢,又是比较深的学问了,不好意思,在壳的方面我也学习不够深入,不敢妄言。
但很多常见的壳都是有自动化脱壳工具,如脱壳机或OD的脚本,一般常见壳都可以自动脱壳的。
关于壳的话题,可以到论坛中找找,有大量的壳界高手写的文章。我就不多说了。
能力值:
( LV2,RANK:10 )
5 楼
恩。大体思路明白了。
有好心人真的不一样啊。我考虑了几天的问题。这几分种就明白怎么回事了。 虽然没解决,但总
算知道问题出在那里了。这也是进步啊。
现在新问题又出来了。我加载的程序主程序好象没加壳。用PEiD查是Delphi写的。但我一运行。主进程创建了一个新进程然后这个主进程就退出了。同时在(C:\Documents and Settings\1\Local Settings\Temp)目录下创建了这个新进程的EXE文件
(可是双击不能运行。只能有原程序运行后引导。)这个新的EXE文件一修改,下次运行主程序就会自动修复。
我用OD附加这个新进程好象是有壳的。(反调试的也是这个新的进程。) 。我现在就算脱了这个新文件的壳。下次运行也会修复,根本不顶用。这种创建另一个进程的软件破解,有什么思路吗。
谢谢啦。
呆彭哥 我可以加你的QQ吗。我不会很烦人的。我Q是 736383171
能力值:
(RANK:260 )
6 楼
如果是普通的一个进程启动另一个进程,解密用便不再管它,这种情况相对好处理。
在父进程中 下断点bp CreateProcessA或W,在断下来后查看堆栈,会看到它所创建新进程的程序文件名和命令行参数。
如果创建的进程不带调试标志(请查阅MSDN对CreateProcess函数参数的说明),就是我说的普通情况。
如果不带有挂起(CREATE_SUSPENDED)标志,那就可以直接把对应的文件复制出来,如果文件名不对,改名为.exe后一般可运行。
如果带有挂起(CREATE_SUSPENDED)标志,一般子进程是加密的,就先不处理,而是下断点bp ResumeThread,然后F9运行。等再次断下时,表明已经解密完成,直接用LordPE将新创建的进程DUMP出来,保存为.exe文件。
试一试,一般此时DUMP出来的程序已经可以运行了。
如果想直接调试新的进程,而不是DUMP出来,可以将子进程的入口处的首字节改为0xCC,当然你要将OD设置成为系统的JIT Debugger,那么当新进程一开始执行,就会发生异常,唤起调试器,在调试器中将入口点改回来即可。
这是一种非常常用的基本技术。 有时候DUMP出来的程序会检测父进程,如果不是它想要的就直接退出。
此时可以对新DUMP出来的程序打补丁。
关于父进程检测,并不难,有很多文章,自己搜索一下就知道了。常用的断点是PSAPI,如EnumProcesses,GetModuleFileNameEx,EnumProcessModules,等等 另外一种情况,就是类似于穿山甲的“双进程”模式,父进程是子进程的调试器。
这类情况比较难,我水平也有限,就不献丑了。 还有,千万别叫哥。
能力值:
( LV9,RANK:180 )
7 楼
呆彭妹真是热心
能力值:
(RANK:260 )
8 楼