首页
社区
课程
招聘
[求助]IDA反汇编的C格式代码看不懂 求讲解
发表于: 2015-4-14 11:17 6415

[求助]IDA反汇编的C格式代码看不懂 求讲解

2015-4-14 11:17
6415
IDA反汇编的C格式代码看不懂 求讲解

char __stdcall LoginPro(const char *a1, int a2, int a3, int a4, int a5)
{
  HANDLE v5; // esi@1
  char result; // al@2
  char Parameter; // [sp+8h] [bp-24h]@1
  int v8; // [sp+28h] [bp-4h]@1

  memset(&Parameter, 0, 0x24u);
  strcpy(&Parameter, a1);
  v8 = a2;
  v5 = CreateThread(NULL, 0, StartAddress, &Parameter, 0, NULL);
  if ( WaitForSingleObject(v5, 0xBB8u) == 258 )
  {
    TerminateThread(v5, 0);
    CloseHandle(v5);
    result = 0;
  }
  else
  {
    CloseHandle(v5);
    Sleep(0x1F4u);
    result = 1;
  }
  return result;
}

[峰会]看雪.第八届安全开发者峰会10月23日上海龙之梦大酒店举办!

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 16468
活跃值: (2493)
能力值: ( LV9,RANK:147 )
在线值:
发帖
回帖
粉丝
2
这有啥看不懂的.创建线程啊.
2015-4-14 11:28
0
雪    币: 7
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我是想知道他开头声明的几个参数怎么弄 这个是个dll
2015-4-14 12:11
0
雪    币: 277
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
...这你看不懂。。。只有两种解决方案,要么补习c去,要么联系ida公司让她们给你更牛掰的工具 还原代码吧。不过还原了也和这个差不多,不知道你能。。。。
2015-4-14 12:42
1
雪    币: 7387
活跃值: (3406)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
F5后是有些很难看懂,但你这个已经很好了!
2015-4-14 12:57
0
雪    币: 7
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
。。。。。。。。。我还是默默的补C吧 C语言确实超烂
2015-4-14 13:04
0
雪    币: 375
活跃值: (186)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
ida F5后的代码 要配合 od动态调试的结果 一块看 这样有助于了解各参数的含义。
2015-4-14 13:50
0
雪    币: 16
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这样应该能看懂了吧:
bool __stdcall LoginPro(const char *a1, int a2, int a3, int a4, int a5)
{
  HANDLE hThread; 
  char result; 
  char Parameter; 

  memset(&Parameter, 0, 36); 
  strcpy(&Parameter, a1); 
  hThread = CreateThread(NULL, 0, StartAddress, &Parameter, 0, NULL);
  if ( WaitForSingleObject(hThread, 3000 ) == WAIT_TIMEOUT )
  {
    TerminateThread(hThread, 0); 
    CloseHandle(hThread);  
    result = false;   
  }
  else
  {
    CloseHandle(hThread);  
    Sleep(500); 
    result = true;
  }
  return result;
} 
2015-4-15 16:44
0
雪    币: 69
活跃值: (30)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
struct param_struct
{
        char str[32]; // [sp+8h]
        int val;      // [sp+28h]
};

int __stdcall LoginPro(const char *a1, int a2, int a3, int a4, int a5)
{
        HANDLE handle;
        param_struct args;

        memset(&args, 0, sizeof(args));
        strcpy(args.str, a1);
        args.val = a2;
       
        handle = CreateThread(NULL, 0, func, &args, 0, NULL);

        if (WaitForSingleObject(handle, 3000) == WAIT_TIMEOUT)
        {
                TerminateThread(handle, 0);
                CloseHandle(handle);
               
                return 0;
        }
        else
        {
                CloseHandle(handle);
                Sleep(500);
               
                return 1;
        }
}

话说,A3A4A5没用?
2015-4-15 17:13
0
雪    币: 6908
活跃值: (9014)
能力值: ( LV17,RANK:797 )
在线值:
发帖
回帖
粉丝
10
这个是用什么插件做当的。
2015-4-15 20:38
0
游客
登录 | 注册 方可回帖
返回
//