![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-09 05:17 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 一个加壳的批处理竟无法破解(已结) |
| 可打印版本 3,463 / 31 |
| 第1楼 jonsonqf | 发表于 2008-06-29 15:18 |
| 初级用户 发帖 29 积分 65 | |
|
一个加壳的批处理竟无法破解(已结) 前段时间看到批处理加解密的大讨论,批处理是难真正的加密的,一般都可以在临时文件夹找到源码,但是今天恰好看到这个加壳的exe,竟然无法找到源码,请有兴趣的朋友一起研究下。
貌似帖子中无法上传附件,我已经把附件上传到论坛的上传系统那里了,下载地址是: (已结,多谢下面回复的几位朋友) [ Last edited by jonsonqf on 2008-7-2 at 10:30 AM ] |
|
| 第2楼 plp626 | 发表于 2008-06-29 15:44 |
| 银牌会员 发帖 1,020 积分 2,278 | |
|
那个用汇编写的bat2exe.com转换后的exe不生成临时文件,非一般方法可以得到源码
|
|
| 第3楼 knoppix7 | 发表于 2008-06-29 16:04 |
| 银牌会员 发帖 634 积分 1,287 来自 cmd.exe | |
|
用Ollydbg打开EXE. 插件=> Ollydump=K.O.
|
|
| 第4楼 quya | 发表于 2008-06-29 16:37 |
| 高级用户 发帖 172 积分 558 来自 江苏 | |
|
我似乎尚未发现有哪款BAT转EXE的工具能真正隐藏bat源文件。加壳的也一样。
除非源程序没有交互式的界面,而且执行速度非常快,快到你找到源文件来不及复制它就自动删除了。 所以找到源文件的简单办法就是, 执行转换了的exe文件,等到程序要你输入的时候,不理它, 到%tmp%目录找,总是能找到, 有时候还是隐藏的。 为了方便找到,在运行之前可以先清一下%tmp%目录, 把隐藏文件的选项关闭。 也许我孤陋寡闻, 所以希望哪个高手提供我一个如楼主说的找不到源文件的转换程序。(我无法下载楼主的附件,但我看了3楼帖的源码,相信在临时文件夹几乎能找到源码,因为那是个有交互界面的程序) 谢谢! 另外对于那些没有交互界面,执行速度较快的文件, 也许可以用下面的思路来抓住它。 编一个拷贝程序,加上一定的延时(延时多少视转换的执行程序的速度而定),不停的从%tmp%目录向不同目录拷贝, 然后启动那个程序,很有可能就抓住它了, 一次不行可以试多次。 [ Last edited by quya on 2008-6-29 at 09:44 PM ] |
|
| 第5楼 mountvol | 发表于 2008-06-29 16:56 |
| 初级用户 发帖 117 积分 186 | |
|
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
autorun="dir *.bat&pause" 或者可以直接拷贝到你想拷贝的地方。 |
|
| 第6楼 knoppix7 | 发表于 2008-06-29 19:39 |
| 银牌会员 发帖 634 积分 1,287 来自 cmd.exe | |
|
我说下我的结果吧.
利用If 进行命令注入的时候尝试过 Call type "%~0" 但是.这个值为空.%cd%指向执行目录. 所以..我怀疑..这个Bat执行时没有临时文件. 过几天试试filemon看看. |
|
| 第7楼 jonsonqf | 发表于 2008-06-29 21:09 |
| 初级用户 发帖 29 积分 65 | |
Originally posted by quya at 2008-6-29 04:37 PM: 佩服下3楼先,不过我这边临时文件夹temp确实是找不到这个的,我相信3楼应该不是在临时文件夹找到的吧?请恕我比较菜,不知道3楼的这位朋友能不能说明白一点呢?非常感谢你的解答! [ Last edited by jonsonqf on 2008-6-29 at 09:13 PM ] |
|
| 第8楼 jonsonqf | 发表于 2008-06-29 21:10 |
| 初级用户 发帖 29 积分 65 | |
Originally posted by knoppix7 at 2008-6-29 07:39 PM: 他如果没有临时文件的话,那天怎么执行的呢?他这个应该本来就是个批处理吧? |
|
| 第9楼 quya | 发表于 2008-06-29 21:47 |
| 高级用户 发帖 172 积分 558 来自 江苏 | |
Originally posted by jonsonqf at 2008-6-29 09:10 PM: 凡是批处理的开头有 这一句的,肯定是从临时文件夹里找出来的, 源文件都没有这句! 我已经尝试了很多办法,都无法不生成临时文件! 请你按照我5楼的办法仔细找, 其实只要按照我的办法,用不着仔细找,应该说轻而易举就可以找到。 |
|
| 第10楼 jonsonqf | 发表于 2008-06-29 22:26 |
| 初级用户 发帖 29 积分 65 | |
Originally posted by quya at 2008-6-29 09:47 PM: 多谢这位朋友的帮忙,开头的@shift这个确实和平常不同的,我找到他释放的文件了,我也奇怪,我知道的也是没有不释放的。 但是,朋友,我传上来的这个比较特殊,其实也不算特殊,只是用了其他的小把戏,我建议你下载下来研究下,对你不无裨益的,呵呵。这个释放的目录不是在临时文件夹下的哦,难怪我之前找不到了 顺便我想请教下,开头的这个@shift这个的作用我不是很理解,是为了解释什么命令么? [ Last edited by jonsonqf on 2008-6-29 at 10:29 PM ] |
|
| 第11楼 quya | 发表于 2008-06-29 22:41 |
| 高级用户 发帖 172 积分 558 来自 江苏 | |
Originally posted by jonsonqf at 2008-6-29 10:26 PM: 我无法下载,虽然我很想知道。 我想他可能用某种办法改变了TMP目录,最后运行完毕再改回来。 |
|
| 第12楼 dikex | 发表于 2008-06-29 23:32 |
| 高级用户 发帖 366 积分 788 | |
|
运行某批处理时,执行下面的命名即可找出对应的批处理文件在哪里了
wmic process where name="cmd.exe" get commandline shift 能把%0 参数改变,可能用于防止某些利用%0 取得当前批处理路径的方法 |
|
| 第13楼 quya | 发表于 2008-06-29 23:59 |
| 高级用户 发帖 172 积分 558 来自 江苏 | |
|
谢谢楼主, 我下载下来看了看。 他的临时文件还是在 %tmp%目录中,它先WINRAR自解压, 然后释放一个cmd文件,不过这个CMD的第一个字符估计是带特殊字符的,所以在Window界面无法看到,但在DOS命令行可以看到。
文件名的形式是 ?cmd????.cmd (第一个看不到,最后4个字符随机) 然后我就 ren *.cmd 1.cmd, 打开1.cmd 就完事了。 [ Last edited by quya on 2008-6-30 at 12:03 AM ] |
|
| 第14楼 jonsonqf | 发表于 2008-06-30 01:06 |
| 初级用户 发帖 29 积分 65 | |
Originally posted by quya at 2008-6-29 11:59 PM: 呵呵,是的,我也找到了,不过我现在想的是怎么可以确切的得知他这个第一个字符是什么,我用了attr看了,是个很特殊的字符,我现在有几个疑问: 1.他是怎么建立这个特殊字符的文件夹,也就是说怎么打出来这个字符的,那个字符我用attr看了,好像是y是吗有2点的 2.这个文件夹既然用了这种方法隐藏了(我想应该是利用了attr的加隐藏属性),但是为什么还可以执行呢?就是@shift这句话的作用? 3.我前段时间用了一些加密工具加密,但是有些加密工具加密后,可以运行,但是加壳后却无法运行了 |
|
| 第15楼 jonsonqf | 发表于 2008-06-30 01:12 |
| 初级用户 发帖 29 积分 65 | |
Originally posted by dikex at 2008-6-29 11:32 PM: 又学到了一招,非常感谢这位朋友的指点 另外想请教下,对于“shift 能把%0 参数改变,可能用于防止某些利用%0 取得当前批处理路径的方法”这句话不解,利用%0可以取得当前批处理路径?具体的操作是? 因为偶比较的菜,诚心请教,还望可以再次指点一二,谢谢! |
|
| 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |