V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
autoname
V2EX  ›  问与答

逆向 c++代码转 PHP ,大佬帮忙转下,谢谢

  •  
  •   autoname · 2022-01-28 00:47:52 +08:00 · 1279 次点击
    这是一个创建于 1034 天前的主题,其中的信息可能已经有所发展或是发生改变。
    int __thiscall sub_42118A(_DWORD *this, signed int a2)
    {
    int v2; // eax
    int v3; // ecx 申明变量?

    v2 = a2;
    if ( a2 >= 100 )
    {
    v3 = this[3];
    v2 = a2 - 100;
    }
    else
    {
    v3 = this[2];
    }
    return (*(int (__stdcall **)(int))(*(_DWORD *)v3 + 12))(v2);
    }

    最后一句 返回 啥,后面那个 v2 php 要怎么返回
    ysc3839
        1
    ysc3839  
       2022-01-28 10:05:02 +08:00
    最后那个应该是虚函数调用,你得知道调用的是啥才行
    autoname
        2
    autoname  
    OP
       2022-01-28 10:57:44 +08:00
    @ysc3839 哈哈 又是你呀 大佬,上个帖也你回复的,(v2)是虚拟函数吗。不是上边的变量 return 回去吗
    ysc3839
        3
    ysc3839  
       2022-01-28 11:14:20 +08:00
    @autoname v2 是函数调用的参数
    zszhere
        4
    zszhere  
       2022-01-28 14:30:03 +08:00 via iPhone
    1 最后一句返回函数调用的值 这个函数地址跟 v3 有关
    2 v2 是函数参数 来自 a2 v2=a2-100 if a2>=100 else a2
    autoname
        5
    autoname  
    OP
       2022-01-28 14:31:40 +08:00
    @ysc3839 奧 謝謝,那他 是返回啥,返回哪些变量 可以明示下吗
    autoname
        6
    autoname  
    OP
       2022-01-28 15:09:43 +08:00
    @zszhere 谢谢,请问您。他到底返回的啥,

    return (v3 + 12)+(v2);

    最后这个 v2 是要怎么运算后 返回呢。新手勿怪
    autoname
        7
    autoname  
    OP
       2022-01-28 15:11:21 +08:00
    @zszhere 如您所说,

    最后一句返回函数调用的值 这个函数地址跟 v3 有关

    假设 v3=10000 ;

    那要怎么返回
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1325 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:53 · PVG 01:53 · LAX 09:53 · JFK 12:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.