找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 286014|回复: 62

[文件操作] 破解Bat转Exe专用批处理2.0

[复制链接]
发表于 2021-9-1 20:04:05 | 显示全部楼层 |阅读模式
本帖最后由 cmd1152 于 2022-1-2 21:25 编辑

平时我们在代码发现了一些BUG,但他已经转Exe了,无法获得源代码。Batcher的方法(映像劫持)容易报毒。所以可以使用这个批处理获得代码。
使用方法:
1.运行批处理
2.打开要破解的 被加密批处理(就是.Exe) 。
3.等待程序的响应
获得代码之后如果第一行是@shift /0,就删除第一行的@shift /0,这样才是源码。
目前测试105个 Bat转Exe 程序,全部有效。
缺点就是必须运行程序,所以无法判断是不是恶意程序(恶意代码可能被执行才显示代码,那时已经来不及了...)

http://bbs.bathome.net/viewthread.php?tid=59814&extra=就是我用这个破解出来的
ps:这个就是 文件操作 ,所以我主题选择 文件操作 没毛病!
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. echo;正在破解正在运行的 加密批处理^(.Exe^) 文件...
  4. title 已经执行 1 次
  5. if not %1.==. (start %1)
  6. cls
  7. cd /d %tmp%
  8. :i
  9. set /a cs+=1
  10. title 已经执行 %cs% 次
  11. for /f %%i in ('dir /a-d/s/b *.bat 2^>nul') do (
  12. if not "%%i"=="" (
  13.   cls
  14.   title 发现:%%i
  15.   echo 成功:%%i
  16.   start Notepad %%i
  17.   if not exist "%%i" (
  18.    title 错误:'%%i'被清除。
  19.    echo 错误:'%%i'被清除。
  20.   ) else (
  21.    set file=%%i
  22.    call :msg1
  23.   )
  24. )
  25. echo 按任意键重试
  26. pause>nul
  27. goto :i
  28. )
  29. cls
  30. echo 暂时没有发现正在运行的程序。
  31. goto :i

  32. :msg1
  33. set /p a=是否删除/结束这个批处理?^[Y^/N^]
  34. if /i "%a%"=="y" (
  35. if not exist "%file%" (
  36.   cls
  37.   echo 这个批处理已经被删除。
  38.   pause
  39. )
  40. del /f /q "%file%" 2>nul  
  41. if exist "%file%" (
  42.   cls
  43.   echo 这个批处理没有被删除。
  44.   pause
  45. )
  46. )
  47. goto :i
复制代码
求评分QWQ!

评分

参与人数 4技术 +4 收起 理由
看电池 + 1 厉害
locoman + 1 无私分享,理应鼓励!
zdeity + 1 感谢分享
路过 + 1 思路不错!

查看全部评分

发表于 2021-9-1 21:44:10 | 显示全部楼层
思路不错.
如果不释放就无效.
 楼主| 发表于 2021-9-1 21:50:56 | 显示全部楼层
回复 2# peterboy666


    只要是 加壳批处理 都可以用(因为批处理永远是批处理...)
 楼主| 发表于 2021-9-1 21:51:45 | 显示全部楼层
回复 2# peterboy666


    ......只要是用批处理转的就一定会释放文件.....
 楼主| 发表于 2021-9-1 21:55:36 | 显示全部楼层
回复 2# peterboy666


    你可以做一个测试:去 第三方命令行 下载一个我发的第三方,再用这个程序。
发表于 2021-9-1 23:30:33 | 显示全部楼层
本帖最后由 路过 于 2021-9-1 23:31 编辑

代码可以再改进一下,比如%tmp%里有多个bat时该如何判断等等。
或者把bat转成的exe程序拖入本破解程序里,自动实现破解最好
 楼主| 发表于 2021-9-2 12:08:37 | 显示全部楼层
回复 6# 路过


   
代码可以再改进一下,比如%tmp%里有多个bat时该如何判断等等。
或者把bat转成的exe程序拖入本破解程序里,自动实现破解最好

    本来就是自动破解
    多个?马上更新....
 楼主| 发表于 2021-9-2 12:09:16 | 显示全部楼层
回复 6# 路过


    不对呀...运行一个程序怎么会出现两个BAT?
发表于 2021-9-2 13:07:20 | 显示全部楼层
支持拖入方式的操作。

还可以判断弹出提示框——“已解码”       “非bat文件,不能解码”。
如此就专业多了吧。
 楼主| 发表于 2021-9-2 13:22:52 | 显示全部楼层
回复 9# locoman


    所以你如何判断....(Exe有其他语言编的...)
 楼主| 发表于 2021-9-2 13:23:41 | 显示全部楼层
回复 9# locoman


   
支持拖入方式的操作。

    马上更新
发表于 2021-9-2 14:29:27 | 显示全部楼层
方法:
1. 如果是静态分析 EXE 并解出 BAT 这个很有难度,也不通用,
2. 如果是动态分析 EXE 当运行 API 下中断,这能 100% 解出,
3. 而楼主的方法是最简单且通用的方法,值的推荐.

基本上
方法 2 是万用法,需有 Debug 基础,
方法 3 是通用法,
小缺点:
1. 有机率可能 BAT 已被删除,所以抓不到.
2. 若是 EXE 调用 API 直接运行 cls&ver&dir& ..... 不会解包,所以抓不到(已实测过).
 楼主| 发表于 2021-9-2 17:44:27 | 显示全部楼层
回复 12# peterboy666


    BAT被删除了会报错!
 楼主| 发表于 2021-9-2 17:47:52 | 显示全部楼层
回复 12# peterboy666


    直接调用API?那他也会生成临时文件,不过后续名不是bat
 楼主| 发表于 2021-9-2 17:48:21 | 显示全部楼层
回复 12# peterboy666


    所以抓不到。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 06:22 , Processed in 0.028220 second(s), 12 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表