首页
社区
课程
招聘
[求助]新人求助(OD加载问题)
发表于: 2008-10-29 03:05 3994

[求助]新人求助(OD加载问题)

2008-10-29 03:05
3994
OD加一个程序之后。一点运行。程序窗口刚出来就卡在那里动不了了。换了好几个OD版本都不行。

可是有的程序加载之后就没有这种情况。我把三人行的教程里,软件拿来试都没有这种情况。

可是我自己随边找一个就这样啊。

请高手给指条明路。这个问题怎么解决。

拜谢。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
2
再试试。

应该是你找的程序恰好都反调试,或者是带有反调试的壳。

试试自己写的程序,或者Windows自带的程序,如notepad.exe

这种情况一般不是OD的问题,是被调程序的问题。
2008-10-29 03:09
0
雪    币: 118
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢,真的太感谢了,没想到这么快就有人回复了。

恩。现在知道不是OD的问题了。

可是这种反调调试的程序。或带有反调试的壳的程序。有什么破解思路吗。
2008-10-29 03:13
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
4
所谓的 "反-反调试“ 技术。

看样子你是初学者,这个不容易说清楚。

基本思路就是,把所有能用来反调试的路提前给它堵死。

比如可能会使用 IsDebuggerPressent 这个API来检测调试器,那么我们就提前在这个API处下断点进行拦截,这样当它调用到这里时,就到了我们调试人员的掌握之中了。

另外,带有壳的程序调试之前一般都需要先脱壳,特别是反调试的保护壳。

带壳调试仅仅在非常少见的情况下才用。

脱壳呢,又是比较深的学问了,不好意思,在壳的方面我也学习不够深入,不敢妄言。

但很多常见的壳都是有自动化脱壳工具,如脱壳机或OD的脚本,一般常见壳都可以自动脱壳的。

关于壳的话题,可以到论坛中找找,有大量的壳界高手写的文章。我就不多说了。
2008-10-29 03:26
0
雪    币: 118
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
恩。大体思路明白了。

有好心人真的不一样啊。我考虑了几天的问题。这几分种就明白怎么回事了。 虽然没解决,但总

算知道问题出在那里了。这也是进步啊。

现在新问题又出来了。我加载的程序主程序好象没加壳。用PEiD查是Delphi写的。但我一运行。主进程创建了一个新进程然后这个主进程就退出了。同时在(C:\Documents and Settings\1\Local Settings\Temp)目录下创建了这个新进程的EXE文件
(可是双击不能运行。只能有原程序运行后引导。)这个新的EXE文件一修改,下次运行主程序就会自动修复。

我用OD附加这个新进程好象是有壳的。(反调试的也是这个新的进程。) 。我现在就算脱了这个新文件的壳。下次运行也会修复,根本不顶用。这种创建另一个进程的软件破解,有什么思路吗。
谢谢啦。

呆彭哥 我可以加你的QQ吗。我不会很烦人的。我Q是 736383171
2008-10-29 03:50
0
雪    币: 2110
活跃值: (21)
能力值: (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,等等

另外一种情况,就是类似于穿山甲的“双进程”模式,父进程是子进程的调试器。

这类情况比较难,我水平也有限,就不献丑了。

还有,千万别叫哥。
2008-10-29 11:41
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
7
呆彭妹真是热心
2008-10-29 11:48
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
8


叫书呆就行了,我不喜欢别人叫哥。我是男人。
2008-10-29 11:55
0
游客
登录 | 注册 方可回帖
返回
//