场景:目前公司开发了一款 windows 桌面应用程序,界面 UI 为自定义的 UI,目前使用 spy++与 inspect 等均无法抓取到界面上的文字内容,也无法复制修改这些业务数据,这些业务数据均是从服务器实时获取到的。
需求:现在有没有什么办法可以获取到这些数据,内存方法已经使用 ce 测试过,无法获取到。使用 ollydbg 同样无法获取到。
反思:即使是自定义的 UI,上面的静态文本数据是有的(该数据是以列表的形式显示在程序界面上),应该是有办法获取到的,windows 去熏染也要有数据才能熏染!也可能是使用 ce 与 ollydbg 方法不对。
恳请有懂的大哥指点一二
1
xupefei 2021-08-17 19:18:31 +08:00 via iPhone
用 dx 画的画就去 hook dx api,gdi 画的就去 hook drawtext 或 createglyphoutline,哪儿有拿不到的道理。
|
2
ila 2021-08-17 19:59:11 +08:00 via Android
autoit
|
3
secondwtq 2021-08-17 20:12:35 +08:00
有服务器就抓包啊 ...
DirectUI 没有通用的方法的,上面有人说去抓 DX API,你抓过来只会抓到一堆 triangle 我之前在 v2ex.com/t/794788#r_10778545 说过 OS X 的 automation 做的好,没提的是其中一个原因是 OS X 的软件技术选型比较统一,最后都收敛到 Cocoa 。不过我觉得 现在 Electron 越来越普遍,这个优势可能慢慢淡了。 |
4
ch2 2021-08-17 20:26:00 +08:00
试一试 uia 模式,别用 win32 模式
|
6
BeautifulSoap 2021-08-17 20:39:07 +08:00
等等,这程序是 lz 公司自己开发的话直接问问开发部门具体是怎么画上去的不就好了?然后根据画上去的方法找对应方法
如果对方愿意帮忙的话,给你开个调试用的接口不更方便。 实在不行的话我觉得直接在程序和服务器之间搞个中间人修改数据也比你做反向工程方便啊(当然像学习反向工程的话另当别论 |
7
levelworm 2021-08-17 20:42:25 +08:00
有加密吗?听起来应该是没有?
|
8
forgottencoast 2021-08-17 20:58:30 +08:00
@BeautifulSoap 总感觉楼主有点奇怪。
|
9
g00001 2021-08-17 21:23:21 +08:00
无句柄窗口也不是完全不能控制,
一种方法是使用 UI Automation 或 MSAA , 举个例子读取 QQ 聊天消息( aardio 代码 ) import winex; import winex.accObject; import console; for hwnd in winex.each( "TXGuiFoundation" ) { var accObject = winex.accObject.fromWindow(hwnd) if(accObject){ var accMessage = accObject.find(role="list") if(accMessage){ for accChild in accMessage.each(){ console.log(accChild.roleText(),accChild.name(),accChild.value()) } } } } console.pause(true); 还有一种方法是直接窗口截图文字识别, 用 aardio 写个例子: import winex; import string.ocrLite; import string.ocrLite.defaultModels; var ocr = string.ocrLite(,true); var hwnd = winex.findExists("窗口标题"); if(!hwnd) return; var ocrResult = ocr.detectClient(winform.hwnd); if(ocrResult){ var x,y = ocrResult.findPoint("按钮文本",0.1); if(x && y){ import mouse; //无句柄窗口可以直接用 winex.mouse.click() 点击 mouse.moveToWindow(x,y,winform.hwnd); mouse.click(); } } |
10
lukaz 2021-08-17 22:30:26 +08:00
感觉像是搞黑产的
|
11
kerro1990 2021-08-17 22:36:13 +08:00
后台截图是最好的,然后 OCR 识别,然后鼠标点击特定的坐标
|
12
chenmobuys 2021-08-18 09:23:38 +08:00
正常需求,直接跟公司开发部门沟通
不是正常需求,那还是算了 |
13
AX5N 2021-08-18 20:59:10 +08:00
目测楼主是开发外挂的
|