冥界3大法王 发表于 2023-12-1 21:20

公以为照着代码改,改哪为妙?

代码是我摘抄来的,照着改竟然局部注册成功了。

0043f700{
0043f703      int32_t var_8 = 0xffffffff;
0043f705      int32_t var_c = 0x71f363;
0043f70a      int32_t* fsbase;
0043f70a      int32_t eax = *(int32_t*)fsbase;
0043f710      int32_t var_10 = eax;
0043f717      uint32_t eax_1 = __security_cookie;
0043f71c      int32_t __saved_ebp;
0043f71c      int32_t eax_2 = (eax_1 ^ &__saved_ebp);
0043f724      int32_t var_ac = eax_2;
0043f728      *(int32_t*)fsbase = &var_10;
0043f734      if (*(int32_t*)((char*)arg1 + 0x28) == 0)
0043f730      {
0043f73c          int32_t* eax_3 = sub_716997(0x54);
0043f744          int32_t* var_90_1 = eax_3;
0043f74c          int32_t var_8_1 = 0;
0043f753          int32_t* eax_4 = sub_5436c0(eax_3);
0043f75a          int32_t var_8_2 = 0xffffffff;
0043f761          int32_t* edi_1 = *(int32_t*)((char*)arg1 + 0x28);
0043f766          if (eax_4 != edi_1)
0043f764          {
0043f76a            if (edi_1 != 0)
0043f768            {
0043f76e                  sub_5438e0(edi_1);
0043f773                  int32_t var_b0_1 = 0x54;
0043f776                  operator new(edi_1);
0043f776            }
0043f77e            *(int32_t*)((char*)arg1 + 0x28) = eax_4;
0043f77e          }
0043f792          int32_t var_1c_1 = 0;
0043f799          char var_2c = 0;
0043f7a5          int32_t var_8_3 = 1;
0043f7ad          int32_t var_b4_2 = sub_412a40(&var_2c, "no_pro", 6);
0043f7bf          int32_t var_8_4 = 0xffffffff;
0043f7c9          int32_t* ebx_1;
0043f7c9          ebx_1 = sub_456a80(sub_4566b0(), &var_2c) == 0;
0043f7e1          if (ebx_1 != 0)
0043f7df          {
0043f7e9            void* eax_7 = sub_43e310(arg1);
0043f7fb            void* var_74;
0043f7fb            sub_4e0fe0(&var_74, "pro_license.name");
0043f808            int32_t var_8_5 = 2;
0043f812            int16_t var_5c;
0043f812            sub_4e0fe0(&var_5c, "pro_license.email");
0043f81f            var_8_5 = 3;
0043f826            int16_t var_44;
0043f826            sub_4e0fe0(&var_44, "pro_license.regcode");
0043f82e            var_8_5 = 4;
0043f834            int16_t* var_c4;
0043f834            int32_t* var_90_2 = &var_c4;
0043f83a            int32_t var_b0_3 = 7;
0043f841            int32_t var_b4_6 = 0;
0043f852            var_c4 = 0;
0043f860            sub_4128c0(&var_c4, &var_44, nullptr, 0xffffffff);
0043f868            var_8_5 = 5;
0043f86e            int16_t* var_dc;
0043f86e            int32_t* var_94_1 = &var_dc;
0043f874            int32_t var_c8_1 = 7;
0043f87b            int32_t var_cc_1 = 0;
0043f88c            var_dc = 0;
0043f89a            sub_4128c0(&var_dc, &var_5c, nullptr, 0xffffffff);
0043f8a2            var_8_5 = 6;
0043f8a8            int32_t var_e0_1 = 7;
0043f8af            int32_t var_e4_1 = 0;
0043f8c6            int16_t* var_f4;
0043f8c0            var_f4 = 0;
0043f8ce            sub_4128c0(&var_f4, &var_74, nullptr, 0xffffffff);
0043f8d6            var_8_5 = 4;
0043f8da            int32_t eax_11 = sub_543a50(*(int32_t*)((char*)arg1 + 0x28));
0043f8e1            if (eax_11 == 0)
0043f8df            {
0043f8ef                  sub_412500(&var_2c, &data_750c98);
0043f8f7                  var_8_5 = 7;
0043f903                  sub_4e14e0(eax_7, "pro_license.name", &var_2c);
0043f90b                  var_8_5 = 4;
0043f90f                  sub_4124c0(&var_2c);
0043f91c                  sub_412500(&var_2c, &data_750c98);
0043f924                  var_8_5 = 8;
0043f930                  sub_4e14e0(eax_7, "pro_license.email", &var_2c);
0043f938                  var_8_5 = 4;
0043f93c                  sub_4124c0(&var_2c);
0043f94c                  void var_8c;
0043f94c                  sub_412500(&var_8c, &data_750c98);
0043f957                  var_8_5 = 9;
0043f963                  sub_4e14e0(eax_7, "pro_license.regcode", &var_8c);
0043f96e                  eax_11 = sub_4124c0(&var_8c);
0043f968            }
0043f979            int32_t var_30;
0043f979            if (var_30 >= 8)
0043f976            {
0043f981                  sub_413910(eax_11, (var_30 + 1), var_44, 2);
0043f97f            }
0043f98e            int32_t var_30_1 = 7;
0043f995            int32_t var_34_1 = 0;
0043f99c            var_44 = 0;
0043f9a3            int32_t var_48;
0043f9a3            if (var_48 >= 8)
0043f9a0            {
0043f9ab                  sub_413910(0, (var_48 + 1), var_5c, 2);
0043f9a9            }
0043f9b8            int32_t var_48_1 = 7;
0043f9bf            int32_t var_4c_1 = 0;
0043f9c6            var_5c = 0;
0043f9cd            int32_t var_60;
0043f9cd            if (var_60 >= 8)
0043f9ca            {
0043f9d5                  sub_413910(0, (var_60 + 1), var_74, 2);
0043f9d3            }
0043f9ca          }
0043f7df      }
0043f9dd      int32_t eax_12 = *(int32_t*)((char*)arg1 + 0x28);
0043f9e3      *(int32_t*)fsbase = var_10;
0043f9f3      @__security_check_cookie@4((eax_2 ^ &__saved_ebp));
0043f9fb      return eax_12;
0043f9fb}

冥界3大法王 发表于 2023-12-1 21:22

我试着把有if的对应的汇编跳转改了。。。竟然成功了一部分。

jr001 发表于 2023-12-1 22:38

学习了!

ciker_li 发表于 2023-12-1 22:56

没头没尾啊?

风子09 发表于 2023-12-1 22:58

怎么批量改?

begesta 发表于 2023-12-1 23:02

啥意思啊,楼主能说详细点吗,没看懂

Gijia 发表于 2023-12-1 23:43

学习了 汇编比较考验功力的

zishen 发表于 2023-12-2 14:13

有点没看懂,楼主能说详细点吗

kolt1911 发表于 2023-12-2 15:15

是把所有的判断条件改为反方向了吗,就是< 改为>=
页: [1]
查看完整版本: 公以为照着代码改,改哪为妙?