标签:文件 内容 常用操作 跳转 命令行 win 版本 ref 应该
是读写属性
大致意思是:运行时需要输入命令行参数 --key <内容>
提示错误的key
先申请了一个内存空间
命令行参数的比较
为--key的时候 不跳转,然后取出第二个命令行参数。比较完不为 --key 后,要进行下一轮的比较,继续往下观察
对另一个字符串做了个操作 而这个字符串刚好是第二个命令行参数
对字符串(乱码)做了些操作并输出猜测是解密函数,有可能是输出正确或者错误的提示
观察对字符串做操作的函数
会对申请的空间做一些操作,可以下断点在calloc处,观察后续 对这个内存的操作
直接写参数,多个参数以空格间隔
比较命令行参数处设置断点
除去 --key 比较第二个参数的函数
解密字符串caloc处下断点,需要它的返回值EAX
循环结束后设置一个断点,观察内存变成什么样了
点击运行按键
两条警告后弹出一个选择调试信息文件(经尝试选择原文件本身就可以了)
比较key的地方
与明文字符串比较的地方
比较完之后对比 EAX的值 跟踪接下来的流程
解密字符串 F7 进入上边的 CALL 804853B
caloc 后内存窗口跟踪EAX的值,F9 到函数结束的地方
所以,应该传入的参数是hello15
比较完长度,比较完每一个字符后,返回1
跟踪接下来的解密 函数F9 到函数结束处的断点
解密出正确的提示
这个简单小程序复习了Linux的一些常用操作指令,如:
文件的信息 ls -l readelf -h Crackme
文件属性的修改 chmode 777 Crackme
可执行文件的运行: ./Crackme
Linux下IDA 的静态分析和动态分析方法
由于这个IDA6.4版本不能直接F5 查看C语言代码,可以在Windows下静态分析完,再到Linux 下进行测试,不过,还是希望进行直接看汇编代码。熟能生巧嘛!
标签:文件 内容 常用操作 跳转 命令行 win 版本 ref 应该
原文地址:https://www.cnblogs.com/by-clark/p/9129633.html