首页
社区
课程
招聘
[旧帖] [讨论]撞墙了,大家给点提示吧 0.00雪花
发表于: 2007-8-21 20:13 4689

[旧帖] [讨论]撞墙了,大家给点提示吧 0.00雪花

2007-8-21 20:13
4689
不知道大家有没有接触过watercad这个软件,是比较专业的一个软件。用在供水方面。是通过注册码来控制可以计算的管道数。网络上有一个注册码,不过只能计算25条管道,基本没什么用。我斗胆想试试破解一下,发现巨难无比(对我而言,呵呵)。启动watercad是一个叫WTRC.exe的程序,只有几十k,很小,通过WTRC.exe启动另外一个WTRCsys.exe的程序。用od加载wtrc.exe启动程序后,如果将WTRC.exe关闭,则WTRCsys.exe还在运行,而且功能上没什么限制,但是直接加载WTRCsys.exe,却不能显示出主界面,但是在任务管理器能看到WTRCsys.exe进程。用od查看,没有发现有messageboxa这样的函数,wtrcsys.exe中有却没有办法直接运行。估计程序检查注册码的过程是由动态库完成的,安装目录底下有数十个dll,实在不知道是哪个弹出的提示注册码不对的窗口。不知道这是什么加密技术,难道是虚拟机吗?那对我这样的菜鸟只能是望尘莫及了。
不知道哪位大侠可以提供一个思路,这样的软件怎么突破?谢谢。
这个软件电驴上可以下载,也可以上它的中国网站上下载。网址是:http://www.bentley.com.cn/product/haestad.aspx?skid=1-7F446M
不过下载这个软件需要注册一下信息,随便填填就可以了。它会发一个试用版的注册码给你用,不过就十个管道,只能试试,不能用在实际工作中。

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

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
从来都没有人遇到做这样的软件吗?用exe文件启动另外一个exe?
2007-8-24 12:40
0
雪    币: 184
活跃值: (108)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
3
呵呵,这个是最简单的进程调用。涉及不到虚拟机。

跟踪一下,你会发现它调用的方式,它有一些附加参数,你跟踪到这些附加参数,就可以直接启动后面这个文件了。

比如  b.exe -abcdef -mnbvc
2007-8-24 21:52
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
push    eax                              ; /pProcessInfo
lea     eax, [ebp-58]                    ; |
push    eax                              ; |pStartupInfo
push    ebx                              ; |CurrentDir
push    ebx                              ; |pEnvironment
push    20                               ; |CreationFlags = NORMAL_PRIORITY_CLASS
push    ebx                              ; |InheritHandles
push    ebx                              ; |pThreadSecurity
push    ebx                              ; |pProcessSecurity
push    esi                              ; |CommandLine
push    ebx                              ; |ModuleFileName
mov     [ebp-58], edi                    ; |
call    [<&KERNEL32.CreateProcessA>]     ; \CreateProcessA
这是我跟踪到的代码,那上面哪个是参数呢?有没有相关的文章推荐一篇。谢谢。
2007-8-27 11:12
0
雪    币: 1505
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
5
能不能用od的附加调试呢
先用WTRC.exe启动WTRCsys.exe
然后用od附加到WTRCsys
2007-8-27 11:32
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
0012FE7C   00000000  |ModuleFileName = NULL
0012FE80   008A06E0  |CommandLine = "wtrcSYS.exe "
0012FE84   00000000  |pProcessSecurity = NULL
0012FE88   00000000  |pThreadSecurity = NULL
0012FE8C   00000000  |InheritHandles = FALSE
0012FE90   00000020  |CreationFlags = NORMAL_PRIORITY_CLASS
0012FE94   00000000  |pEnvironment = NULL
0012FE98   00000000  |CurrentDir = NULL
0012FE9C   0012FEB0  |pStartupInfo = 0012FEB0
0012FEA0   0012FEF4  \pProcessInfo = 0012FEF4
2007-8-27 11:40
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
能详细一点吗?
2007-8-27 11:44
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
经过这几天调试,发现主界面其实是一个动态库实现的。这个动态库好像可以通过什么判断是否显示出来。这个程序启动是这样的。a.exe启动b.exe,b.exe启动C.dll,C.dll判断是否显示界面。直接启动b,则不显示主界面。但是在任务管理器可以看到b.exe。主界面是由c.dll完成的。这样的东东实在好复杂,给个思路吧。
c.dll是通过什么判断要不要显示主界面呢?从b.exe加载c.dll的过程来看,好像没有给它传递参数呀?
2007-8-29 13:20
0
雪    币: 204
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
不懂,关注中,期待有人给出答案
2007-8-29 14:42
0
雪    币: 197
活跃值: (82)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
期待有人写出详细的破文
2007-8-29 15:48
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
有没有哪位达人给个思路呀?自己顶了
2007-8-30 09:00
0
游客
登录 | 注册 方可回帖
返回
//