开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 692|回复: 4
收起左侧

[求助] 求助大佬帮忙翻译一段C伪代码为易代码

[复制链接]
结帖率:82% (9/11)
发表于 2024-1-16 16:44:10 | 显示全部楼层 |阅读模式   安徽省铜陵市
这是一段IDA分析出来的伪代码 想请大佬帮忙翻译成易代码
[C++] 纯文本查看 复制代码
int __fastcall Decode(int a1, unsigned int a2, int a3)
{
  _BYTE *v5; // $v0
  int i; // $t8
  _BYTE *v8; // $a0
  int v9; // $s0
  unsigned int v10; // $t8
  unsigned int v11; // $a3
  int v12; // $v1
  int v13; // $a1
  unsigned int v14; // $a0
  char *v15; // $a2
  unsigned int v16; // $a1
  bool v17; // dc
  char v18; // $a0
  __int16 v19; // $a2
  __int16 v20; // $t8
  __int16 v21; // $t2
  int v22; // $a2
  __int16 v23; // $t2
  int v24; // $t8
  char v25; // $a0

  v5 = malloc(0x1011u);
  dword_487260 = (int)v5;
  if ( v5 )
  {
    for ( i = 0; i != 4078; ++i )
    {
      v8 = &v5;
      *v8 = 32;
    }
    v9 = 0;
    v10 = 0;
    v11 = 0;
    v12 = 4078;
    while ( 1 )
    {
      v11 >>= 1;
      v13 = v11 & 1;
      if ( (v11 & 0x100) == 0 )
      {
        v11 = *(unsigned __int8 *)(a1 + v10) | 0xFF00;
        if ( a2 < v10 + 1 )
          goto LABEL_17;
        ++v10;
        v13 = v11 & 1;
      }
      v14 = v10 + 1;
      v15 = (char *)(a1 + v10);
      if ( v13 )
      {
        v16 = v10 + 1;
        v17 = a2 < v14;
        v18 = *v15;
        if ( v17 )
          goto LABEL_17;
        *(_BYTE *)(a3 + v9) = v18;
        v5[v12] = v18;
        v12 = (v12 + 1) & 0xFFF;
        ++v9;
      }
      else
      {
        v19 = (unsigned __int8)*v15;
        if ( a2 < v14 || (v16 = v10 + 2, v20 = *(unsigned __int8 *)(a1 + v14), a2 < v16) )
        {
LABEL_17:
          free(v5);
          return v9;
        }
        v21 = (16 * (v20 & 0xFFF0)) | v19;
        v22 = (v20 & 0xF) + 2;
        v23 = v21 - v9;
        v24 = v9;
        do
        {
          v25 = v5[(v23 + (_WORD)v24++) & 0xFFF];
          *(_BYTE *)(a3 + v24 - 1) = v25;
          v5[v12] = v25;
          v12 = (v12 + 1) & 0xFFF;
        }
        while ( v22 >= v24 - v9 );
        v9 = v24;
      }
      v10 = v16;
    }
  }
  return 0;
}


00.png 11.png


结帖率:50% (1/2)

签到天数: 6 天

发表于 2024-1-16 16:50:57 | 显示全部楼层   福建省福州市
直接定制区去,直接伸手不合适
回复 支持 反对

使用道具 举报

结帖率:84% (32/38)
发表于 2024-1-16 17:15:05 | 显示全部楼层   江西省宜春市
我觉得你可以用那些chatgpt啥的翻译成JavaScript代码或者其它的   那种看着简单的你就会改了
回复 支持 反对

使用道具 举报

结帖率:50% (7/14)

签到天数: 10 天

发表于 2024-1-16 18:49:00 | 显示全部楼层   河南省商丘市
直接定制区吧.这个挺麻烦的
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
发表于 2024-1-16 20:13:29 | 显示全部楼层   浙江省温州市
你可以用置入代码的方式,把上面代码添加到易语言中,比如:
  
子程序名返回值类型公开备 注
Decode整数型 
参数名类 型参考可空数组备 注
a1整数型
a2整数型
a3整数型
置入代码 ({ 184, 48, 16, 0, 0, 137, 229, 87, 86, 83, 185, 238, 15, 0, 0, 41, 196, 141, 149, 227, 239, 255, 255, 176, 32, 199, 133, 208, 239, 255, 255, 238, 15, 0, 0, 199, 133, 204, 239, 255, 255, 0, 0, 0, 0, 137, 215, 49, 210, 243, 170, 49, 192, 209, 173, 204, 239, 255, 255, 15, 186, 165, 204, 239, 255, 255, 8, 115, 13, 139, 181, 204, 239, 255, 255, 137, 209, 131, 230, 1, 235, 35, 139, 125, 8, 141, 74, 1, 15, 182, 28, 58, 137, 218, 128, 207, 255, 137, 157, 204, 239, 255, 255, 57, 77, 12, 15, 130, 209, 0, 0, 0, 137, 214, 131, 230, 1, 139, 125, 8, 141, 89, 1, 138, 20, 57, 133, 246, 116, 49, 57, 93, 12, 15, 130, 182, 0, 0, 0, 139, 125, 16, 64, 136, 84, 56, 255, 139, 189, 208, 239, 255, 255, 136, 148, 61, 227, 239, 255, 255, 141, 87, 1, 129, 226, 255, 15, 0, 0, 137, 149, 208, 239, 255, 255, 137, 218, 235, 130, 15, 182, 250, 57, 93, 12, 15, 130, 130, 0, 0, 0, 141, 81, 2, 139, 77, 8, 138, 12, 11, 57, 85, 12, 114, 116, 137, 203, 102, 129, 225, 240, 0, 193, 225, 4, 131, 227, 15, 9, 207, 131, 195, 2, 49, 201, 137, 157, 200, 239, 255, 255, 102, 137, 189, 198, 239, 255, 255, 102, 139, 181, 198, 239, 255, 255, 139, 125, 16, 1, 206, 129, 230, 255, 15, 0, 0, 138, 156, 53, 227, 239, 255, 255, 141, 52, 1, 65, 136, 28, 62, 139, 181, 208, 239, 255, 255, 136, 156, 53, 227, 239, 255, 255, 141, 118, 1, 129, 230, 255, 15, 0, 0, 137, 181, 208, 239, 255, 255, 57, 141, 200, 239, 255, 255, 125, 188, 139, 189, 200, 239, 255, 255, 141, 68, 7, 1, 233, 244, 254, 255, 255, 129, 196, 48, 16, 0, 0, 91, 94, 95, 93, 194, 12, 0 })
' mov eax, 4144
' mov ebp, esp
' push edi
' push esi
' push ebx
' mov ecx, 4078
' sub esp, eax
' lea edx, [ebp-4125]
' mov al, 32
' mov DWORD PTR [ebp-4144], 4078
' mov DWORD PTR [ebp-4148], 0
' mov edi, edx
' xor edx, edx
' rep stosb
' xor eax, eax
' L2:
' shr DWORD PTR [ebp-4148], 1
' bt DWORD PTR [ebp-4148], 8
' jnc L3
' mov esi, DWORD PTR [ebp-4148]
' mov ecx, edx
' and esi, 1
' jmp L4
' L3:
' mov edi, DWORD PTR [ebp+8]
' lea ecx, [edx+1]
' movzx ebx, BYTE PTR [edx+edi]
' mov edx, ebx
' or bh, -1
' mov DWORD PTR [ebp-4148], ebx
' cmp DWORD PTR [ebp+12], ecx
' jb L1
' mov esi, edx
' and esi, 1
' L4:
' mov edi, DWORD PTR [ebp+8]
' lea ebx, [ecx+1]
' mov dl, BYTE PTR [ecx+edi]
' test esi, esi
' je L6
' cmp DWORD PTR [ebp+12], ebx
' jb L1
' mov edi, DWORD PTR [ebp+16]
' inc eax
' mov BYTE PTR [eax-1+edi], dl
' mov edi, DWORD PTR [ebp-4144]
' mov BYTE PTR [ebp-4125+edi], dl
' lea edx, [edi+1]
' and edx, 4095
' mov DWORD PTR [ebp-4144], edx
' mov edx, ebx
' jmp L2
' L6:
' movzx edi, dl
' cmp DWORD PTR [ebp+12], ebx
' jb L1
' lea edx, [ecx+2]
' mov ecx, DWORD PTR [ebp+8]
' mov cl, BYTE PTR [ebx+ecx]
' cmp DWORD PTR [ebp+12], edx
' jb L1
' L5:
' mov ebx, ecx
' and cx, 240
' sal ecx, 4
' and ebx, 15
' or edi, ecx
' add ebx, 2
' xor ecx, ecx
' mov DWORD PTR [ebp-4152], ebx
' mov WORD PTR [ebp-4154], di
' L9:
' mov si, WORD PTR [ebp-4154]
' mov edi, DWORD PTR [ebp+16]
' add esi, ecx
' and esi, 4095
' mov bl, BYTE PTR [ebp-4125+esi]
' lea esi, [ecx+eax]
' inc ecx
' mov BYTE PTR [esi+edi], bl
' mov esi, DWORD PTR [ebp-4144]
' mov BYTE PTR [ebp-4125+esi], bl
' lea esi, [esi+1]
' and esi, 4095
' mov DWORD PTR [ebp-4144], esi
' cmp DWORD PTR [ebp-4152], ecx
' jge L9
' mov edi, DWORD PTR [ebp-4152]
' lea eax, [edi+1+eax]
' jmp L2
' L1:
' add esp, 4144
' pop ebx
' pop esi
' pop edi
' pop ebp
' ret 12
返回 (0)
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
变量名类 型静态数组备 注
a1字节集 
a3字节集 
a1 = 到字节集 (“9527”)
a3 = 到字节集 (“4513”)
调试输出 (a1, a3)
Decode (取变量数据地址 (a1), 取字节集长度 (a1), 取变量数据地址 (a3))
调试输出 (a1, a3)


i支持库列表   支持库注释   
spec特殊功能支持库
这样做的好处是简单省力,你不需要分析理解代码,只要它是能编译运行的,一般都能直接添加进来。



回复 支持 反对

使用道具 举报

  高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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