2012年8月31日星期五

[原创] 第一次使用OllyDbg

前阵子在VBGood论坛上看到了一篇帖子:求助 跨进程解锁 CreateMutex 函数 互斥体
楼主问的内容是这样的:
附件为互斥体 防止双开,   如何解锁让附件的程序可以多开...  不要用修改 exe 的方法, 求助代码如何实现.
查看进程的互斥体可用 Process Explorer 工具,如附件的图.还可以手动右击互斥体解锁..
Process Explorer 工具比较大无法上传.
知道大概流程如下 ..无法实现..求助.. 感谢
1. 遍历进程.
2. 取得进程的所有 Handle 是否包含 互斥体关键字, 有的话关闭
下面找到的是倒霉蛋儿大仙改炉子大仙的的代码好像...  PB的..
[代码略]
于是,想帮忙解决问题的欲望来了(哈哈),起初是想用API Hook来实现
但是该程序是在Form_Load事件中运行CreateMutex的(汗),所以程序一打开运行后就会调用CreateMutex创建互斥体,这是才来Hook该API是没有用的。
因为笔者功力不住,不会实现全局Hook,所以想了又想,突然有位大大作出了回复
我看修改exe的方法最好了,把某个jmp屏蔽掉,或者把CreateMutex挂钩了
挂钩我想我是实现不了的,于是试试看了修改exe的方法,但是一个星期过了,我一直懒得动手(懒虫一只-.-),直到今天,我才无意间看到了Start Menu中的Olly Dbg时才回想起来那个帖子,点击之、下载楼主的附件、解压、速速拖入OD的主窗口,进度条拼命的跑啊跑,终于好了。
于是,我展开了我的漫长之旅
很少接触OD的笔者,只会几个快捷键——F7(Step into,单行执行,就是遇到call时,跳转到call的目的地),F8(Step Over,跟F7大同小异,但是不进入call的目的地)
先打开原本的程序,然后返回OD。
应为程序发现到多开的话,就会弹出一个Msgbox出来,滑啊滑
终于找到了这个:
image
00401C41     FF15 28104000  CALL DWORD PTR DS:[<&MSVBVM60.#595>]     ;  MSVBVM60.rtcMsgBox
MSVBVM60.rtcMsgBox ,根据名称,一定是Msgbox的函数了(VB6竟然也封装了这个函数,难道是直接调用MessageBoxA/MessageBoxW?)
不过更加显眼的是:
00401C62     FF15 0C104000  CALL DWORD PTR DS:[<&MSVBVM60.__vbaEnd>] ;  MSVBVM60.__vbaEnd
MSVBVM60.__vbaEnd ,End,即退出!退出!
当这个程序首次运行时,就会调用CreateMutex,如果这个程序再次运行,它也会调用CreateMutex,但是由于第一个副本已经创建同样名称的Mutex,所以API就会执行失败,失败后就会调用Msgbox提示,然后直接退出。
所以说呢,只要把MSVBVM60.rtcMsgBox 函数干掉,或者不让他Call,程序就不会退出啦!(笔者花了至少1个小时才想到这个办法、正确来说是:花了一个小时才看到此函数,囧。。。)
要怎么样去掉呢?或者是说:要怎么样屏蔽call呢?
看过罗云彬大大的《Windows环境下32位汇编语言程序设计》一定看过这个页的:
image
nop指令!机器码为90h
选这__vbaEnd那行,右键,Binary>Fill with NOPs
image
哈哈,OD帮我们弄好了!
image
按F9(Run),Msgbox 又弹出来了,但是,点击OK后,哈哈,主界面出来啦!
image
可以多开了!
问题是:要怎么样保存修改后的exe文件呢?
笔者用的方法是,下载WinHex,直接修改exe的hex!
先看看OD,00401C62到00401C67都填上了NOP(即机器码90h)
打开WinHex,拖入exe,滑到00001C60处,从00001C62开始填90一直到00001C67
image
Ctrl + S,保存,运行!哈哈成功啦!
源程序和修改后的程序在这里下载:http://www.mediafire.com/download.php?clmrzg1yv1byfaa






















2012年8月27日星期一

[其他] 开放友情链接申请

看到 4z1@EvilShad0w 开放友情申请,我去申请了,也添加了该站的链接到旁边“友情链接”的那个项目(将滑鼠滑倒右边就看到了~)

申请方式
站名:
网址:
网站简介:
联络方式:(比如Facebook, Email等等)


例子:
站名:Gary's Zone
网站简介:又是另外一个简单的IT部落格。
联络方式:XXXX@XXXX.XXXX


笔者就会将你的站点添加到“友情链接”内
格式是:站点名(网站简介)

笔者有权利撤下或不接受申请!
谢绝任何敏感站点!

请以留言的方式申请!
申请通过后,请添加笔者的部落格到你的友情链接内!

2012年8月19日星期日

[其他] 努力必有成果——本部落格重大事件

终于,咱们这些又有了一个星期的难得长假,笔者我啊,也挺久没有上来跟新部落格了。。。(整整一个月了。)

来看看最近发生了什么事——

1、Windows 8 终于释放出来了(正式版本)

Windows 8 终于释放出来了,但是似乎微软官方网站只开放给订阅MSDN的用户下载Windows 8,网友力量大,MSDN,I Tell You 这个站点就提供了大量官方MSDN不开放给普通用户下载的东西,亮点就是,他有提供WIndows 8 各个版本的下载地址!下载地址均是电驴资源,所以找个支持ed2k的下载器来下载呗!(迅雷能)
这里提供其中一个版本的信息:

Windows 8 Enterprise (x86) - DVD (English)
Language: English(USA)
FileName: en_windows_8_enterprise_x86_dvd_917587.iso
DataPosted(UTC): 2012-08-15 14:57:13FileSize: 2551154688 byte
SHA1: FEFCE3E64FB9EC1CC7977165328890CCC9A10656 
Download Link : ed2k://|file|en_windows_8_enterprise_x86_dvd_917587.iso|2551154688|3E6349B65AF73C12C73A08B9BB9AA0F3|/
笔者这一次就不下载试用了啊,所以也没有些教程了,如有不便,请见谅啊。。
正式版的Windows 8 有一个很大的改进,那就是——去掉了我们最爱的Aero效果!!!
没有了Aero的Windows,会长的什么样子的呢。。
就是这个样子的——(转载自IT之家

如果想知道多点,可以看看IT之家的没了Aero,Win8正式版竟然长成这个模样

2、就是关于我国的114A法令

这个不多说,敏感话题,直接上图——



3、对本部落个一个很重大的事件,也是本帖子的标题代表的意义

本部落格上《e起学习》了!
虽然不是在封面,只是在e问e答中简单的介绍,但是,这已经让笔者我很引以为荣!
从2009年开站以来,好久没来跟新过,直到2011年才开始跟新、写文章,起初只是转载他站的一些笔者自己觉得有用的文章,到现在自己抽空写文章,一路以来,学到了很多东西,而这些都东西,笔者都会把他写下来,就当作一个证明吧。
笔者认为,一个好的部落格就是——
1、少广告(最好没有!)
2、注重读者的阅读体验(这也是笔者选择用动态视图“Dynamic View”的原因)
3、文章要不能带有任何带刺、不文雅的语言
4、写教程要写的完整、别马马虎虎的写(笔者应该还没到“完整”吧)
5、少用插件(笔者最讨厌那些会自动播放背景音乐的部落格,很浪费宽带,而且播的也不是自己喜欢的歌,这类部落个我会直接关掉不看。)
满足以上条件的部落格,可能就会马上进入我的Favorites文件夹,或者会被我订阅也说不定哦!
《e起学习》呢,算是《哥妹俩》的一个“子部门”吧(《哥美俩》是陪我度过小学生活的唯一读物啊!)
里头是一堆有用的电脑知识、技术文章等等
个人很喜欢里面的——CG讲堂(虽然我没有安装Photoshop,因为Paint.Net真的是太好用了!),e问e答,e起分享。。。等等(好多。。)
顺便说说《哥美俩》的“官方网站”就是——http://gemeilia.com/index.php 和 Facebook 的群组——~新仔和你e起学电脑~
还有:无图无真相!