求高手帮忙汇编转C++

saramind 2025-02-20 08:16:53

                             **************************************************************
                             *                          FUNCTION                          *
                             **************************************************************
                             undefined4 __stdcall SetOneVIP(char *param_1,undefined4 param_2,undefined1 param_3)
             undefined4        EAX:4          <RETURN>
             char *            Stack[0x4]:4   param_1                                 XREF[1]:     00406983(R)  
             undefined4        Stack[0x8]:4   param_2                                 XREF[1]:     00406944(*)  
             undefined1        Stack[0xc]:1   param_3                                 XREF[1]:     00406957(R)  
             undefined1        Stack[-0x233   local_233                               XREF[1]:     004069df(W)  
             undefined1        Stack[-0x234   local_234                               XREF[1]:     004069d3(W)  
             undefined1        Stack[-0x258   local_258                               XREF[7]:     00406969(*), 
                                                                                                   0040698a(*), 
                                                                                                   004069a6(*), 
                                                                                                   004069b5(*), 
                                                                                                   004069ed(*), 
                                                                                                   00406a01(*), 
                                                                                                   00406a2c(*)  
             undefined4        Stack[-0x260   local_260                               XREF[3]:     00406974(RW), 
                                                                                                   004069fb(RW), 
                                                                                                   00406a32(RW)  
             undefined2        Stack[-0x26c   local_26c                               XREF[2]:     00406960(W), 
                                                                                                   0040697a(W)  
             undefined4        Stack[-0x27c   local_27c                               XREF[2]:     00406a12(R), 
                                                                                                   00406a3e(R)  
             undefined1        Stack[-0x280   local_280                               XREF[1]:     0040695a(W)  
             undefined1        Stack[-0x284   local_284                               XREF[2]:     00406948(*), 
                                                                                                   004069e7(*)  
                             0x692c  30  SetOneVIP
                             Ordinal_30                                      XREF[2]:     Entry Point(*), 0047c09c(*)  
                             SetOneVIP
        0040692c 55              PUSH       EBP
 

分隔线______________________________


undefined4 __stdcall SetOneVIP(char *param_1,undefined4 param_2,undefined1 param_3)

{
  char cVar1;
  int iVar2;
  undefined4 uVar3;
  uint uVar4;
  uint uVar5;
  char *pcVar6;
  char *pcVar7;
  undefined4 *in_FS_OFFSET;
  byte bVar8;
  byte local_284 [4];
  undefined1 local_280;
  undefined4 local_27c;
  undefined2 local_26c;
  int local_260;
  char local_258 [36];
  undefined1 local_234;
  undefined1 local_233;
  
                    /* 0x692c  30  SetOneVIP */
  bVar8 = 0;
  FUN_00433e6c(0x467e70);
  FUN_00433b00((undefined4 *)local_284,&param_2,4);
  local_280 = param_3;
  local_26c = 8;
  FUN_004016d4((int)local_258);
  local_260 = local_260 + 1;
  local_26c = 0x14;
  FUN_00433b70((undefined4 *)local_258,0,0x10);
  uVar4 = 0xffffffff;
  do {
    pcVar6 = param_1;
    if (uVar4 == 0) break;
    uVar4 = uVar4 - 1;
    pcVar6 = param_1 + (uint)bVar8 * -2 + 1;
    cVar1 = *param_1;
    param_1 = pcVar6;
  } while (cVar1 != '\0');
  uVar4 = ~uVar4;
  pcVar6 = pcVar6 + -uVar4;
  pcVar7 = local_258;
  for (uVar5 = uVar4 >> 2; uVar5 != 0; uVar5 = uVar5 - 1) {
    *(undefined4 *)pcVar7 = *(undefined4 *)pcVar6;
    pcVar6 = pcVar6 + ((uint)bVar8 * -2 + 1) * 4;
    pcVar7 = pcVar7 + ((uint)bVar8 * -2 + 1) * 4;
  }
  for (uVar4 = uVar4 & 3; uVar4 != 0; uVar4 = uVar4 - 1) {
    *pcVar7 = *pcVar6;
    pcVar6 = pcVar6 + (uint)bVar8 * -2 + 1;
    pcVar7 = pcVar7 + (uint)bVar8 * -2 + 1;
  }
  iVar2 = FUN_004017dc((int)local_258);
  if (iVar2 == 0) {
    uVar3 = 0x80;
    local_260 = local_260 + -1;
    FUN_00401740((int)local_258,2);
    *in_FS_OFFSET = local_27c;
  }
  else {
    local_234 = DAT_00473814;
    local_233 = DAT_00473815;
    uVar3 = FUN_00402e5c((uint)local_258,',',local_284,5);
    local_260 = local_260 + -1;
    FUN_00401740((int)local_258,2);
    *in_FS_OFFSET = local_27c;
  }
  return uVar3;
}

求大神帮忙,希望能知道函数调用方法和参数

 

 

 

...全文
99 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

这函数名暗示很多东西,可能是:
int __stdcall SetOneVIP(char *name, int id, char sex)
诸如此类的
但是它内部调用的4个func不搞明白作用,光搞这个函数没有意义

赵4老师 02-20
  • 打赏
  • 举报
回复

代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧