[ios] 보안 공 방 코드 가 혼 란 스 러 운 작은 도구

4698 단어 iOS
'빅토리아 읽 기' 라 는 글 을 봤 어 요.
http://blog.csdn.net/yiyaaixuexi/article/details/29201699
아주 좋 은 것 같 지만, 안에 func. list 파일 이 언급 되 어 있 습 니 다.
규칙:
함수 이름 목록 func. list 를 만 들 고 헷 갈 릴 함수 이름 을 기록 합 니 다. 예 를 들 어: - (void) sample; -(void)seg1:(NSString *)string seg2:(NSUInteger)num;sampleseg1seg 2
그래서 저 는 c 언어 로 다음 코드 를 썼 습 니 다. func. list 파일 을 만 드 는 데 사 용 됩 니 다.
코드 의 기능 은 프로젝트 를 옮 겨 다 니 며 안에 있 는. h 와. m 파일 을 찾 는 것 입 니 다.또한 안의 유형 명, 방법 명, 매개 변수 명 등 을 위의 규칙 에 따라 나열 한다.
주: 보통. m 와. h 가 짝 짓 기 때 문 입 니 다. 예 를 들 어 test. m 에 test. h 가 있 지만 가끔 config. h 만 있 고 대응 하 는. m 파일 이 없습니다.그래서 안에 m 파일 이 있 으 면 h 파일 을 처리 하지 않 고 유사 한 방법 명 을 반복 할 까 봐 걱정 하 는 작은 논리 가 있 습 니 다.
#include 
#include 
#include 
#include 
#include 
#include 
 

//    ,
//gcc file.c -o file
//    
//./file
//                ,                     。
//  
//1.           。
//2.              ,      2     。


#if 0//    
#define Printf_info(x,y) printf(x,y);
#else
#define Printf_info(x,y)
#endif
 

int Mydir(const char *filepath);
int checkFile(const char *filepath);

int findNum = 0;

int main(int argc, char *argv[])
{
	//         ios      。h 。m   ,      ,   ,         ,
	//   CSDN  “  ”            。
        Mydir("/myProject");//             。

        return 0;
}
void Print_fileName(const char * filename)
{
	int a = strlen(filename);
	for(int i=0;id_name,".")==0||strcmp(drt->d_name,"..")==0||strcmp(drt->d_name,".DS_Store")==0)
continue;
fullpath=strdup(filepath);
fullpath=strcat(fullpath,"/");
fullpath=strcat(fullpath,drt->d_name);
Printf_info("%s",fullpath);
if(stat(fullpath,&statbuf)<0)
continue;
if (S_ISREG(statbuf.st_mode))
{
filetype="reguler";
int a = strlen(drt->d_name);
char *pp = drt->d_name;
//printf("----  %c %c" , pp[a - 2], pp[a - 1]);
if(pp[a - 2] == '.' && pp[a - 1] == 'm')
{
Print_fileName(drt->d_name);
checkFile(fullpath);
}
#if 0
else if(pp[a - 2] == '.' && pp[a - 1] == 'h')
{
char *mPath = strdup(fullpath);
//printf("mpath: %s",mPath);
char *ppp = mPath;//drt->d_name;
int a = strlen(ppp);
ppp [a - 1] = 'm'; / m 파일 이 존재 하 는 지 확인 합 니 다.
//printf("mpath: %s",mPath);
if((access(mPath,F_OK))==0){
continue;
}
Print_fileName(drt->d_name);
checkFile(fullpath);
}
#endif
}
else if(S_ISDIR(statbuf.st_mode))
{
filetype="directory";
//fullpath=strcat(fullpath,"/");
//printf("%s,%s",fullpath,filetype);
tmp=strdup(fullpath);
Mydir(tmp);
}
else
{
filetype="invalid";
printf("%s,%s",fullpath,filetype);
}
//printf("%s,%s",fullpath,filetype);
bzero(fullpath,strlen(fullpath));
}
return 0;
}
int print_Method(char *text)
{
char *p = text;
char c;
int start = 0;
while((c = *p++) !=''){//Method
if(c == ':' || c == '{' || c == ';'){
start = 0;
break;
}
if(start == 1){
printf("%c", c);
}
if(c == ')')
start = 1;
}
printf("");
#if 0
start = 0;
while((c = *p++) !=''){//arge
if(c == ':'){
start = 0;
printf("");
}
if(start == 2 && c != '{'){
printf("%c", c);
}
if(c == ' ' && start == 1)
start = 2;
if(c == ')')
start = 1;
}
//printf("");
#endif
return 0;
}
int findMethod(char *text)
{
char *p = text;
char c;
while((c = *p++) !=''){
if(c == '-' && ((*p == ' ' && *(p + 1) == '(') || *p == '(' )){
if( text[0] == '-' )
{
//printf("%d %s", findNum++, text);
print_Method(text);
}
//else
//	printf("%d %s", findNum++, text);
}
if(c == '+' && ((*p == ' ' && *(p + 1) == '(') || *p == '(' )){
if( text[0] == '+' )
{
//printf("%d %s", findNum++, text);
print_Method(text);
}
//else
//	printf("%d %s", findNum++, text);
}
}
return 0;
}
int checkFile(const char *filepath)
{
//printf("====%s", filepath);
FILE * fp1; / 파일 스 트림 포인터 정의, 읽 기 파일 열기
char text [40961]; / 읽 는 문 자 를 저장 할 문자열 배열 을 정의 합 니 다.
fp1 = fopen (filepath, "r"); / / 읽 기 전용 으로 파일 a. txt 열기
while (fgets (text, 40960, fp1)! = NULL) / / fp1 이 가리 키 는 파일 의 내용 을 텍스트 로 한 줄 씩 읽 습 니 다.
{
/ / puts (text); / / 화면 에 출력
findMethod(text);
}
fclose (fp1); / / 파일 a. txt 를 닫 습 니 다. 열 려 있 으 면 닫 아야 합 니 다.
return 0;
}

코드 는 c 언어 로 이 루어 진 것 이다.

좋은 웹페이지 즐겨찾기