有关破解的几个问题

hunters2000 2004-09-26 09:44:23
工作需要,要写个自动化测试软件,其中要调用novell公司的一个可执行文件perform3.exe,可是这个程序运行期间有两次"please press any key to continue...",所以我的程序就没办法流水起来.用w32dasm却没有发现有关键盘输入的地方,我检查的都是int 21h调用,问一下高手是否还有其他方式输入。还有就是我用ultraedit修改这个文件中的其中一个call,把这个call全用nop代替,可是运行报错,说不支持,修改其它地方也不行,请问其中的原则是什么?
附:perform3.exe是个ne格式的文件,用于测试交换机等网络设备
...全文
326 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
snowegale888 2004-10-16
  • 打赏
  • 举报
回复
两次应该调用的一个函数吧
如果发现可能改一次就搞定
一般的调用都是这种形式的
push **
push **
call **
clumsy 2004-10-16
  • 打赏
  • 举报
回复
BIOS 键盘中断应该是 int16h 吧
Rex_love_Burger 2004-10-15
  • 打赏
  • 举报
回复
up
Calvin777 2004-10-15
  • 打赏
  • 举报
回复
检查一下,或许程序是直接调用了BIOS int 13h 的键盘功能 ,而不是调用的int 21h 或许会有斩获。
tom88 2004-10-11
  • 打赏
  • 举报
回复
up
不老小孩 2004-10-11
  • 打赏
  • 举报
回复
应该是堆栈造成的
zhangze 2004-10-08
  • 打赏
  • 举报
回复
将调用键盘中断的地方替换其他的,如果返回值在ax中,替换为mov ax,.... ;如果为其他的,则将寄存器直接修改应该就跳过去了。你原来的可能因为程序堆栈或者程序标记造成的
lordor 2004-10-07
  • 打赏
  • 举报
回复
或者你把那个程序提供出来,有空看看
fort2000 2004-09-30
  • 打赏
  • 举报
回复
不知道call的是什么子程序就跳过的话是会导致错误的发生,还是应该跟踪进去分析一下。
hunters2000 2004-09-29
  • 打赏
  • 举报
回复
我把前面得push和call都用nop代替了,报错:程序链结超出极限
怎么回事
lsaturn 2004-09-28
  • 打赏
  • 举报
回复
nop就可以了吗?
你把前面的push给nop了吗?
fort2000 2004-09-27
  • 打赏
  • 举报
回复
跳过不一定能解决问题。
sunrui 2004-09-27
  • 打赏
  • 举报
回复
修改可执行文件是一个办法,不过你可以试试用输入重定向解决?
xjp6688 2004-09-26
  • 打赏
  • 举报
回复
www.pediy.com
clumsy 2004-09-26
  • 打赏
  • 举报
回复
反汇编检查的话, 可以从那个提示字符串入手, 看看是哪里引用了它, 再作修改
turnto 2004-09-26
  • 打赏
  • 举报
回复
HIEW
cynic0916 2004-09-26
  • 打赏
  • 举报
回复
应该是跳过要求输入的那段,而不是改CALL
至于改程序,哪个应该都行
fort2000 2004-09-26
  • 打赏
  • 举报
回复
这和用何种编辑器修改应该没有什么关系,
最好用调试软件跟踪进去看一下,切入点可以选在提示信息处,可以对提示调用信息的内存位置下断,调试工具的话softice不错,只是不知道softice现在可以找到的版本是否支持ne这种老格式,如果不可以的话可以再试试trw,
纪俊 2004-09-26
  • 打赏
  • 举报
回复
用Hiew来修改吧

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧