| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1699 人关注过本帖
标题:DOS下运行的程序,修改图形框里的字
只看楼主 加入收藏
c2105
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-10-5
收藏
 问题点数:0 回复次数:8 
DOS下运行的程序,修改图形框里的字
DOS下运行的程序,修改图形框里的字
小弟有个DOS下运行的小程序,需要修改下图形显示框里的汉字,不知道怎么改,用什么方法能改,?主程序是EXE文件[attach]12295[/attach]
ctx16和ctx24好象是个字库文件,CGABGA应该是图形驱动文件吧?
我把程序和图片传上来了,大家帮忙研究下,就是把这个程序显示框里的电话号码修改下,大家帮个忙,并愿意支付相应的报酬 QQ:82049364
搜索更多相关主题的帖子: 图形框 DOS 运行 字库 
2006-10-05 18:05
carencpp
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2006-9-5
收藏
得分:0 
没办法,我怎么找都找不到运行后显示的那个电话号,更加不用说帮你改了。那个号是图形文件做上去的吧。

我是一个穷人 我爱请教问题 carenzawe@
2006-10-05 19:11
carencpp
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2006-9-5
收藏
得分:0 
我用软件打开那个EXE文件,里面会出现很多的16进制数字,没有找到电话号和手机号。

我是一个穷人 我爱请教问题 carenzawe@
2006-10-05 19:13
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
这字都在自制字模文件(ctx16和ctx24)中,用下程式可以读ctx16.dat
6PFhMkvC.rar (21.3 KB) DOS下运行的程序,修改图形框里的字


将ctx16.dat与上面的程序放在一个目录运行


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2006-10-05 20:53
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
这是程序源码,估计ctx24.dat字模偏移量同样为0,我看了一下,有两套阿位伯数字,也就是说电话号码所用的阿拉数字字模有可能与其它地方的阿拉伯数字字模不相干,只有是独立的就可以改,否则无法改.
#include <stdio.h>
#include <Conio.h>
#include <graphics.h>
void initgr(void);
void drawmat(char*mat,int matsize,int x,int y,int color);
int main(void)
{
FILE*fp ;
char mat[32];
char bat[32]=
{
255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,
}
;
char c;
int k=0 ;
int h=0;

initgr();

if((fp=fopen("CTX16.DAT","rb"))==NULL)
{
fprintf(stderr,"Cannot open CTX16.DAT \
file.\ n ");
return 1 ;
}
while(!feof(fp))
{
c=getc(fp);
h++;
}
fseek(fp,0,SEEK_SET);
for(k=0;k<h/32;k++)
{
drawmat(bat,16,20,20,6);
fread(mat,32,1,fp);
drawmat(mat,16,20,20,11);
getch();
}

closegraph();

return 0 ;
}
void drawmat(char*mat,int matsize,int x,int y,int color)

{
int i,j,k,n ;
n=(matsize-1)/8+1 ;
for(j=0;j<matsize;j++)
for(i=0;i<n;i++)
for(k=0;k<8;k++)
if(mat[j*n+i]&(0x80>>k))putpixel(x+i*8+k,y+j,color);
}
void initgr(void)
{
int gd=DETECT,gm=0 ;
registerbgidriver(EGAVGA_driver);
initgraph(&gd,&gm,"");
}

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2006-10-05 21:09
c2105
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-10-5
收藏
得分:0 
看到有这么多热心的朋友浏览回复,我真的太感谢大家了。刚才把Knocker哥哥给的程序运行了下,但还是没怎么弄明白,我用另外一个应用程序运行,CTX16和CTX24字模都是一样的,但图形显示框里的字完全不一样的,这是另外一个应用程序运行显示的图片
9uzrvC7h.rar (91.78 KB) DOS下运行的程序,修改图形框里的字



Kqhp3nda.jpg (53.14 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册


YFTQ36B6.jpg (70.34 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册


Q8lDtJbj.jpg (89 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
2006-10-07 00:08
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

你误会我的意思了
[QUOTE]修改这套程序里上面那排显示的汉字和电话号码应该是那个应用程序EXE文件,与字模程式无关[/QUOTE]
的确只修改程序即可,但是,因为该程序使用读写自建字模的方法来显示汉字,所以直接改程序难度很大。
我的意思是他的字模中有两套阿拉伯数字,是不是有可能其中一套阿拉伯数字只用来显示电话号码之用?如果是,则改字模就行了,改字模比较容易做到


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2006-10-07 11:03
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
能反编译,但反编译得到的C源程序几乎没什么用,看不懂

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2006-10-07 11:04
c2105
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-10-5
收藏
得分:0 
经过试验这个程序不用字模程序CTX16显示的就是这个画面
图片附件: 游客没有浏览图片的权限,请 登录注册

电话号码字模应该在CTX16这个程序里,可下面的功能键显示的字也没有了
如果只用CTX16这个字模显示的就是这样的画面

图片附件: 游客没有浏览图片的权限,请 登录注册

如上情况,电话号码应该在CTX16这个字模程序里,只修改CTX16字模程式可以吗?怎么改?
2006-10-07 12:18
快速回复:DOS下运行的程序,修改图形框里的字
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033810 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved