用C语言写被导入EXE的代码片段

 

用过CFF Explorer之后,发现它可以给EXE添加Seciton,甚至还可以直接导入一个文件作为EXE中一个Section,功能好赞。配合OllyDBG来对现有软件的EXE做一些小小的hack感觉效果很好。

最早的时候我是直接用OllyDBG打开EXE,然后找到一片都是0的地方来汇编代码进去。但是这样受到的限制很多,最直接的就比如有的时候找不到一堆0的地方,找到也不确定能不能写:有可能这些部分其他地方要用,又或者汇编了代码进去要保存的时候OllyDBG说存不了。现在可以直接自己添加一个Section,不会出现找不到空间的情况了。

既然可以导入文件,那比起直接在OllyDBG里面敲汇编,用Nasm来写汇编代码要方便得很多。在测试导入Nasm写的汇编以后,我就在捉摸着更加方便的事情:用C语言来写。

我选用的是OpenWatcom C编译器,没什么太多理由,正好抓到它而已。它反正也可以生成Raw二进制格式的文件。

研究了一下它的链接器,最终的结果是用这样的参数:

OPTION OFFSET=xxxxxx FORMAT RAW BIN

或者

OUTPUT RAW OFFSET=xxxxxx

一起用就会出一些奇怪的结果。说明文档非常长,不知道是不是哪里漏掉了什么没看到的部分……

一起用的时候有的时候就出现最前面16个字节全部是0,然后后面的代码全部错位,大汗……

继续阅读用C语言写被导入EXE的代码片段

解决Thinkpad按键盘会嘟嘟嘟的问题

某网友昨日购置了一台Thinkpad笔记本电脑,正在琢磨着Windows 8如何使用的时候发现键盘输入某些特定的字母组合的时候,如果按快了电脑就会嘟嘟响。又不是输入法提示不能输入的那种(那个暂时就知道微软拼音会……)。

同时对方强调说,除了输入快,同时按下去的时候也会嘟嘟响。于是就从这里下手。因为自己没有用过thinkpad嘛,然后这个嘟嘟我觉得很可能是原来由主板上的蜂鸣器响的(笔记本没有蜂鸣器,于是就转为在声卡嘟嘟嘟了)。要么在BIOS里面关闭?

自己实在是没有经验,于是上网搜。又一次证实了百毒不知道和搜搜问不答:汝机过热而哔之,扇风可解矣(呸)。不靠谱,那只好搜英文。

搜英文thinkpad和beep和keyboard,找到了一些说这个问题的网页,看来确实是通病,但是人家不会汝机过热而哔之,人家给出解决方案了:

我进的是 http://www.intelliot.com/2006/12/thinkpad-keyboard-beeps-fixed/ 这个网页,它说,

继续阅读解决Thinkpad按键盘会嘟嘟嘟的问题

解决Gimp 2.8工具设置里文字消失的问题

Gimp2.8比起2.6版本,能够支持单一窗口模式。这点我感觉非常有吸引力:因为我对它一大堆工具栏窗口感觉很不舒服,现在能整合到一整个窗口里感觉很好。其他东西慢慢习惯也还好,但是工具设置里面文字会消失的问题超级烦躁,这是bug,得治。

就是说,画着画着,比如想切换到画笔工具了,点了工具箱里面的画笔,定睛一看,好吧下面那些不透明度啊画笔大小啊啥啥的,虽然可以供你拖动的滚动条还在,但是滚动条上的文字给你消失个精光。这怎么用啊(摔

继续阅读解决Gimp 2.8工具设置里文字消失的问题