公以为照着代码改,改哪为妙?
代码是我摘抄来的,照着改竟然局部注册成功了。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}
我试着把有if的对应的汇编跳转改了。。。竟然成功了一部分。 学习了! 没头没尾啊? 怎么批量改? 啥意思啊,楼主能说详细点吗,没看懂 学习了 汇编比较考验功力的 有点没看懂,楼主能说详细点吗
是把所有的判断条件改为反方向了吗,就是< 改为>=
页:
[1]