中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [讨论]编程中发现一个奇怪的问题
« [1] [2] »
作者:
标题: [讨论]编程中发现一个奇怪的问题 上一主题 | 下一主题
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 16 楼』:  

那个思路还是能被找到源码=。=



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2008-7-20 19:02
查看资料  发短消息 网志   编辑帖子  回复  引用回复
quya
高级用户

五星老土


积分 558
发帖 172
注册 2003-2-9
来自 江苏
状态 离线
『第 17 楼』:  



  Quote:
Originally posted by slore at 2008-7-20 07:02 PM:
那个思路还是能被找到源码=。=

假如我的思路实现了,说说你怎么找源码?

如果太容易的话, 我这个就太没意思了。



我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
2008-7-20 22:46
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 18 楼』:  

比如 Internet 缓存文件夹,这种文件夹用资源管理器是看不见的, 只能用DOS看。

所以为了防止DOS下dir, copy, 就要把批处理杀死。就我经验来看,成功copy出临时释放的BAT, 手脚快点大概要2秒钟(不包括搜索的时间), 这个时间足够终止批处理了。

这些命令可以直接在运行里面输入
cmd /c copy ....


taskkill 也可以在运行里输入。。

先list下然后根据pid删除你检测的……

p的检测效率应该也不高。。。

任务管理器(长牛角遗留的产物)也可以看到参数。。。


最有效的就。。。
olg……看不懂也无所谓。。。F8单步进入。。。慢慢进。。。那个是暂停哦~
然后想干啥不行?



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2008-7-20 22:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
quya
高级用户

五星老土


积分 558
发帖 172
注册 2003-2-9
来自 江苏
状态 离线
『第 19 楼』:  

cmd/c copy 不知道路径怎么拷贝?

先list下然后根据pid删除你检测的…… 我说的2个程序可以互为检测的,一个程序被杀,另一个退出并删除自己。而且list也是CMD进程,没看清就被杀了。

我自己已经试演了下,几乎刚运行CMD就退出了, 你怎么去list 再taskkill? 问题是通用性和实用性, 真要杀个CMD进程很简单。



我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
2008-7-20 23:19
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 20 楼』:  

等你做个成品出来,看看好。



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2008-7-20 23:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 21 楼』:  

现在的问题是,你怎么检测进程?还是用 tasklist 吗?那样启不是又要创建新的cmd进程?



致精致简!
2008-7-21 00:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 22 楼』:  

按你的意思写了个,当批处理运行后,除非  按任意键结束 友军.bat,即可结束所有cmd进程,否则会关闭所有其它cmd进程,中途运行的也不列外。

  Quote:

  1. @echo off&setlocal enabledelayedexpansion
  2. start yj.bat
  3. :loop
  4. for /f "tokens=2" %%i in ('tasklist /nh /fi "imagename eq cmd.exe"') do (
  5.   set "pid=%%i !pid!"
  6. )
  7. for /f "tokens=3*" %%a in ("!pid!") do if "%%b"=="" set "pid="
  8. if not defined flag (
  9.   for /f "tokens=2,3" %%a in ("!pid!") do set :%%a=%%a&set :%%b=%%b
  10. )
  11. set flag=a
  12. if defined pid (
  13.    for %%a in (!pid!) do if not defined :%%a taskkill /f /pid %%a >nul 2>nul
  14.    set "pid="
  15. )
  16. goto loop
                小楼一夜听春雨  2008-07-21  00:22

yj.bat 内容
@echo off
title yy
color cf
echo 按任意键结束所有cmd进程
pause>nul
taskkill /im cmd.exe /f




致精致简!
2008-7-21 00:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qzwqzw
银牌会员

天的白色影子


积分 2342
发帖 635
注册 2004-3-6
状态 离线
『第 23 楼』:  

研究P的加密完全是搬石头砸脚的行为
目前为止除了代码级的纯编译器外
没有任何加密或者文件级的编译行为可以完全防止源码泄露
你所说的杀进程只是对一种可能的破解思路的对应方式
其它的破解办法还有很多

个人认为保证批处理代码不被泄露的方法只有三个:



一是不让人知道或猜到当前运行的是批处理代码
二是使用其它真正可编译的高级语言重写代码
三是仅仅只是自己使用而不发布编译的程序


[ Last edited by qzwqzw on 2008-7-21 at 10:24 AM ]

2008-7-21 10:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qinbuer
高级用户

我思故我在


积分 512
发帖 228
注册 2007-1-21
状态 离线
『第 24 楼』:  

似乎以上的方法都是假设了使用者是菜鸟。个人并不看好这种加密方法,并非只有在CMD进程才可以看Internet 缓存文件夹,就算你将批处理放在畸形目录下,还是可以用第三放资源管理器看到(比如totalcommand或者wsyscheck),而且真要这样子的话,那和随便找一个多级子目录存放有何不同?至于路径,稍微侦听一下程序的运行过程就可以得知。



我确实是只菜鸟,而且这里X人太多,所以我不敢装X。谁要再说我装X,我就XXOO他。
2008-7-21 16:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qinbuer
高级用户

我思故我在


积分 512
发帖 228
注册 2007-1-21
状态 离线
『第 25 楼』:  

qzwqzw兄:
一 每运行一个批处理必然要启动命令解释器(cmd.exe),如何能让人“猜不到”?
二 如果兄台说的是在程序内部调用CMD命令,那么太多工具可以将它找出来了,如果兄台所说的是将批处理完全编译成EXE,恐怕只有微软开发者才能做到
三 就算不发布自己的代码,如何能保证个人电脑不被黑客入侵?^_^

[ Last edited by qinbuer on 2008-7-21 at 05:20 PM ]



我确实是只菜鸟,而且这里X人太多,所以我不敢装X。谁要再说我装X,我就XXOO他。
2008-7-21 17:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qzwqzw
银牌会员

天的白色影子


积分 2342
发帖 635
注册 2004-3-6
状态 离线
『第 26 楼』:  

本来不想说得太多
因为对加密Pcode的行为很是反感

不过看你没有真正理解我的意思
索性再多说几句

关于第一点
首先要做到隐藏CMD窗口运行
其次可以产生附属的WIN窗口运行
习惯思维是很可怕的
即使是老手
如果他没想到你的程序是批处理
那么破起来也是相当麻烦的
再平衡一下功效比
可能就直接放弃了
当然如果他对你的代码很感兴趣
那么在巨大的诱惑下总会有各式各样的方案出炉的
不怕贼头就怕贼惦记

关于第二点
你看错了
我说得不是重编译
而是重写
即用类似的算法和数据结构重新开发一边代码
虽然代价大了些
但有时也不失为一种办法
至于你所说的“完全编译”
在DOS平台下曾经出现过接近的版本
它会把dir等内部命令用相应的汇编代码来实现
记不清了好像是bat2exec
但是它的局限性很多

第三点就纯属抬杠了
不辨也罢

最后
我想说的是
我特意将那三点意见标红
只是想用那些意见的不切实际
来反讽加密批处理想法的不切实际
而你竟然还真的断章取义去了
可叹!

[ Last edited by qzwqzw on 2008-7-21 at 06:17 PM ]

2008-7-21 18:15
查看资料  发短消息 网志   编辑帖子  回复  引用回复
quya
高级用户

五星老土


积分 558
发帖 172
注册 2003-2-9
来自 江苏
状态 离线
『第 27 楼』:  

当然是防菜鸟和中鸟了, 高级鸟假如有功夫破解我的代码,那么还不如自己去编一个,时间可能更短,代码可能更好。

totalcommand或者wsyscheck 有几个人知道?

我好像只听说前者,不过也从来未用过。 因为我记得有本桥牌书谈及所谓的高级技巧, 说过这样的话:

假如你为了一年一次玩一次高尔夫球,而把球棒经常带在身边,你还不如把球棒扔了。

同样道理,我不会为了去看隐藏目录而去了解什么totalcommand或者wsyscheck。因为DIR这么简单的命令足够了。

微软的激活机制都可以破,还有什么不能破的? 世界上有什么软件不能破? 没有全部破, 是因为应用不广或者不值得花力气去破。

那么我们难道可以嘲笑微软搞激活是枉费心机, 不切实际,搬起石头砸自己的脚?

[ Last edited by quya on 2008-7-21 at 06:39 PM ]



我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
2008-7-21 18:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: