简单算法逆向

本文分析的是《C++反汇编与逆向分析技术》第四章例子Crackme.exe

 

工具 IDA

1.参数及局部变量定义

 

 2.开辟14字节数组;把输入的密码加密后存在数组中;

  

 

 

 

 

 

 

 

 

 

加密过程没看懂,好吧

在转换过程中有一个对2取模运算,因为对有符号数模2只有-1,0,1三种结果,编译器进行了优化,与0x80000001进行与运算,这个有符号数只会保留最高位和最低位

,若数字为奇数,最低位为1,符号位也会保留,同理符号位保留,所以如果结过是-1,and运算后的0x80000001需要转换成-1的补码

 

还原的C++源代码

 

posted @ 2020-10-08 20:09  KnowledgePorter  阅读(18)  评论(0)    收藏  举报