首页
社区
课程
招聘
[原创]ollydbg2.01的字体定义
发表于: 2013-12-15 09:54 1901

[原创]ollydbg2.01的字体定义

2013-12-15 09:54
1901
虽然在选项里可以定义字体,但我们可以看看ollydbg.ini里的
[Fonts]
Font name[0]=OEM fixed font      
Font data[0]=0,0,0,0,0,0,0,0,0,0,0,10
Face name[0]=
其中Font name[0]就是我们的自定义字体名称
      Face name[0]这个才是真正的字体名称,可以用中文名称,比如“宋体”,也可以用英文名称,比如“simsun”。
这里的Font data[0]比较复杂:
swprintf(key,L"Font data[%i]",i);
      Writetoini(inifile,L"Fonts",key,L"%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i",
        font.logfont.lfHeight,//字符的高度
        //以逻辑单位指定字体字符元(character cell)或字符的高度。字符高度值为字符元高度值
        //减去内部行距(internal-leading)值。当lfHeight大于0时,字体映射程序将该值转换为设备单位,
        //并将它与可用字体的字符元高度进行匹配;当该参数为0时,字体映射程度将使用一个匹配的默认
        //高度值;如果参数的值小于0,则将其转换为设备单位,并将其绝对值与可用字体的字符高度进行匹配。
        //对于任何一种情况,字体映射程度最终得到的字体高度值不会超过所指定的值。以MM_TEXT映射模式下,
        //字体高度值和磅值有如下的换算公式:lfHeight=-MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72)
        font.logfont.lfWidth,//字符的宽度
        //以逻辑单位指定字体字符的平均宽度。如果lfWidth的值为0,则根据设备的纵横比从可用字体的数字
        //转换纵横中选取最接近的匹配值,该值通过比较两者之间的差异的绝对值得出。
        font.logfont.lfWeight,//指定字体重量。
        //在Windows中,字体重量这个术语用来指代字体的粗细程度。
        //lfWeight的范围为0到1000,正常情况下的字体重量为400,粗体为700。
        //如果lfWeight为0,则使用默认的字体重量。
        font.logfont.lfItalic,
        //当lfItalic为TRUE时使用斜体
        font.logfont.lfUnderline,
        //当lfUnderline为TRUE时给字体添加下划线
        font.logfont.lfStrikeOut,
        //当lfStrikeOut为TRUE时给字体添加删除线
        font.logfont.lfCharSet,//指定字体的字符集
        //指定字符集。可以使用以下预定义的值:ANSI_CHARSET、BALTIC_CHARSET、CHINESEBIG5_CHARSET、
        //DEFAULT_CHARSET、EASTEUROPE_CHARSET、GB2312_CHARSET、GREEK_CHARSET、HANGUL_CHARSET、
        //MAC_CHARSET、OEM_CHARSET、        RUSSIAN_CHARSET、SHIFTJIS_CHARSET、SYMBOL_CHARSET、TURKISH_CHARSET。
        //其中,OEM_CHARSET 表示字符集依赖本地操作系统。
        //DEFAULT_CHARSET 表示字符集基于本地操作系统。
        //例如,系统位置是 English (United States),字符集将设置为 ANSI_CHARSET。
        font.logfont.lfQuality,//指定字体的质量
        //定义输出质量。输出质量定义了图形设备接口在匹配逻辑字体属性到实际的物理字体的所使用的方式,
        //它可以为下列值之一:DEFAULT_QUALITY (默认质量)DRAFT_QUALITY (草稿质量)PROOF_QUALITY (正稿质量)
        font.logfont.lfPitchAndFamily,
        //指定字体的字符间距和族。最低两位指定字体的字符间距为以下值之一:DEFAULT_PITCHFIXED_PITCHVARIABLE_PITCH第4到7位指定字体族                //为以下值之一:FF_DECORATIVEFF_DONTCAREFF_MODERNFF_ROMANFF_SCRIPTFF_SWISS这些值的具体含义可以参考Visual C++中关于结构
        //LOGFONT的文档。字符间距和字体族可以使用逻辑或(OR)运算符来进行组合。
        font.hadjtop,//行在表中顶端间距
        font.hadjbot,//行在表中底端间距
        font.stockindex);//这个不清楚

附上常见的字体名称:
Windows的一些:

    新細明體:PMingLiU
    細明體:MingLiU
    標楷體:DFKai-SB
    黑体:SimHei
    宋体:SimSun
    新宋体:NSimSun
    仿宋:FangSong
    楷体:KaiTi
    仿宋_GB2312:FangSong_GB2312
    楷体_GB2312:KaiTi_GB2312
    微軟正黑體:Microsoft JhengHei
    微软雅黑体:Microsoft YaHei

装Office会生出来的一些:

    隶书:LiSu
    幼圆:YouYuan
    华文细黑:STXihei
    华文楷体:STKaiti
    华文宋体:STSong
    华文中宋:STZhongsong
    华文仿宋:STFangsong
    方正舒体:FZShuTi
    方正姚体:FZYaoti
    华文彩云:STCaiyun
    华文琥珀:STHupo
    华文隶书:STLiti
    华文行楷:STXingkai
    华文新魏:STXinwei

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 1631
活跃值: (3810)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不错,楼主可以写个插件,让od能使用所有字体
2013-12-15 10:50
0
雪    币: 10916
活跃值: (3284)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
这个不需要插件,我也不会写插件,所有的字体有几千种,没这个必要,想什么字体自己加就是。
2013-12-15 10:57
0
雪    币: 3511
活跃值: (4037)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
4
很详细的介绍,了解下先。
2013-12-15 13:04
0
游客
登录 | 注册 方可回帖
返回
//