首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问Toshiba笔记本电脑加速度计设备驱动程序

访问Toshiba笔记本电脑加速度计设备驱动程序
EN

Stack Overflow用户
提问于 2009-07-09 19:40:48
回答 3查看 2.1K关注 0票数 2

我有一台新的东芝Satellite Pro S300笔记本电脑(运行Windows XP),它配备了一个3D加速度计来保护硬盘。我想了解一下这个传感器传来的数据。较旧的东芝笔记本电脑/平板电脑有一个DLL,可以访问它来提取加速数据。不幸的是,S300似乎没有这个动态链接库(这个动态链接库攻击已经在其他地方记录过了,例如here)。

硬盘保护应用程序(它有一个可爱的3D可视化旋转硬盘,与笔记本电脑的位置和运动同步旋转)似乎不依赖于任何“非标准”/custom DLL(根据DependencyWalker)。数据似乎是通过服务和/或通过.sys设备驱动程序访问的。我想我设法识别了相关文件,但我不知道如何查找、命名、访问、加载(或“反汇编”)相关函数。

如何发现和使用加速度计数据?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-16 04:23:14

我已经能够让它在下面的代码中工作(在东芝Satellite Pro S300L-120,Windows 7上):

代码语言:javascript
复制
void ReadAccel(float a[3])
{
    HANDLE h = CreateFile(L"\\\\.\\TVALZ", GENERIC_ALL, FILE_SHARE_WRITE|FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
    struct dummy
    {
        unsigned long magic1; /* = 0x0000FE00 */
        unsigned long magic2; /* = 0x000000A6 */
        unsigned short x, y;
        unsigned long unknown, z;
        unsigned long direction;
    } d;
    memset(&d, 0, sizeof(d));
    unsigned long retlen;
    d.magic1 = 0x0000FE00;
    d.magic2 = 0xA6;
    d.direction = 0;

    DeviceIoControl(h, 0x222880, &d, sizeof(d), &d, sizeof(d), &retlen, NULL);
    d.magic1 = 0x0000FE00;
    d.direction = 1;
    Sleep(20); /* Doesn't seem to work without the wait */
    DeviceIoControl(h, 0x222880, &d, sizeof(d), &d, sizeof(d), &retlen, NULL);
    signed short x = (d.x & 0x7FFF) * (d.x & 0x8000?-1:1);
    signed short y = (d.y & 0x7FFF) * (d.y & 0x8000?-1:1);
    signed short z = (d.z & 0x7FFF) * (d.z & 0x8000?-1:1);
    a[2] = -(float)z * 9.8 / 205; /* this is just an estimate to go to SI units */
    a[1] = (float)y * 9.8 / 205;
    a[0] = (float)x * 9.8 / 205;
    CloseHandle(h);
}

它可能还不是很漂亮,但我们可以开始玩了:)

顺便说一句,我使用了东芝硬件显示器附带的TPCHCTL.dll来解决这个问题。

票数 1
EN

Stack Overflow用户

发布于 2009-07-15 13:50:26

一般来说,你的工具是:

  • Sysinternals Process Monitor -可以让您大致了解东芝的进程做了什么:它打开了哪些设备( (DeviceIoControl).
  • a反汇编程序),以及它发出了哪些I/O控制请求--我最喜欢的是IDA

您可能很幸运,会发现Toshiba的进程包含额外的调试信息,IDA会很乐意使用这些信息。然后,有了所有可用的信息,你就必须自己弄明白事情的意义。

祝好运!

票数 3
EN

Stack Overflow用户

发布于 2009-10-12 23:32:13

需要说明的是,我刚刚通过filed a tightly related issue进入了Gecko (火狐et.阿尔。应用程序集)加速计支持,其对多个设备的支持可能会随下一个主要版本一起发布。:-)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1106042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档