首页
社区
课程
招聘
[原创]OllyDBG 入门系列(七)-汇编功能
发表于: 2006-4-9 16:42 448111

[原创]OllyDBG 入门系列(七)-汇编功能

2006-4-9 16:42
448111
收藏
免费 8
支持
分享
最新回复 (510)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
176
永远支持.. 喜欢你的文章
2006-8-27 09:02
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
177
图文并貌,太谢谢了~~先收藏
2006-8-27 14:07
0
雪    币: 257
活跃值: (56)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
178
能否做个CHM?
2006-8-27 21:21
0
雪    币: 189
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
179
写代码,首先我们要在程序中建一个标准9号宋体的 LOGFONT,以便于我们调用。对于 LOGFONT,我们再来看一下定义:

typedef struct tagLOGFONT { // lf
LONG lfHeight;
LONG lfWidth;
LONG lfEscapement;
LONG lfOrientation;
LONG lfWeight;
BYTE lfItalic;
BYTE lfUnderline;
BYTE lfStrikeOut;
BYTE lfCharSet;
BYTE lfOutPrecision;
BYTE lfClipPrecision;
BYTE lfQuality;
BYTE lfPitchAndFamily;
TCHAR lfFaceName[LF_FACESIZE];
} LOGFONT;

这样我们的标准9号宋体的 LOGFONT 值应该是32字节,16进制就像这样:F4FFFFFF000000000000000000000000900100000000008600000000CBCECCE5。
sizeof(tagLOGFONT)等于60,为什么标准9号宋体的 LOGFONT 值应该是不是60字节而是32字节呢?
还有后面的这个F4FFFFFF000000000000000000000000900100000000008600000000CBCECCE5是怎么推算出来的?
2006-8-29 11:12
0
雪    币: 2506
活跃值: (1030)
能力值: (RANK:990 )
在线值:
发帖
回帖
粉丝
180
看上面的结构。汇编里面的其他类型都是DWORD,每个LONG和那个TCHAR是四个字节,各个BYTE是一个字节,你加一下就知道是32个字节了。而
F4FFFFFF000000000000000000000000900100000000008600000000CBCECCE5
这个你对应上面的LOGFONT结构及各个参数对应的字节数对照一下就明白了,如F4FFFFFF就是对应 LONG lfHeight,其余类推。最后的那个CBCECCE5是“宋体”的ASCII码。
2006-8-29 12:10
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
181
我怎么改成英文了啊?
2006-8-30 10:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
182
看到了,要修改相应的语言文件
2006-8-30 13:47
0
雪    币: 3149
活跃值: (66)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
183
最初由 alphabet 发布
请教:
我在写补丁代码的时候
0040A444 68 15A44000 PUSH myuninst.0040A415 ; 传递字体句柄LOGFONT
双击开始汇编的时候不能改
上面显示说"需要标签"
........


这样写就行了
PUSH 0040A415
2006-9-7 10:25
0
雪    币: 222
活跃值: (388)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
184
“如果你对 PE 结构比较熟悉的话,也可以直接用 16进制编辑工具来添加你需要的函数,这样改出来的东西好看。如果想偷懒,就像我一样用工具吧,”
正在学习打补丁,就碰到过要导入函数,但又不想增加一个节(主要是不想改变原文件大小),建议楼主有空就此给我等新手来个专题,谢谢先了
2006-10-2 13:11
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
185
首先,要感谢ccdebug得精彩文章,受教了

然后就是,我按照步骤修改了,结果弹出来得窗口标签得地方统统变成英文了,这是什么原因?
XP SP2系统!
2006-10-2 21:28
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
186
最初由 bistoury 发布
今天啃了一天,终于理解并完成了,不过我是把窗口句柄保存在.data区段,这样就不用把.rdata改成可写属性了(我觉得这样相对安全些,:)),因为.data区段默认就是可读些的!


我想LZ的目的不在于要特定用哪个区段,而是增加一个更改区段属性的例子教学。
2006-10-2 21:31
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
187
最初由 龙行云 发布
首先,要感谢ccdebug得精彩文章,受教了

然后就是,我按照步骤修改了,结果弹出来得窗口标签得地方统统变成英文了,这是什么原因?
XP SP2系统!


原因找到了,如果你把改过的程序命名跟myuninst_lng.ini文件不一致,就会出现默认的英文弹出窗口。
2006-10-2 21:34
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
188
新手需要,这样的帖子一定要顶。
2006-10-2 23:24
0
雪    币: 207
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
189
现在我们用 WinHEX 打开我们要修改的程序,转到偏移 9815 处,从 9815 处选择 32 字节(16进制是0X20)的一个选块,把光标定位到 9815 处,右键选择菜单 剪贴板数据->写入(从当前位置覆写),随后的格式选择 ASCII Hex,把我们 LOGFONT 的 16 进制值

F4FFFFFF000000000000000000000000900100000000008600000000CBCECCE5

我们已经在9815改了数据,为什么Peid搜索全0显示还是跟修改前一样?换句话说。如果一个pe文件已经被人改过了,那么后来再改的人怎么知道哪些地方已经被前人用了?
2006-10-12 10:47
0
雪    币: 215
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
190
看完之后很有收获。

还是觉得把变量放在代码段不是很好的做法。
关于LOGFONT的结构虽然给出了,但是赋的值却是特例。最好说明一lfHeight<0的情况。还有lfFaceName是要\0结尾的。说它32字节总觉得不妥。虽说照着本文做不会出现什么问题,因为留空格了。但万一我想节约一下空间呢。

照着这篇文章,顺利地把FileMon的MS Sans Serif字体给改掉了。原来的字太小。。
2006-11-9 11:02
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
191
好文章,支持!
2006-11-11 08:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
192
我这样的新手就是需要这样的科普教程。
2006-11-23 21:22
0
雪    币: 207
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
193
一点小细节:将myuninst1.exe保存文件为myuninst1.exe后,myuninst_lng.ini好像也要对应改为myuninst1_lng.ini,否则不能显示为文中所示的汉化界面。

                                 回复了之后才知道前面已经有了类似帖子了,不好意思!不过,虽说犯了错误,但顶的是这样的一个好帖老大可不要太怨我哟。。
2007-3-8 20:11
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
194
花了一天多时间照抄了一回,有好多东东不明白~~~~~~~~
2007-4-5 17:10
0
雪    币: 237
活跃值: (33)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
195
支持。高手风范。
2007-4-12 09:22
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
196
Sehr Gut
2007-4-12 17:46
0
雪    币: 195
活跃值: (99)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
197
CCDebuger出品,必是精品。
CCDebuger,我的偶像啊
2007-4-12 19:07
0
雪    币: 178
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
198
来学习学习啊
2007-4-13 17:21
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
199
支持~~~学习学习~~~
2007-4-14 12:00
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
200
有点难度~~~看不懂………………
2007-4-14 12:00
0
游客
登录 | 注册 方可回帖
返回
//