- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个第三方程序,该程序聚集了许多不同的现有Windows程序中的数据。每个程序都有通过GUI导出数据的机制。最死脑筋的方法是让我通过使用AutoIt或其他一些GUI操作程序来生成摘录,以通过GUI生成摘录。这样做的问题是,当突然有一些自动化程序接管时,人们可能正在与计算机进行交互。不好我真正想做的是以某种方式每天运行一次程序,然后以静默方式(即不弹出任何GUI)从每个程序导出数据。
我的研究告诉我,我需要挂钩每个应用程序(假设这些应用程序始终在运行),并注入(inject)一个自定义DLL来触发每个导出。我是否接近正确的方向?我是一个非常有经验的软件开发人员,但是我对逆向工程或钩子(Hook)一无所知。任何建议或指示将不胜感激。
编辑:我正在尝试管理某种类型的专业人员的可用性。他们的日程表存储在专有系统中。在他们的许可下,我想在他们的系统上安装一个应用程序,该应用程序可以从他们使用的任何系统中提取时间表,并将信息上载到中央服务器,以便可以将该信息提供给潜在的客户。
最佳答案
我知道有四种提取所需信息的方法,它们都有优点和缺点。在执行任何操作之前,您需要了解,您创建的任何解决方案均无法保证,并且即使目标应用程序不断更新,也很难继续工作。原因是,在每种情况下,您都依赖于实现细节,而不是通过其导出数据的预定义接口(interface)。
挂钩GUI
第一种方法是按照您的建议挂接GUI。在这种情况下,您所做的只是从实际用户的观察中读取。通常,这很容易,因为您要钩住明确定义的WinAPI。一种危险是程序显示的内容与其应该表示的内部数据相比不一致或不完整。
通常,有两种执行WinAPI挂钩的常用方法:
malloc
)。在这种情况下,您将需要找到一个存储指针的堆地址(例如返回malloc
),对其进行取消引用并找到您的列表。该指针将易于使用ASLR,而不是指针,它可能是双指针,三指针等。If you are looking for ways that programs detour execution of otherprocesses, it is usually through one of two means:
- Dynamic (Runtime) Detouring - This is the more common method and is what is used by libraries such as Microsoft Detours. Here is arelevant paper where the first few bytes of a function are overwrittento unconditionally branch to the instrumentation.
- (Static) Binary Rewriting - This is a much less common method for rootkits, but is used by research projects. It allows detouring to beperformed by statically analysing and overwriting a binary. An old(not publicly available) package for Windows that performs this isEtch. This paper gives a high-level view of how it worksconceptually.
Although Detours demonstrates one method of dynamic detouring, thereare countless methods used in the industry, especially in the reverseengineering and hacking arenas. These include the IAT and breakpointmethods I mentioned above. To 'point you in the right direction' forthese, you should look at 'research' performed in the fields ofresearch projects and reverse engineering.
关于windows - 扩展我没有源代码的现有程序的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10134630/
我正在构建一个 RCP 应用程序,其中每个季度都会更新功能/插件。因此,如果用户选择自动更新功能/插件,则会下载更新插件的新 jar,但旧插件仍在使用我不再使用的磁盘空间。 我厌倦了删除包含旧 jar
我如何从外部 Controller 功能中调用 Controller 内部的功能,例如电话间隙回调功能 这是 Controller 外部定义的功能 function onDeviceReady()
如果某个功能(例如 MediaSource)可用,我如何使用 Google Dart 检查。 new MediaSource() 抛出一个错误。如何以编程方式检查此类或功能是否存在?有任何想法吗?是否
我正在尝试运行 Azure Orchestrations,突然我开始从 statusQueryGetUri 收到错误: 协调器函数“UploadDocumentOrchestrator”失败:函数“U
我见过 iPhone 上的应用程序,如果在 3.0 上运行,将使用 3.0 功能/API,例如应用内电子邮件编辑器,如果在 2.x 上运行,则不使用这些功能,并退出应用程序以启动邮件相反。 这是怎么做
这是 DB 规范化理论中的一个概念: Third normal form is violated when a non-key field is a fact about another non-ke
如果我定义 #if SOMETHING #endif 而且我还没有在任何地方定义 SOMETHING。 #if 中的代码会编译吗? 最佳答案 当#if的参数表达式中使用的名称未定义为宏时(在所有其他宏
我刚刚澄清了 A* 路径查找应该如何在两条路径具有相等值的 [情况] 下运行,无论是在计算期间还是在结束时,如果有两条相等的短路径。 例如,我在我的起始节点,我可以扩展到两个可能的节点,但它们都具有相
Java有没有类似下面的东西 宏 一种遍历所有私有(private)字段的方法 类似于 smalltalk symbols 的东西——即用于快速比较静态字符串的东西? 请注意,我正在尝试为 black
这个程序应该将华氏度转换为摄氏度: #include int main() { float fahrenheit, celsius; int max, min, step;
当打开PC缓存功能后, 软件将采用先进先出的原则排队对示波器采集的每一帧数据, 进行帧缓存。 当发现屏幕中有感兴趣的波形掠过时, 鼠标点击软件的(暂停)按钮, 可以选择回看某一帧的波形
我有一个特殊的(虚拟)函数,我想在沙盒环境中使用它: disable.system.call eval(parse(text = 'model.frame("1 ~ 1")'), envir = e
使用新的 Service 实现,我是否必须为我的所有服务提供一个 Options 方法? 使用我的所有服务当前使用的旧 ServiceBase 方法,OPTIONS 返回 OK,但没有 Access-
我正在阅读 Fogus 的关于 Clojure 的喜悦的书,在并行编程章节中,我看到了一个函数定义,它肯定想说明一些重要的事情,但我不知道是什么。此外,我看不到这个函数有什么用 - 当我执行时,它什么
我有大量的 C 代码,大部分代码被注释掉和/或 #if 0。当我使用 % 键匹配 if-else 的左括号和右括号时,它也匹配注释掉的代码。 有没有办法或vim插件在匹配括号时不考虑注释掉或#if 0
我有这个功能: map(map(fn x =>[x])) [[],[1],[2,3,4]]; 产生: val it = [[],[[1]],[[2],[3],[4]]] 我不明白这个功能是如何工作的。
我使用 Visual Studio 代码创建了一个函数应用程序,然后发布了它。功能应用程序运行良好。我现在在功能门户中使用代码部署功能(KUDU)并跳过构建。下面是日志 9:55:46 AM
我有一个数据框df: userID Score Task_Alpha Task_Beta Task_Charlie Task_Delta 3108 -8.00 Easy Easy
我真的无法解决这个问题: 我有一个返回数据框的函数。但是,数据框仅打印在我的控制台中,尽管我希望将其存储在工作空间中。我怎样才能做到这一点? 样本数据: n <- 32640 t <- seq(3*p
有没有办法找出所有可能的激活器命令行选项? activator -help仅提供最低限度的可用选项/功能列表,但所有好的东西都隐藏起来,即使在 typesafe 网站在线文档中也不可用。 到目前为止,
我是一名优秀的程序员,十分优秀!