月光下の魔术师 发表于 2015-4-6 11:24

请教各位大神关于易语言部分命令的问题

{:6_224:}好不容易百度了一个源码,结果作者发布的时候把所有的变量名全部给XX了{:6_221:}……于是我就来无耻的提问这究竟在干啥了{:6_209:}注:以下所有变量均为整数型变量
1.如果真 (SystemParametersInfo (41, 0, fsghsgslghsll, 0))
问:MSDN查到41代表的常量是SPI_GETNONCLIENTMETRICS,检索与非最小化窗口的非客户区有关的度量信息,那么这行代码的作用是什么?fsghsgslghsll是指针,函数运行前后指针指向的值有无改变?如果改变会变成什么?返回值代表什么?
2.asgnlg = GetProcAddress (GetModuleHandleW (A2W (“user32.dll”)), “GetWindow”)
.如果真 (asgnlg ≠ 0)
    .变量循环首 (1, 49, 1, ejgkhksj)
      .如果真 (指针到短整数 (asgnlg + ejgkhksj) = -6136)
            sgshghss = asgnlg + ejgkhksj + 1 + 指针到整数 (asgnlg + ejgkhksj + 2) + 5
            跳出循环 ()
      .如果真结束
    .变量循环尾 ()
问:这整个一段的代码是干什么的?asgnlg应该是GetWindow的地址,那么之后的操作在干什么?

3.
这段汇编代码是干什么的?返回结果似乎与操作系统有关系
pushad
mov ebx,dword ptr fs:
mov eax,dword ptr fs:
mov ebx,dword ptr ds:
mov dword ptr ss:,ebx
popad

yl1003 发表于 2015-4-6 11:24

1.C的原型BOOL SystemParametersinfo(UINT uiAction,UINT uiParam,PVOID pvParam,UINT fWinlni);所以返回值为0或1.也就是真或假。fsghsgslghsll可以理解为之后返回一个当前信息的值。
2.asgnlg = GetProcAddress (GetModuleHandleW (A2W (“user32.dll”)), “GetWindow”)
//上面一句获取GetWindow的地址
.如果真 (asgnlg ≠ 0)//如果不等于0
    .变量循环首 (1, 49, 1, ejgkhksj)//开始计数,
      .如果真 (指针到短整数 (asgnlg + ejgkhksj) = -6136)//如果这个地址的值加上ejgkhks等于-6136的话
就根据这句算法,将最终结果给sgshgss。然后结束掉循环
            sgshghss = asgnlg + ejgkhksj + 1 + 指针到整数 (asgnlg + ejgkhksj + 2) + 5
            跳出循环 ()
      .如果真结束
    .变量循环尾 ()
3.02.pushad

03.mov ebx,dword ptr fs:// FS段寄存器在内存中的镜像值

04.mov eax,dword ptr fs:mov eax,fs:            ;得到PEB结构值

05.mov ebx,dword ptr ds: 不清楚+A4指向哪里,

06.mov dword ptr ss:,ebx将EBX的值返回给局部变量

07.popad

月光下の魔术师 发表于 2015-4-6 11:58

{:6_223:}这作者绝对是闲得蛋疼的没边了,子程序名和变量名全部都给打乱了{:6_225:}

小影子 发表于 2015-4-6 12:04

是我会打得更乱一点

月光下の魔术师 发表于 2015-4-6 12:11

小影子 发表于 2015-4-6 12:04
是我会打得更乱一点

{:6_224:}大神这不是重点好吗

月光下の魔术师 发表于 2015-4-6 12:32

yl1003 发表于 2015-4-6 12:19
1.C的原型BOOL SystemParametersinfo(UINT uiAction,UINT uiParam,PVOID pvParam,UINT fWinlni);所以 ...

大牛已私信
页: [1]
查看完整版本: 请教各位大神关于易语言部分命令的问题