`

XXXXX Barcode Reader 和谐手记

 
阅读更多

XXXX Barcode Reader 和谐手记

 

最近项目中用到一个条码读取组件,从ZxingIncodeLib试了一堆,没有一个比较满意的,识别率总是达不到客户的要求:(!

今天在网上找到ImagesInfoBarcode Reader组件,经测试,识别率感觉不错,但总是跳出一个对话框,“吧啦吧啦”一堆废话。兴之所至,想把对话框去掉。

想得容易,做起来难,虽然对java软件反向有点心得,对Native的软件还真没搞成功过,主要的短板是不懂汇编。不过既然想做,就试试看吧。

工具,是现成的,以前林林总总收集了一些,当然也有本次将用到的 OllyDBG(中文版,对于不懂汇编又不懂英文的人最合适)。

第一步,就是要确定对话框在哪个位置弹出。这个应该比较简单,只要找到对话框上的文字,找对话框弹出点也就容易多了。凭经验猜测对话框是在一个名为BarcodeR.dll中弹出的。

1、  启动OllyDBG,打开ImagesInfo测试程序ReadBarcode.exe

 

 

 

2、  待所依赖DLL都装载完成,然后按“Alt+E”打开“执行模块”窗口,找到BarcodeR.dll,然后该行上右键,弹出菜单,选择“跟随入口”,进入到BarcodeR.dll入口;



 

 

3、  然后在左上角反编译窗口右键,选择“查找à所有参考文本字串”,打开BarcodeR.dll中所有字符串引用的地址,在这里找到弹出对话框中独有字符串,右键并选择“反汇编窗口中跟随”,来到该字符串在代码中的位置。



 

 

 

4、  在字符串被引用的下方,应该可以看到类似:

10002061    FF15 78310110   call    dword ptr [<&USER32.MessageBoxA>]       ; user32.MessageBoxA

的代码,这是调用对话框函数。


 

5、  找到了对话框弹出点,剩下的工作就是如何让对话框乖乖地呆着不弹出了。

第二步,屏蔽对话框。

从原理上说,只需要让程序不执行

Call dword ptr [<&USER32.MessageBoxA>]

这行代码就行了,但怎样让程序不执行这行,不懂汇编的我是毫无头绪。只好要对话框弹出点附近乱改一气,但总是导致内存违例。

在网上找到一篇文章(http://www.oocities.org/r_etarded/ollypatch/ollypatch.html),给出了解决问题的方法:

1、  在调用MessageBoxA之前,必须先把调用参数入栈;

2、  MessageBoxAC语言声明格式如下:

int MessageBox(

HWND hWnd, // handle of owner window

LPCTSTR lpText, // address of text in message box

LPCTSTR lpCaption, // address of title of message box

UINT uType // style of message box

);

参数入栈的顺序是从右往左的,MessageBoxAr的四个参数分别是:参数1是对话框样式,参数2是对话框标题,参数3是对话框内容,参数四是调用的窗口句柄;



 

3、  要跳过对话框,只需在第一个参数入栈位置改成无条件跳转到调用对话框后面一行指令即可。


 
 

4、  在地址[ 10002051]行双击,弹出修改窗口,把“push 30”修改为“JMP 10002067”,按“汇编”确认修改;



 

 

 

5、  按“F9”运行,在BarcodeReader.exe中打开带条码的图像并执行识别,不再弹出试用版提示对话框。

6、  UltraEdit以二进制(十六进制)打开BarcodeR.dll,找到“83 C4 14 6A 30”并改为“83 C4 14 EB 14”然后保存,任务完成。

 

  • 大小: 46.5 KB
  • 大小: 28.9 KB
  • 大小: 61.8 KB
  • 大小: 56.7 KB
  • 大小: 112.9 KB
  • 大小: 66.3 KB
  • 大小: 107.9 KB
  • 大小: 63.8 KB
  • 大小: 64.2 KB
  • 大小: 57 KB
  • 大小: 46.5 KB
  • 大小: 61.8 KB
  • 大小: 112.9 KB
  • 大小: 107.9 KB
  • 大小: 64.2 KB
  • 大小: 53.2 KB
  • 大小: 58.3 KB
  • 大小: 64.5 KB
  • 大小: 70.1 KB
  • 大小: 71.3 KB
  • 大小: 72.8 KB
  • 大小: 63.5 KB
  • 大小: 68.8 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics