无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 5298|回复: 14
打印 上一主题 下一主题

chm文件反编译器V1.2[20080313]

[复制链接]
跳转到指定楼层
1#
发表于 2007-12-27 23:21:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  你手头是否有几本chm格式的电子书?你是否有过满世界搜索反编译chm软件的痛苦经历?你是否抱怨过这些软件有这样或那样的限制?然而,你是否意识到,就在你的系统里,微软已经为你准备好了小巧而强悍的反编译程序?

  没错,微软已经为各位准备好了这样的软件,它就是各位双击chm文件时系统默认调用的hh.exe!我没有开玩笑,hh.exe这个毫不起眼的家伙,除了是个默默无闻的chm文件阅览器之外,还是个现成的chm文件反编译器!只是这个反编译器的调用参数一直未见微软公布,网上偶尔见到只言片语,也未引起大家的足够重视,因此它一直是大隐隐于市。

  不过,hh.exe要成为我们手里的反编译利器,光靠一条简陋的命令是不够的,它还需要各位的反复测试、耐心打磨。现奉上本人草就的代码,只做了一些主要的功能,尚未做界面的美化,请各位测试。
  1. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  2. :: chm文件反编译器 V1.2
  3. :: code by namejm 2007.12.27~2008.3.13 bbs.bathome.cn CMD@XP
  4. ::
  5. :: 功能:
  6. ::   单个/批量反编译chm文件,并保持资源的原始结构。
  7. :: 使用方式有两种:
  8. ::     ① 把单个或指定个数的文件直接拖放到本程序。
  9. ::     ② 直接双击运行。此时处理的是当前目录下所有以.chm为后缀的文件
  10. :: 执行过程及处理效果:
  11. ::   因为 hh -decompile 语句不能使用引号,所以,先把原始资源释放到
  12. :: 短文件名格式的文件夹中,释放完毕后再改名;
  13. ::   两种执行方式都有简单的容错处理;反编译后的资源放在单独的文件夹
  14. :: 中,此文件夹位于当前目录,并以chm文件名命名。
  15. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  16. @echo off
  17. set TT=chm文件反编译器 1.2
  18. echo.&echo.&echo     正在反编译CHM文件,请稍候...
  19. cd /d "%~dp0"
  20. :: 以拖动文件到批处理文件上的方式运行批处理时,%cd% 的值将会强制转换为
  21. :: %homepath%,因此,上一条语句非常关键!
  22. del /a /f 伪chm文件列表.txt 2>nul
  23. if "%~1"=="" goto All

  24. :Some
  25. title %TT%-正在处理"%~nx1"
  26. if /i not "%~x1"==".chm" (
  27.     cls
  28.     echo.&echo.&echo    "%~nx1"不是chm文件
  29.     echo.&set /p=    请按任意键继续...
  30.     cls
  31.     echo.&echo.&echo     正在反编译CHM文件,请稍候...
  32.     shift
  33.     if "%~2"=="" exit
  34.     goto Some
  35. )
  36. if not "%~1"=="" (
  37.     title %TT%-正在处理"%~nx1"
  38.     rd /q /s "%~n1" 2>nul
  39.     hh -decompile %~sn1 %~snx1
  40.     if not exist %~sn1 (
  41.         echo "%~nx1">>伪chm文件列表.txt
  42.     ) else (
  43.         ren %~sn1 "%~n1" 2>nul
  44.     )
  45.     shift
  46.     if not "%~2"=="" goto Some
  47. )
  48. exit

  49. :All
  50. for /f "delims=" %%i in ('dir /a-d /b *.chm 2^>nul') do (
  51.     title %TT%-正在处理"%%~nxi"
  52.     rd /q /s "%%~ni" 2>nul
  53.     hh -decompile %%~sni %%~snxi
  54.     if not exist %%~sni (
  55.         echo "%%~nxi">>伪chm文件列表.txt
  56.     ) else (
  57.         ren %%~sni "%%~ni" 2>nul
  58.     )
  59. )
复制代码
更新历史:
  1. 2008.3.13
  2.   生成的文件夹与CHM文件名保持一致,无须对特殊字符再做任何替换;
  3. 感谢 随风 的提醒;此为1.2版;
  4. 2008.1.27
  5.   增添了反编译多个指定CHM文件的功能;修正了不兼容文件名中带^的
  6. 错误;修改了部分提示信息;此为1.1版;
  7. 2008.1.8
  8.   不再把文件名中的&强制改为&,但是,文件名中的空格仍然没法不去掉
  9. 2007.12.27
  10.   初始版本1.0发布
复制代码

[ 本帖最后由 namejm 于 2008-3-13 06:51 PM 编辑 ]
2#
发表于 2007-12-28 08:40:13 | 只看该作者
不错,转换后原始资源都分类存放了
.txt中的分段符号如果去掉就好了。( <p><p>   好像是分段的)

  1. document.write(" <p align=center style='FONT-SIZE:13.5pt;font-family:宋体'><b><a name='7-19'>第四卷 堕落·忏悔 第19章 变</b><p>");

  2. document.write ('<p><p>  危机似乎很轻易地就解决了,一切又恢复了平静。小娟虽然将第一次给了王雨,可那以后果然只陪着男朋友,再也没来找他麻烦。多么美好的生活啊,王雨惬意地享受着。可是一个晴天霹雳迎头击下,将他的美好生活打得支离破碎。<p><p>  妹妹病危!<p><p><p><p>  青春正好的妹妹,美丽动人的妹妹,活泼可爱的妹妹,竟然会病危?王雨怎么也不敢相信这是事实,他立即丢下一切事务,空着手飞到了学校附近的江城市人民医院。<p><p><p><p>  妹妹安详地躺在那里,似乎只是睡着了。然而王雨一眼看出,她脸上颈部布满了出血点,已经陷入昏迷状态。王雨向医生询问病情,被告知病因不明,然后给了他一张病危通知单。<p><p><p><p>  这四个字和一张纸,王雨自然不会满意,他命令自己冷静,再冷静,脑子里飞快搜索着关系户名单,然后一个又一个电话打将出去,一条又一条信息反馈回来,病历也看了一遍,等清影赶到,事情的原委已经清楚了。<p><p><p><p>  妹妹昨天因为感冒来看病,医生给予输液。输液半小时后,她突然觉得寒冷恶心,医生当即判断是输液反应,然而相应处理后却不见好转,温度急剧升高,胸闷,气急,全身遍布出血点。医生慌了手脚,急查血小板只有7万(正常10—30万),这才急忙叫来家属。而现在,妹妹的血小板只有5万了。<p><p><p><p>  而且该院近期有多起类似病例,原因正在调查中,高度怀疑跟一种商品名“心福”的抗生素有关,经查,该药是假药。听到这个消息,王雨瘫软在椅上,却奇怪地想笑。笑自己为钱卖假药,结果妹妹却因假药而病危。这真是莫大的讽刺,最恶毒的报复啊。<p><p><p><p>  不能卖了,绝对不能再卖了!王雨忍着剧烈的头痛,一边照顾妹妹,一边给几位合伙人打电话,说了自己的想法。谁知赚了大钱的众人都一致反对,张处还讥笑王雨胆小做不得大事。王雨自打妹妹病危,心情就无比地烦躁,以往不错的耐心丧失殆尽,扯开喉咙就叫:“这缺德钱,老子不赚了!”说罢就挂了机,把张处扔在电话那头干恼火。<p><p><p><p>  尽管王雨要撂挑子,张处几人却铁了心要做,反正又不需要王雨做具体事务。王雨每日价捧着妹妹的手发呆,弄得清影大为紧张,把张雨涵特意请到江城看王雨。她们却都不知道,王雨除了为不见好转的妹妹着急,更在想如何处理自己手上的假药问题。就这样做下去?绝对不行。甩手退出?那倒容易,可张处他们不还是一样卖?想了几天,王雨做出了一个连自己都害怕的决定:举报。<p><p><p><p>  这是一个典型的疯狂举动,很有可能把自己也陷进去,也很有可能遭到报复。但王雨不管了,他不能再看着假药流向市场,再进入病人的食道、血液。为了不引起怀疑,王雨不再提不卖假药的建议,也不做“回心转意继续卖假药”的表示,暗地里,十几封匿名举报信飞了出去。<p><p><p><p>  然而他事先的猜想竟然成为了现实——十几封举报信根本没有掀起任何动静,倒是张处给他打电话,恼火地道:“竟然有人把咱们告了。看那信上意思,可能是咱们的竞争对手干的。娘的,让老子找出是谁,非扒了他皮不可。”<p><p><p><p>  王雨大为惊讶,他为张处居然能看到信而吃惊,也为张处没怀疑自己而暗暗侥幸。当下装出愤怒的样子大骂举报人一通,心里盘算,到底要不要把这事捅到更高层去,那样弄不好自己就要倒大霉了啊。<p><p><p><p>  他却看不到,电话那头的张处凶光毕露。挂了电话他就转头对刘处道:“说不准是不是他,但除了他,谁能把咱们的底细摸得这么清。”<p><p><p><p>  刘处老谋深算地笑了:“那就给他一点警告,让他自己识趣。”<p><p><p><p>  于是又是一个调查组进驻六和,硬把王雨给弄了回去。王雨担忧妹妹心急如焚,却不得不应付调查。<p><p><p><p>  这次的调查组气势很足,而且王雨用尽解数也摸不清来路,根本无从下手解决。直到第二天张处打电话对他遭受调查表示慰问,他才恍然大悟:很可能是张处给自己的警告。<p><p><p><p>  是屈服求得大家平安,共同发财,还是下决心告别过去?王雨一时踌躇难决。更因担忧妹妹而终夜无眠,头痛如绞。好在张处的电话过后,调查组的气势一下弱了不少,组长甚至跟王雨一块喝了酒,这暗示再明白也不过了。王雨强打精神周旋片刻,提出要去照顾妹妹,说罢长叹一声道:“唉,脑子里全是妹妹的事,别的什么都不想管了。”那组长听明白他的意思,二话不说就答应了。<p><p><p><p>  王雨刚下飞机,电话急促地响了起来,清影未语先哭,王雨的脑袋嗡地一声,喃喃地道:“你别吓我,你别吓我。”<p><p><p><p>  可是妹妹真的去了。王雨痴痴地看着妹妹,只觉得心肝肺奇怪地绞成一团,又忽然消失得无影无踪,随即天地间一片漆黑,只有清影的声音遥远地呼叫:“雨!雨!医生快来!”<p><p><p><p>  ……<p><p><p><p>  半个月后,张处接到北方第一城中,一位每年必访的朋友的电话。虽然每一次访问都要让张处心痛不已,但接到这个电话后他顿时觉得,太值得了,绝对是物超所值,这个世界真他妈地美好。<p><p><p><p>  那朋友没有感觉出张处心底的快乐,不满地责问着:“你是怎么搞的?幸亏接待他的是老头子的人,这要差了一点,连处长都保不住,更不要想副厅了。人家可是现职的副局长,又有真凭实据。”<p><p><p><p>  张处赔着小心,末了小心翼翼地道:“我前些天淘到一幅米芾的字,请张老看了说是真迹,可总是不放心,想麻烦你的法眼过目。”<p><p><p><p>  电话线里似乎有微微的笑意传来:“我也不敢担保看得准,试试吧。”<p><p><p><p>  “那真是太谢谢了,我明儿就飞过来。”<p><p><p><p>  ……<p><p><p><p>  “雨,你是男人,你不能这样啊。”清影徒劳地呼唤着。王雨仍旧躺在床上一声不吭。<p><p><p><p>  小娟神色复杂地看着王雨,这个男人多么的古怪啊。他夺走了自己的第一次,害得自己对男朋友全无感觉,可自己却怎么也不恨他。他居然放着大钱不赚,官也不做,去举报自己的生意,整一个傻瓜,可自己却越来越敬佩他。不过不能再等了,男朋友在门外等着,再不走,他又要吃醋了。<p><p><p><p>  梦洁远远地看着病床上的男人,这个人让自己的生命轨迹发生了巨大的变化。本来以为自己会在那灰色的生活中渐渐老去,可是那天夜里他近乎蛮横地搂住自己,给了自己从未体验过的愉悦后,自己就知道,有什么东西开始撞击着生活的茧壳。随后他更是蛮横地撬了那老板娘的墙角,想起他煞有介事地威胁那女人,又拿来跟医生对付病人比较,梦洁就觉得好笑。就是他的蛮横,带给了自己以前从来不敢想象的财富,以及伴随这财富而来的优雅生活。他更给予了自己从未享受过的呵护,虽然他的呵护被很多女人分享着。梦洁的眼光中浮上温柔,随即再次被疼痛覆盖。<p><p><p><p>  他太单纯了,虽然这些年自己看着他越来越油滑,越来越沉迷在奢靡的享受中,可是自己明白,他的骨子里,是那么的单纯,甚至有点幼稚。所以他才会做出实名举报的蠢事;所以他才会被一撸到底,做回小医生,连公司都被各部门大肆检查,最后只好关门;所以他才会承受不住现实的打击,一病不起。他的病,是心病啊,让医生如何能治。<p><p><p><p>  不能等待了,尽管水柔一再关照自己,不能对他说出真相;尽管王雨嘴里从不肯承认,但梦洁知道,他心底深处还是牵挂着水柔的。每次他陪伴自己时,那迷离的眼神就在暴露他的内心。虽然嫉妒,但梦洁不得不承认:自己能得到他的呵护,主要是因为水柔,因为自己是水柔的表姐,长得又有些相象。<p><p><p><p>  那么水柔来了,或许能带给他莫大的安慰吧?<p><p><p><p>  电话那头,水柔沉默着,良久,有低低的啜泣声传来:“我这样子,怎么见他。”<p><p><p><p>  “我去接你,一切都是姓李的造的孽,不要再苦自己了。”<p><p><p><p>  ……<p><p><p><p>  这是真的吗?王雨使劲瞪大了眼睛。是她,是水柔!虽然她坐在轮椅上,手脚一动不动,但她的脸一点也没变,她在朝自己笑,那么熟悉的笑容。王雨心底里有一块伤口快速地愈合着,身边的清影却觉得心里那块已经愈合的伤口又开始碎裂。她努力地绽开笑容,推着水柔来到床边。梦洁和水柔的父母都相继“去洗手间”,清影定了定神,微笑着说:“我去买点东西,王雨,你可要照顾好水柔妹妹哦。”<p><p><p><p>  洗手间里,梦洁听着隔间里清影的哭声,自己的眼泪也缓缓流了下来。<p><p><p><p>  水柔很快就告辞了,王雨不顾她的劝阻,执意要亲自送她上飞机。就在机场,当着水柔的面,王雨握住清影的手,很轻,很温柔,又很坚定。他对水柔说道:“我们明年去看你,清影,你说好不好?”<p><p><p><p>  水柔笑了,笑得那么灿烂。清影也笑了,含着泪珠。<p><p><p><p>  回医院的路上,王雨一直搂着清影。直到睡着了,还紧紧攥着她的手,不时嘟囔着梦话。清影听着了一会,眼泪再次流了下来,从笑容上滑下。<p><p><p><p>  “清影,我好爱你,不要离开我,不要。”<p><p><p><p>  “水柔太可怜了。”<p><p><p><p>  ……<p><p><p><p>  张雨涵继续给王雨做心理辅导,那本欲医日记已经厚厚的一沓。她提了个建议:“这是你的心声,何不修改一下,糅合其他医生、领导、药商的作为,写成一本书,发到网上去,让更多人了解一些东西?”<p><p><p><p>  “这倒是个好主意。”王雨的眼睛亮了起来:“主人公叫什么名字好?”<p><p><p><p>  “你的日记里充满了欲望和忏悔,其他医生、领导、药商,哪个不是充满了欲望?我看就叫王雨——欲望的意思,多贴切。”<p><p><p><p>  “那书名呢?”<p><p><p><p>  “充斥着欲望,又是医生的忏悔,当然叫《欲医忏悔录》啦。不过,你不能把我写进去。”<p><p><p><p>  “嘿嘿,没有你,哪来的书。不过你放心,我会把你写得很丑很丑滴,并且你会对我有点那个意思——不过不会让你跟我,啊,那个滴。”<p><p><p><p>  “要死啦你。”<p><p><p><p>  “救命啊,我碰到的怎么全是野蛮女人啊。”<p><p><p><p>  ……<p><p><p><p>  “王雨,快看,人大会议明确提出医疗改革失败,卫生部也有相应表态了。再看这里,全国都要推行新型农村合作医疗了,农民总算有点保障了。”清影一边说着,一边剥了颗糖塞到王雨嘴里,那是童诗诗送来的喜糖。<p><p><p><p>  “是啊,全国都在讨论医疗改革呢。你说会有好的解决方法吗?哎呀,母老虎吃人啦。”王雨照旧剥着瓜子送到清影嘴里,却总是被清影调皮的红唇连手指一块吃了去。<p><p><p><p>  “不知道,也许旧的问题解决了,又会有新的问题。有人的地方,哪会没有问题。但我想绕的弯再多,总是一直在进步的。”<p><p><p><p>  “也许吧。有希望就好。”<p><p><p><p>  ……<p><p><p><p>  朝阳照旧笑咪咪地打量着这个星球,打量着形形色色的人们。对它来说,生老病死,高尚卑微,一切都是一样吧?在它面前,永恒不过是瞬间罢了。王雨挺起胸膛,大步走向一院大门。<p><p><p><p>  胖子正从另一侧走来,老远地就叫:“嗨,兄弟!”<p><p><p><p>  他拍着王雨的肩膀,一脸敬佩地道:“你的事我听说了,没说的,象个男人。回来就好,回来就好。”<p><p><p><p>  王雨笑道:“本来嘛,咱兄弟就该象个男人的样子。”<p><p><p><p>  清影在一旁撇嘴:“臭男人。”<p><p><p><p>  “王雨不臭,清影不爱嘛。”<p><p><p><p>  “哈哈哈哈。”<p><p><p><p>  太阳仿佛受到他们的感染,笑得更开心了。随着它努力地攀登,阳光便照得整个世界更为亮堂起来。<p><p><p><p>  全书终。<p><p><p><p>  —————————— 分隔线 ——————————<p><p><p><p>  总算结束了,感谢朋友们一路的陪伴。没有你们,我是完成不了这本书的。虽然因为各种原因写得不是很好,但毕竟是写出了我要说的话。虽然字数少了点,但基本是按照原定大纲完成的。<p><p><p><p>  这本书肯定要重写,对医生的正面描写和生活、心理反映太少。我想等我有更丰富的阅历,收集了更多素材以后(也包括收了更多的回扣以后——估计很长时间内都躲不掉回扣),或许会写得更好些。所以,先写别的书。岳飞也是我早就想写的题材,他是中华民族最杰出的英雄,然而对他的质疑却从来没有停止过。他的肉体已经被消灭,却还总有人试图从精神上也消灭他。我不能想象,一个不尊重自己英雄的民族,是什么的结局?一个消灭自己英雄的民族,是什么样的结局?所以,岳飞,我一定要写,哪怕只为了圆一个梦(当然,为了更多人看到岳飞,我可能会换一个人气比较高的马甲写,到时候再通知大家)。<p><p><p><p>  最后,让我再次感谢大家,感谢你们一贯的支持。<p><p><p><p>  谢谢!<p><p><p><p>')
复制代码
回复

使用道具 举报

3#
 楼主| 发表于 2007-12-28 09:55:25 | 只看该作者
  这个脚本是用来解开chm文件的,似乎和处理txt文件没什么关系,不知道阿非想对哪些txt进行处理?或者可以专做一个处理txt文件的脚本。
回复

使用道具 举报

4#
发表于 2007-12-28 15:05:18 | 只看该作者
原帖由 namejm 于 2007-12-28 09:55 AM 发表
  这个脚本是用来解开chm文件的,似乎和处理txt文件没什么关系,不知道阿非想对哪些txt进行处理?或者可以专做一个处理txt文件的脚本。

我是说chm解开后,一般主要的是想要里面的文字,例如我上面测试的chm,解开后的文本里面分段的都是代码,去掉代码分段。
我仅仅是用了chm的电子书测试。
回复

使用道具 举报

5#
 楼主| 发表于 2007-12-28 17:53:00 | 只看该作者
  解开chm后,有的人想要里面的文字,有的人是想修改里面的一些内容重新打包,各人的需求不尽一致,需要用专门的工具来做善后处理,光靠批处理是无法满足这些需求的。
回复

使用道具 举报

6#
发表于 2007-12-28 18:37:20 | 只看该作者
namejm说的有道理。以前好像看过解开chm的工具,原来微软自己都带的有。
回复

使用道具 举报

7#
发表于 2007-12-29 20:55:20 | 只看该作者
不错啊,会批处理就是好,真想学会他啊
回复

使用道具 举报

8#
发表于 2007-12-30 19:33:50 | 只看该作者
楼主高人,虽然看不太懂,对“需要对所有待处理的chm文件进行改名处理(去掉空格,改&为&)后”这句话不明白,能否补充说明,到时候收藏个批处理备用!
回复

使用道具 举报

9#
发表于 2008-1-3 12:15:53 | 只看该作者
好东西,收藏了,谢谢
回复

使用道具 举报

10#
 楼主| 发表于 2008-1-27 17:23:52 | 只看该作者
今天有空更新了一下,请大家测试:
2008.1.27
  增添了反编译多个指定CHM文件的功能;修正了不兼容文件名中带^的
错误;修改了部分提示信息;此为1.1版;
回复

使用道具 举报

11#
发表于 2008-1-29 13:07:00 | 只看该作者
用得着那么费劲么?用7z就可以直接打开,解压出来就是了!!!
回复

使用道具 举报

12#
发表于 2008-1-29 13:09:12 | 只看该作者
:lol 一般人,我不告诉它。。。
回复

使用道具 举报

13#
 楼主| 发表于 2008-1-29 13:26:29 | 只看该作者
  杀鸡焉用宰牛刀?如果只是为了解开CHM就专门装个7Z,那也太浪费了——如果7Z是你系统里的压缩解压必备软件,那就另当别论。
  自己写P代码的好处:一是功能可以自定;二是无需额外安装大块头软件。
回复

使用道具 举报

14#
 楼主| 发表于 2008-3-13 18:52:12 | 只看该作者
  终于顺利地解决了CHM文件名中带特殊字符的问题,这下应该比较完美了。
回复

使用道具 举报

15#
发表于 2008-3-28 18:23:59 | 只看该作者
那个编译CHM的HHC.EXE也是WIN自带的吧.
我只能简单编辑.索引怎么做?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-12-1 12:22

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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