吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1436|回复: 7
收起左侧

[讨论] 求助一个dll函数参数问题

[复制链接]
dzpos 发表于 2022-5-27 09:19
50吾爱币
求助 dll文件,通过 dumpbin.exe 能查询到 函数名 setupdate(),参数,不能确定。返回值 应该是一个字符串。现在使用易语言可以加载dll进去,但是无法调用函数。形参和实参怎么能知道?
4.png 3.png 5.png

最佳答案

查看完整内容

感觉是这样的 .版本 2 .DLL命令 SetupDate, 整数型, "setup.dll", "SetupDate", 公开 .参数 lpStr, 文本型, 传址 .参数 size, 整数型 .版本 2 .程序集 窗口程序集_启动窗口 .子程序 _按钮1_被单击 .局部变量 str, 文本型 str = 取空白文本 (255) SetupDate (str, 255) 输出调试文本 (str)

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

苏紫方璇 发表于 2022-5-27 09:19
感觉是这样的

.版本 2

.DLL命令 SetupDate, 整数型, "setup.dll", "SetupDate", 公开
    .参数 lpStr, 文本型, 传址
    .参数 size, 整数型



.版本 2

.程序集 窗口程序集_启动窗口

.子程序 _按钮1_被单击
.局部变量 str, 文本型

str = 取空白文本 (255)
SetupDate (str, 255)
输出调试文本 (str)

免费评分

参与人数 1热心值 +1 收起 理由
朱朱你堕落了 + 1 我苏紫姐姐岂是盖的!没有不会的!

查看全部评分

pzx521521 发表于 2022-5-27 09:39
没有办法知道
正常类型如char string int double etc...一个一个试一下
如果不行就是一个struct 就可以放弃了
 楼主| dzpos 发表于 2022-5-27 09:40
所需要的 dll文件 百度网盘地址:链接:https://pan.baidu.com/s/1R8G8fmMdKPZZt4PCMyii1g
提取码:vow3
万神fake 发表于 2022-5-27 10:40
用ida反编译
万神fake 发表于 2022-5-27 10:49
[C++] 纯文本查看 复制代码
int __stdcall SetupDate(int a1, rsize_t SizeInBytes)
{
  struct AFX_MODULE_STATE *v2; // eax
  int v3; // eax
  int v4; // eax
  char v5; // al
  int v6; // esi
  const char *v7; // eax
  DOUBLE pvtime; // [esp+1Ch] [ebp-70h] BYREF
  int v10; // [esp+24h] [ebp-68h]
  __time64_t v11; // [esp+28h] [ebp-64h] BYREF
  char *Destination; // [esp+30h] [ebp-5Ch]
  int v13[2]; // [esp+34h] [ebp-58h] BYREF
  struct _SYSTEMTIME v14; // [esp+3Ch] [ebp-50h] BYREF
  struct _SYSTEMTIME v15; // [esp+4Ch] [ebp-40h] BYREF
  char v16[4]; // [esp+5Ch] [ebp-30h] BYREF
  char *Source; // [esp+60h] [ebp-2Ch] BYREF
  rsize_t MaxCount; // [esp+70h] [ebp-1Ch]
  unsigned int v19; // [esp+74h] [ebp-18h]
  struct _SYSTEMTIME SystemTime; // [esp+78h] [ebp-14h] BYREF

  Destination = (char *)a1;
  v2 = AfxGetModuleState();
  AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2((AFX_MAINTAIN_STATE2 *)v13, v2);
  v11 = _time64(0);
  pvtime = 0.0;
  v10 = 0;
  if ( !(unsigned __int8)sub_10003E00() || (v3 = sub_10003E70(&SystemTime, &pvtime), v10 = 0, !v3) )
    v10 = 1;
  v4 = sub_10006264();
  if ( !v4 )
    sub_100045B0(-2147467259);
  LODWORD(v11) = (*(int (__thiscall **)(int))(*(_DWORD *)v4 + 12))(v4) + 16;
  if ( !v10 )
    VariantTimeToSystemTime(pvtime, &SystemTime);
  if ( !v10 )
    VariantTimeToSystemTime(pvtime, &v14);
  if ( v10 || !VariantTimeToSystemTime(pvtime, &v15) )
    v5 = -1;
  else
    v5 = v15.wYear;
  sub_10003DE0((int)&v11, "%d-%02d-%02d", v5);
  v6 = v11;
  SystemTime.wMonth = 13632;
  SystemTime.wDayOfWeek = 6265;
  strcpy((char *)&SystemTime.wDay, "<M");
  SystemTime.wYear = 24175;
  sub_100037F0(v16, (void *)v11);
  v7 = Source;
  if ( v19 < 0x10 )
    v7 = (const char *)&Source;
  strncpy_s(Destination, SizeInBytes, v7, MaxCount);
  if ( v19 >= 0x10 )
    operator delete(Source);
  v19 = 15;
  MaxCount = 0;
  LOBYTE(Source) = 0;
  if ( _InterlockedDecrement((volatile signed __int32 *)(v6 - 16 + 12)) <= 0 )
    (*(void (__thiscall **)(_DWORD, int))(**(_DWORD **)(v6 - 16) + 4))(*(_DWORD *)(v6 - 16), v6 - 16);
  if ( v13[1] )
    sub_100058A3(0, v13[0]);
  return 1;
}
ps122 发表于 2022-5-27 11:08
本帖最后由 ps122 于 2022-5-27 11:48 编辑

楼上的大佬们好厉害,学习了
 楼主| dzpos 发表于 2022-5-27 15:40
苏紫方璇 发表于 2022-5-27 10:57
感觉是这样的

.版本 2

感谢大佬,大佬就是大佬。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 12:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表