中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 关于用DEBUG把 WGet.exe 程序输出,请问可以不?
作者:
标题: 关于用DEBUG把 WGet.exe 程序输出,请问可以不? 上一主题 | 下一主题
clian76
中级用户





积分 363
发帖 162
注册 2007-4-22
状态 离线
『楼 主』:  关于用DEBUG把 WGet.exe 程序输出,请问可以不?

以下是 WGet.exe 的16进制源代码,请高手用DEBUG编译成正式的 WGet.exe 程序,也就是用批处理把这个WGet.exe 程序输出来,不知道可不可以?,,

源码请点这里:http://upload.cn-dos.net/img/354.txt

[ Last edited by clian76 on 2008-5-5 at 12:31 PM ]

2008-5-5 09:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
clian76
中级用户





积分 363
发帖 162
注册 2007-4-22
状态 离线
『第 2 楼』:  

附上DEBUG命令大全:http://www.hackhome.com/InfoView/Article_9906.html
希望有高手能把它弄出来!

2008-5-5 09:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sxsxx
新手上路





积分 2
发帖 2
注册 2008-11-18
状态 离线
『第 3 楼』:  

这个行不
http://upload.cn-dos.net/img/1129.rar

2008-11-24 11:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
knoppix7
银牌会员





积分 1287
发帖 634
注册 2007-5-2
来自 cmd.exe
状态 离线
『第 4 楼』:  

只能每64K写入一次...然后合并..
恶...高16位的大小不知道怎么写...

2008-11-24 18:37
查看资料  发短消息 网志   编辑帖子  回复  引用回复
loquat
初级用户





积分 81
发帖 80
注册 2009-8-30
状态 离线
『第 5 楼』:  

囧,楼主这个就是个exe
直接txt2bin就行了

http://upload.cn-dos.net/img/1917.rar

[ Last edited by loquat on 2010-8-19 at 00:13 ]

2010-8-19 00:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
本是
银牌会员





积分 2201
发帖 789
注册 2005-1-27
状态 离线
『第 6 楼』:  

1.请用编辑器打开354.txt,将双空格替换成单空格,
2.然后用txt2bin.com工具转换成exe文件。
1)将下列文本行复制到编辑器,并存盘为txt2bin.txt。
e100  33 DB B4 45 CD 21 8B E8 B4 3E CD 21 BB 02 00 B4
e110  45 CD 21 BF 6D 01 FC BA 6C 01 B9 01 00 8B DD B4
e120  3F CD 21 0B C0 75 02 CD 20 8B C8 8B F2 AC 3C 1A
e130  74 F5 3C 0D 74 13 3C 0A 74 D9 3C 20 74 0B 2C 30
e140  3C 0A 72 02 2C 07 AA EB CD 8A 45 FF 8A 5D FE D0
e150  E3 D0 E3 D0 E3 D0 E3 0A C3 A2 6B 01 BB 01 00 B4
e160  40 B9 01 00 BA 6B 01 CD 21 EB A8 00 1A
rcx
6d
ntxt2bin.com
w
q

2)在DOS命令行下执行如下命令
debug<txt2bin.txt
3)再在DOS命令行下执行如下命令
txt2bin<354.txt>wget.exe

这样就可以了。此小工具要求16进制数据间只能有一个空格,且行末换行回车前不能再有空格,且因为短小,并未检测数据位数是否2位及数据傎是否合理等异常情况。



my major is english----my love is dos----my teacher is the buddha----my friends--how about U
2010-8-19 11:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qinchun36
高级用户

据说是李先生


积分 609
发帖 400
注册 2008-4-23
状态 离线
『第 7 楼』:  


@echo off
set HexTextFile="C:\Documents and Settings\issuser\桌面\354.txt"
set BinFile=wget.exe
call :Hex2BinFile %HexTextFile% %BinFile%
pause
goto

:Hex2BinFile
::将一个文本文件中的十六进制字符串表示的二进制内容还原为文件
set ching="%temp%\~$ching$.vbs"
echo> %ching% s=WScript.Arguments(0):d=WScript.Arguments(1)
echo>>%ching% t=CreateObject("Scripting.FileSystemObject").OpenTextFile(s).ReadAll()
echo>>%ching% Set r=New RegExp:r.Pattern="[^0-9A-Fa-f]":r.Global=True
echo>>%ching% Set h=CreateObject("Msxml2.DOMDocument.3.0").createElement("h")
echo>>%ching% h.dataType="bin.hex":h.text=r.Replace(t,""):bs=h.nodeTypedValue
echo>>%ching% With CreateObject("ADODB.Stream")
echo>>%ching% .Type=1:.Mode=3:.Open:.write bs:.SaveToFile d,2:.close
echo>>%ching% End With:WScript.Echo "Converted to file: " ^& d
cscript -nologo -e:vbs %ching% %1 %2
del /f /q %ching%


2010-8-19 11:33
查看资料  发送邮件  发短消息 网志  OICQ (182484135)  编辑帖子  回复  引用回复
ZJHJ
高级用户





积分 609
发帖 374
注册 2006-8-2
状态 离线
『第 8 楼』:  

我曾经发过十六进制解码。很容易将你的代码恢复的。
恢复步骤如下:
1, 必须将你的代码转化成纵列计算原始文件字节。
2, 用debug产生标准恢复地址码
3, 重新编排代码(标准十六位)
4, 标准地址码与标准十六位合并
5, 根据原始文件字节计算原始文件长度恢复码。

@echo off
more +5 "%~0"|debug&graftabl 936>nul
copy/b/y $tmp$ WGet.exe >nul
del/a/f/q $tmp$
del %0
e 0100 4D 5A 90 00 03 00 00 00 04 00 00 00 FF FF 00 00
e 0110 B8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00
e 0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e 0130 00 00 00 00 00 00 00 00 00 00 00 00 E0 00 00 00
e 0140 0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68
e 0150 69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F
e 0160 74 20 62 65 20 72 75 6E 20 69 6E 20 44 4F 53 20
e 0170 6D 6F 64 65 2E 0D 0D 0A 24 00 00 00 00 00 00 00
e 0180 F7 0E 5E A0 B3 6F 30 F3 B3 6F 30 F3 B3 6F 30 F3
e 0190 C8 73 3C F3 B5 6F 30 F3 5B 70 3B F3 B2 6F 30 F3
e 01A0 30 73 3E F3 A4 6F 30 F3 D1 70 23 F3 BA 6F 30 F3
..........
.........
e EE80 00 56 E8 F9 BA 00 00 83 C4 08 85 C0 75 25 C7 05
e EE90 64 8D 42 00 00 20 00 00 C7 05 6C 8D 42 00 10 00
e EEA0 00 00 C7 05 68 8D 42 00 30 00 00 00 B8 01 00 00
e EEB0 00 5E C3 68 8C 39 42 00 56 E8 C2 BA 00 00 83 C4
e EEC0 08 85 C0 75 0C C7 05 64 8D 42 00 00 00 01 00 EB
e EED0 53 68 84 39
rcx
EDD4
n$tmp$
w
q

附件 1: WGet.exe .rar (2010-8-19 16:18, 49.72 K, 下载附件所需积分 1 点 ,下载次数: 1)
2010-8-19 16:17
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ZJHJ
高级用户





积分 609
发帖 374
注册 2006-8-2
状态 离线
『第 9 楼』:  


@echo off
::  wangwei  qq 251485609
set/p file=        输入要解密的十六进制文件:
for %%i in (%file%) do (
   set "jkz=%%~ni"
   set "jz=%%~nxi"
   set "jz1=%%~nxi"
   set /a "size=%%~zi")
for /f "tokens=3 delims= " %%i in ('find /v /c ""  %file%') do set m=%%i
@echo.
@echo       当前文件共 %m% 行, 长度: 0%size:~0,-3%.%size:~-3,3% kb
@echo.
echo.
echo   正在准备十六进制解码
echo.
echo   按空格分开为行即横列转化为纵列(计算原始文件字节)。
cd.>wb.txt
::批处理单行处理极限长度8192字节
for /f  "delims=" %%i in (%file%) do (
  for %%a in (%%i) do echo %%a>>wb.txt
)
setlocal EnableDelayedExpansion
echo.
echo   检测行数并产生同等字节文件(这里行数就是原始文件字节)
set  line=0
for /f "delims=" %%i in (wb.txt) do set /a line+=1
fsutil file createnew $$$ %line% >nul
echo %line%>line.txt
echo.
echo   正在用debug(用纯批处理较慢)快速产生标准地址码
set/a qwe=%line%+255
call :duon %qwe%
(echo d100,%cdm%^&echo q)|debug $$$>ymdb.txt
graftabl 936>nul
cd.>db.txt
for /f "eol=- skip=1 tokens=*" %%i in (ymdb.txt) do (
    set bj=%%i
    echo e !bj:~5,5!>>db.txt)
del $$$
del ymdb.txt
set a=wb.txt
@echo.
@echo   正在分割文件按48字节排列
   set "r=48"
(for /f "usebackq delims=" %%i in (%a%) do (
   set "s=!s1!%%i "
   set /a "m=%size%+%r%,x=0,k=0"
for /l %%a in (1,1,14) do (
   set /a "k=(m+x)/2"
for %%i in (!k!) do if "!s:~%%i!" equ "" (set /a m=k) else set /a x=k
   )
for /l %%a in (0,%r%,!k!) do (
if !k! geq !r! echo !s:~%%a,%r%!
   set/a "k-=r"&set "s1=!s:~%%a!"
   )
)
if "!s1!" neq "" echo !s1!
)>m1.txt
del wb.txt
echo.
@echo   标准地址码与编码正在合并
cd.>a.txt
set n=-1
for /f "delims=" %%a in (db.txt) do (
     set/a n+=1
     call :mp1 "%%a" )
del db.txt

goto :ef
:mp1
if !n! equ 0 for /f "delims=" %%i in (m1.txt) do echo %%a%%i>>a.txt&goto:eof
if not !n! equ 0 for /f "skip=%n% delims=" %%i in (m1.txt) do echo %%a%%i>>a.txt&goto:eof
:duon
set /a y= qwe%%16
set /a ya=qwe/16%%16
set /a yb=qwe/256%%16
set /a yc=qwe/4096%%16
set  m=0123456789ABCDEF
set  cdm=!m:~%yc%,1!!m:~%yb%,1!!m:~%ya%,1!!m:~%y%,1!
goto:eof
:ef
echo @echo off>m.txt
echo more +5 "%%~0"^|debug^&graftabl 936^>nul>>m.txt
echo copy/b/y $tmp$ new-"%jkz%"^>nul>>m.txt
echo del/a/f/q $tmp$>>m.txt
echo del %%0>>m.txt
more a.txt>>m.txt
del a.txt
del m1.txt
for /f "delims=" %%a in (line.txt) do set line=%%a
set/a qwe=%line%
call :duon %qwe%
echo rcx>>m.txt
echo %cdm%>>m.txt
echo n$tmp$>>m.txt
echo w>>m.txt
echo q>>m.txt
copy /b m.txt new-"%jz%".cmd
del m.txt
del line.txt
[ Last edited by ZJHJ on 2010-8-19 at 16:29 ]

2010-8-19 16:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: