转——一个超级wince牛人使用反汇编工具修改程序的方法

来源:互联网 发布:ipad pro草图软件 编辑:程序博客网 时间:2024/04/28 13:34

Foxit Reader V1.1 for WinCE6.0

     今天终于整理清了PXA270上的WinCE6.0,为了方便给客户演示WinCE6.0的强大,定制了一个增强型的操作系统。但WinCE6.0中已经不支持PDF等阅读器了。于是从网站上找了一个PPC版的Foxit Reader,把它放到WinCE6.0的设备上面运行,竟然提示OS不支持,只能在PPC上面跑。看到这个提示有些失望,但也有一丝希望。这个提示似乎是Foxit Reader运行时的提示框,与一般的“不是有效的Windows CE应用程序”是不一样的。既然这样,那说明程序还是运行起来了,只是检测OS时出错,所以才会出现如下图所示的提示。     

                              

       想一想,如果让程序跳过检测OS,是不是就可以正常运行呢。满怀着希望,用IDA反汇编了这个程序,并找到了对应的函数调用。

                                 

     显而易见,0x000182b4处是有条件的调用,如果改成绝对调用loc_0_182D0,按理就不会出现那个提示框了,修改方法就是将BEQ改为B         

               

     用UltraEdit将上面的0A改为EA,即将BEQ改成B,再拷贝到设备上面去,果然可以运行,

                

可以看到,上面的About Foxit Reader对话框竟然没有关闭的按钮。这可怎么退出呢?重启机器?当时没想到,它是可以用ECS退出的,只是觉得很不爽,得加个关闭按钮。开始想通过IDA来改代码实现,后来想想根本就用不着。用exescope就可以很轻松的达到这个效果,用exescope打开编辑了一下,再运行,关闭按钮乖乖的出现了。

                   

嘿嘿,到这里就算成功破解了PPC版的Foxit Reader,使其能在CE6.0上面运行。虽然这对牛人来说是小菜一碟,但还是贴出来跟大家分享一下,咱就从小菜开始做起。

点击这里http://files.cnblogs.com/we-hjb/CE6.0FoxitReader.rar下载Foxit Reader for WinCE 6.0