首页
社区
课程
招聘
[求助]寻前辈帮我修改“画图”程序的方法我工作急需!!!
发表于: 2010-5-7 18:48 8415

[求助]寻前辈帮我修改“画图”程序的方法我工作急需!!!

2010-5-7 18:48
8415
看雪的各位前辈,我来拜一拜。一年多没来了,大家都好吧。
我最近有一个工作需求,十分着急,我自己没能解决,还请这里的高手们指点迷津。

目标文件:c:\windows\system32\mspaint.exe(画图)
我的要求:反汇编这个软件,修改其【文件\页面设置\居中】将默认选中的两个改为默认不选中

故事由来:我单位要用这个软件打印一个位图,大批量打印,一张A4的纸正好能打印两张。而画图默认是在这张纸的正中间打印,这样很浪费纸。每次我们都要手工设置,点选几下才打印。一两张可以,大批量很费事。我想把这个程序的默认选中改为默认不选中。这样就可以直接在A4纸的左上角打印,我们操作的时候就可以直接按:Ctrl+P,回车,回车。就行了。

有人会说,换软件,的确,我用过ACDSEE的2.4,它就可以保存设置,直接打印。但,我们有时候还需要编辑这个位图文件,ACDSEE只能看不能改,所以还得用画图。有人劝我用PhotoShop,我汗。

我真的不想换软件,最重要的是,我是个喜欢挑战的人,单纯从技术角度,我希望攻克它,一个微软制作的标准的体积很小的可执行文件,一定要改它。

我会用 eXesScope ,但它只是编辑资源的软件,不能改源程序。
用这个软件打开,对话框中的 第 133 个,“居中”底下的 “水平”和“垂直”
ID 分别是 1211 和 1212

我没学过反汇编,下载了PE explorer 等软件也是一头雾水,我知道,要修改这个 checkbox 
的默认状态,需要找到程序代码的某个地址,将它的【值】修改。最后,落实到用 UE ,把某个位置的 16进制数值 修改一下 就OK啦。例如把某处的 74 改成 EB或者 90 什么的。

我真的很需要,请高手高手我步骤也行,用什么软件,什么版本,逐步的怎么操作,找到哪类的数据,对应的什么句柄,对应的 16进制数值是什么。我真是外行,但我真需要。

拜托了,我在百度400分求助都没人能帮上忙,人说高手是不去那里的。
我只好来到 这方 圣地 虔诚的 求助。
也希望,我能够据此 成长,拜谢啦。


忘说了,有好消息请联系我,我十分着急。我的邮件:softwide@tom.com
我的QQ:1098258505 我的电话:13009109216
怎么感谢都行。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 1
支持
分享
最新回复 (25)
雪    币: 360
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rol
2
看你如此着急,不帮都过意不去。
use UE 搜索 89 BB B8 01
你会找到 89 BB B8 01 00 00 89 BB BC 01 00 00
将上面两个BB换成 B3

应该就能满足你的要求了。

可能会因版本不同而不同,试试运气吧
2010-5-8 01:10
0
雪    币: 6772
活跃值: (3689)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
帅呀,LS能不能大致说一下过程!
2010-5-8 08:50
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
=========================================
我怎么感谢你呢,成功了。拜谢拜谢!!!!!!!!!!

真是“科技是第一生产力”啊!
我一定要好好向您学习,你是我前进的方向。
我发誓一定要努力学习破解,至少也要达到,您帮我实现这么目的的水平。
我太激动了,我太感谢了。
我怎么给你分,给你回报?????????
另外,你去百度么,我在那里准备了400分,如果你不弃,用你名回个帖我就都给你,1000分都行。如果你觉得那里没用,就这里吧。有多少给多少。

PS:我再得寸进尺一下,能否让它默认的 A4纸,默认成 B5纸?!(这个就不强求啦,有则更好)

谢谢
2010-5-8 12:52
0
雪    币: 780
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这么牛啊,大侠说下思路吧
2010-5-8 13:04
0
雪    币: 360
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rol
6
我不去百度,悬赏贴使用说明: http://bbs.pediy.com/showthread.php?t=95453
思路很简单,就是想办法找到给控件赋初值的语句,改掉它。
ps:牛我肯定不是,会的人肯定很多,只是我恰好有时间。你提的另外的要求我有时间在看。
2010-5-8 13:31
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
那我就暂时先不结贴,等你有空再说。
授人以鱼不如授人以渔
麻烦大侠有空告诉一下步骤,B5那个应该也在 UE 数据的附近吧,我可能胡乱尝试一番。
就像当年我 爆破 仙剑一样 胡乱 逐个的改 了 几百个 74 > EB 才成功
看来,还得是 懂技术啊、勤学习呀。
2010-5-8 14:29
0
雪    币: 360
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rol
8
我看了一下,似乎改变默认纸张大小应该在打印机里改。
控制面板 ->打印机-> 默认打印机-> 右键-> 打印首选项 ->选择纸张保存。
再打印的时候就会按保存的默认纸张进行打印了。
2010-5-8 15:02
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
哥们你真厉害,我试验了,果真如此,在打印机的设置的 首选项 里。
========================================
刚才,我还在瞎找,用 UE 找 那个 打印的 页边距 ,想把那 四个 19.1 改成 10.1之类。
看到了很多 19 01 或者 13 01 逐个 瞎改了好几百个 都不是。

你好人做到底吧。再帮我,A4或B5已经会设置了,就差一个问题。
怎么让它默认的 19.1 自动出现的 变成 10.1 之类的 或者 5.1 之类的数据,
尤其是那个【文件\页面设置\页边距\顶端】的19.1 最好能改小些,我找几百个都不是。

此前,你帮我修改了源程序,如果用A4纸打印,已然完美的实现了。几下回车连续打印。
我们的A4纸要批条用,而B5纸还有十多包,所以我们近期要用B5纸打印最为恰当。
因为,我们如果设置 B5打印,那A4默认的参数,那四个 19.1 就会 导致 一张纸打不下来。
下一张,只打个边。如果,其实,仅仅将  页边距的 顶端的 19.1 改成 10.1 或者 5.1
我们的位图 文件(567x446像素,尺寸15X11.8)就能打印两张了。

恩大无以言谢! 磕头啦
2010-5-8 15:53
0
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
很多年没用过打印机了,有一项自定义纸张吗?我乱猜的.
2010-5-8 16:13
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
11
后期要印B5时用回未经修改的exe, 设打印机不就得了.
2010-5-8 16:14
0
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
既然玩过游戏,知道有一个软件称为按键精灵不.要是真量大,录个脚本吧.看VC头痛中,我是捣乱的.
2010-5-8 16:20
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
就是不想频繁的每打一一个都要改一下参数,才如此的。谢谢作答。我还是希望用爆破的方式一劳永逸的解决问题。

=======================
说个微软的BUG,画图生成的位图文件都存在着 像素错误 ,98系统的画图程序 按照分辨率打印,XP就改成用实际尺寸打印,问题来了。它自己生成的位图本来应该是96dpi的结果却是81dpi,用它打印的东西就比实际的大了些,这就是我 攻 这个问题的原因,前一个 我已经 找到 并解决了。前些天,我自己做了个 关于 画图生成的位图文件的 修正 补丁,经过我制作的补丁修正的位图文件,你再用画图去打印,保证和在ACDSEE打印出来的一样尺寸。(后者不能编辑所以只能以分辨率打印)。
包括 Viste 被移植到 XP 中的 画图 都这个德行, WINDOWS7中的我试验了,没这个BUG了。

怎么说呢?是微软懒,还是店大压客呢?!
微软的程序insta....exe安装必备的,名我忘了,2.0有严重的BUG,装上后,右键看属性,它就后台复制一遍时间很长。1.0就没有。我多次联系微软,人家就是 死猪不怕开水烫。后来出了3.0 现在好像是4.5吧,
因为系统内置了,现在我也不用它了。

画图的 生成位图的像素错误 和 默认打印参数 的低级  都是 一套货色。只盼国人自己长进呐!
2010-5-8 16:31
0
雪    币: 360
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rol
14
lz的想法还挺多,你的页边距想要多少?
2010-5-8 17:20
0
雪    币: 360
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rol
15
搜索 B8 71 07 00
改成 B8 ED 03 00
即可将19.1改成10.1
2010-5-8 17:28
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
兄台真乃神人也,我看到了,就在上次修改数据的上面那一行,好近呐。
就是数据不眼熟,不是19也不是13 ......
成功了,眼泪哗哗滴呀......
===========================================

怎么谢你呢,我肯定会去结贴。
我只知道19的16进制是13,请问你能告诉我这几个数是怎么换算的吗?我好DIY

谢谢谢谢谢谢谢谢谢
2010-5-8 17:56
0
雪    币: 360
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rol
17
1905D ->0771H
1005D ->03EDH
2010-5-8 17:58
0
雪    币: 268
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
GUX
18
呵呵, 不错, 学习了
2010-5-8 18:06
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
啊,恩公。我明白是高位在前,我已经按照你给的数据修改成功了。
就是我想知道是怎么换算滴,比如,为什么 这个数就等于 19 ?
为什么,那个数就等于 10 ?

是不是,它的16进制数值换算成 10进制 再除以 95 之类的,
然后 95再 乘以 10 等于 那个数,换算成 16进制 正好是 你给的数字 ,云云......
===================================================
啊,我好笨,刚用计算器 一看 ,你已经说的很明白了。直接转换就是。
这样,我自己也可以改了,例如想改成8毫米 就是 805 换算成16进制就是325就等于2503
将2503覆盖到7107就是了,对吧。

那最后一个问题 为什么 05  等于 0.1 呢 ?

就这样吧,我去结贴。十分,百分,千分,万分的感谢 ROL 君。
我这里没有什么,倘有,一定全部奉上。如果 兄台还有要赐教的请 站内短信或QQ 告诉我吧。
也谢谢所有关注并回帖的朋友。这里真是高手云集之地。我当常来学习,拜读榜样们的仙迹!
2010-5-8 18:07
0
雪    币: 360
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rol
20
05和0.1应该就是精确度的问题,可能就是19.05近似成19.1 估计和19.08没什么差别都会被认为是19.1
2010-5-8 18:42
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
啊,再次,再再次的感谢!
请 rol 兄受我一拜!
2010-5-8 18:44
0
雪    币: 360
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rol
22
太可气了,欢迎常来灌水。
2010-5-8 18:47
0
雪    币: 780
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
哎,只能膜拜
2010-5-8 21:59
0
雪    币: 220
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
看完,,膜拜下,,  LZ 也挺强
2010-5-13 17:27
0
雪    币: 102
活跃值: (50)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
25
楼主口才太好了,我看的要死笑死了
我估计你平时说话可能是100字每秒
2010-5-13 19:23
0
游客
登录 | 注册 方可回帖
返回
//