如何从软件中提取数据?

时间:2015-07-16 15:21:50

标签: automation reverse-engineering

我有一个由国内公司列表组成的软件,当您双击公司时,您会得到一些有关它的数据。 它没有API。

是否有可能以某种方式创建一个脚本来获取这些数据并将其放入我的数据库中。

我不期待完整的教程。但是,有人可以指出我正确的方向。

2 个答案:

答案 0 :(得分:1)

你可以从软件用户界面中提取数据,虽然它比你可以从存储它的任何地方提取数据要慢。

如果没有关于该软件的任何细节,我现在假设它是一个本地Windows应用程序,当您双击一个简单列表中显示的公司时,它会显示您想要在文本字段中获取的数据控制。

要从此类应用程序中获取数据,您可以使用可编写脚本的UI自动化工具(例如AutoHotkey)重复向软件发送必要的UI事件,以模拟显示公司的用户:

完成后,将文件注入数据库。

如果您的软件不是本机Windows应用程序,则可以使用各种UI自动化工具来处理其他类型的UI。它们往往用于质量检查,但也可以帮助从您有限访问权限的应用程序中提取数据。

答案 1 :(得分:0)

一种方法是找出数据文件的格式,并编写自己的程序以从中检索数据。

SQLite非常受欢迎,因此.dat文件可能采用SQLite格式:

https://www.sqlite.org/fileformat2.html

如果是这种情况,您应该能够使用SQLite客户端以交互方式检查数据库,并弄清楚如何提取数据 - 这是命令行示例:

$ sqlite3 foo.dat
sqlite> .databases
    < Database list should appear here >
sqlite> .tables
    < Table list should appear here >

等等。