DAY80_IDA 16PLUGIN PONCE
来源:互联网 发布:mac类似powerdesigner 编辑:程序博客网 时间:2024/06/14 20:32
Ponce(IDA插件)
功能概括:
污点分析&符号执行
功能详解:
1.符号执行+具体值引导->concolic模式
输入,跟踪程序执行路径,到约束点生成相应的输入约束表达式,验证约束表达式能否满足,对约束表达式进行约束求解。
程序:
ponce_guess.cpp(符号匹配)
#include <stdio.h>
#include <stdlib.h>
char *serial= "guess";
int check(char *ptr){
int i = 0;
while (i< 5){
if (ptr[i]!= serial[i]) return 1; //chars_match fail
i++;
}
return 0;
}
int main(int argc, char **argv){
if (argc!= 2) return -1;
if (check(argv[1]) == 0)
printf("win\n");
else
printf("fail\n");
system("pause");
return 0;
}
结果:Solution found
Ponce_hash.cpp(伪hash比较)
#include <stdio.h>
#include <stdlib.h>
char *serial= "guess";
int getHash(char *ptr){ //get'hash'
int i;
int hash = 0x0000;
for (i= 0; ptr[i]; i++)
hash += ptr[i] ^ serial[i% 5];
return hash;
}
int main(int argc, char **argv){
if (argc!= 2)return -1;
int rs= getHash(argv[1]);
if (rs== 0x0222) //hash_match
printf("Win\n");
else
printf("fail\n");
system("pause");
return 0;
}
结果:Solution found
以上是对输入单约束(chars_match\hash_match)的情况,执行Negate&inject进行约束求解。
对于程序结构复杂,约束判断语句不容易寻找的情况?
对于多约束的情况?
对于输入执行符号化内存,会自动标记符号化的位置&综合多约束条件进行约束求解。
Ponce_multiConstraint.cpp(程序结构复杂&多约束)
#include <stdio.h>
#include <stdlib.h>
char *serial= "guess";
int check(char *ptr){
int hash = 0x0000;
for (int i= 0; ptr[i]; i++)
hash += ptr[i] ^ serial[i% 5];
if (hash> 0x0555) return 1; //hash_match
if (hash< 0x0111) return 1; //hash_match
return 0;
}
int main(int argc, char **argv){
if (argc!= 2) return -1;
if (check(argv[1]) == 0)
printf("win\n");
else
printf("fail\n");
system("pause");
return 0;
}
2.污点分析
污点渗入面分析。
程序演示:cmake.exe 参数:cmakelists.txt
cmake--一种编译配置工具。应用举例:根据不同的平台不同的编译器&通过编写cmakelists.txt文件,控制生成makefile,从而控制编译过程。
实现:程序通过在fread函数读取文件之后的一定范围内污点追踪,可以发现文件内容所影响到的函数(因:ponce会重命名被污点影响的函数)。
3不足:
Ponce操作上比较复杂;
Ponce目前只适用于windows平台,6.8版本与6.9x版本(测试发现6.9也可以);
符号执行功能:对于个别程序(eg:ponce_guess.cpp(符号匹配)->单个字符遍历比较或着运算的类型)用内存符号化的效率很低,只能得到首字符的解不能得到整体的解,(解决方案:用内存符号化找出符号化运算的位置,执行Negate&inject进行约束求解)。
- DAY80_IDA 16PLUGIN PONCE
- DAY80_IDA PLUGIN VMATTACK INSTALL
- DAY68_share ida pro's plugin-ponce
- The Ponce Group……Computer Vision and Robotics
- PlugIn
- plugIn
- Plugin
- nagios-plugin-1.4.16 编译备忘
- 【转】plugin
- eclipse plugin
- vim plugin
- Lyrics Plugin
- nutch plugin
- JFreeChart Plugin
- jquery plugin
- Plugin 笔记
- qt plugin
- qt plugin
- IOS开发用户界面UI编程视频教程
- C++11重要特性:lambda+function
- dual camera同时preview
- websocket 链接服务器报 302 错误解决方法
- CAS SSO bug fix
- DAY80_IDA 16PLUGIN PONCE
- Android 与 HTML + Js的交互
- 【Android】Android开发之XML文件Element XXXX must be declared的解决方法
- makefile总结
- cocoapad的配置
- 在线学习算法FTRL
- Linux分配swap空间
- onclick中字符串转义,函数调用的问题
- iar 结构字节对齐