是这样的小弟跟踪软件,却经常发现这样一个问题,研究了这个问题好久..一直想不通.....快精神崩溃了...
1.比如用softice设断,可以拦截MessageBoxA.停在MessageBoxA的领空,按下几次f12后,弹出错误提示框,主程序早就关闭了.无法回到主程序了.如果不静态分析的话,请问应该怎样让他中断在call的入口,而不要进去,因为如果进去的话我想主进程都kill了...
______________________________________________________________________
下面是另外一个软件他分为SERVER和CLINET端(小弟把客户端和服务器端都装在同一机器上了所以生成的机器码相同),客户端和服务器端都会在注册表生成不同的两子键,注册码也是不一样的.象这样,这是我自己买的一套生成的:
[HKEY_LOCAL_MACHINE\SOFTWARE\CommSoft\RegistrKey\ChainEnt.Svr]
[HKEY_LOCAL_MACHINE\SOFTWARE\CommSoft\RegistrKey\ChainEnt.Clt]
MU5VW-kNPRT-VGQjh-NS0ZQ
7BE5B4F6DD2204589AE2A7EDC08265F94 服务器
B3DF7AC19C847BD325509DE510DD1A40439BE679 工作站
2.一个程序进程名字是:ChainEnt.exe先用OD加载他->run->bp RegQueryValueExA 和 bp MessageBoxA 在启动的时候需要判断注册码客户端的注册码,注册码是在注册表中,小弟太菜跟了好久,仍然找不出计算的核心,只好爆破了.好了,跳过客户端的验证后,会弹出一个窗口要求输入用户编号和登陆口令以和SQL服务器连接(小弟把客户端和服务器端都装在同一机器上了所以生成的机器码相同),输入之后按下确定,运行了一会后,可以看到OD的左下脚提示:新线程已经创建.
之后,会弹出服务器未注册的提示,可是这个窗口却没有被OD拦截下来,也没有拦截下来读注册表
为了验证仍然设断MessageBoxA,和RegQueryValueExA ,不过改用Softice却可以拦截的下来,请问OD拦不下来是不是因为新线程已经创建?这个问题郁闷了一个多月了还是搞不懂....而且奇怪的是用Softice虽然拦截下RegQueryValueExA可是调用的确是SetRegValueExa,不是应该是读服务器在注册表中的键值吗?怎么变成设置了?拦下来的MessageBoxA按几下f12后,弹出服务器未注册提示后,虽然主进程没有关闭,但按12却同样回不到程序领空,停在了系统领空中了.请问这样是不是就是因为创建了新线程了???弄了1个多月,真的快精神崩溃了,请高手指出迷津...........
---------------------------------------------------------------------
这是一款商业软件,不知道有没有前辈愿意指教的......20MB,不知道这样有没有违反了论坛的规定...如果没有,切有前辈愿意尝试的话,我找个空间UP.
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课