能力值:
( LV1,RANK:0 )
2 楼
我去,还有第三关
能力值:
( LV2,RANK:10 )
3 楼
这里还有很多,感觉写不下,比如jumptable识别的时候是有用ir的方式的,有的是pattern match的方式的;vtable和pointer array的识别也是这样;是全量分析和单函数分析,都是要有考量的。 写完了这个东西才能发现ida到底是多高的一座山
能力值:
( LV11,RANK:185 )
4 楼
1
能力值:
( LV2,RANK:10 )
5 楼
666
能力值:
( LV2,RANK:10 )
6 楼
6
能力值:
( LV11,RANK:185 )
7 楼
仔细看了你写的内容,首先这个控制流的构建,或者是递归向下,我感觉你没有阐述清楚,或者说我没看懂 根据我的一些分析,ida,是以函数为单个控制流分析的单位,所以,所有的控制流分析,都是建立在,首先分析出汇编是一个函数的基础上,这个可以通过栈指令之类的分析.当分析完一个汇编函数等等起始和结束以后,在通过这个汇编函数的指令,来构建控制流,这种情况下,通过各种跳转指令的分割,很容就可以构建出控制流了,置于剩下的swith分析,if分析,代码优化这些都是在这个之上了,目前大规模的使用中间码进行指令归约,然后在进行二次的数据分析,中间码本来就是一种偏向于高级语言的表达形式
能力值:
( LV2,RANK:10 )
8 楼
6
能力值:
( LV2,RANK:10 )
9 楼
Thehepta
仔细看了你写的内容,首先这个控制流的构建,或者是递归向下,我感觉你没有阐述清楚,或者说我没看懂
根据我的一些分析,ida,是以函数为单个控制流分析的单位,所以,所有的控制流分析,都是建立在,首先分析 ...
第一个函数的确认问题:应该是我没有描述清楚,我写的elf的入口,有的时候就是函数,但是又不全是,比如c++的异常部分,它在elf里面的表现就是一个入口,要是强制说它是一个函数有的时候也没有错,一个异常处理块编译器优化的时候是会做share的。
第二个问题函数边界的问题:从elf的角度来说,你可以规约出一个function head,但是没有办法提前确定一个function的end,比如我举的bl _exit。
第三个问题:elf function的控制流跟jvm或者dalvik的fucntion完全不一样,他们有边界,知道end在哪里。elf的完全不知道;
比如一个函数 fun_0x1111, 它的basic block可能是连续的,也可能是跳跃的,因为basic block在编译器优化的过程中也是可以share的。
所以就elf的控制流就是一堆pass堆积着递归的过程。
能力值:
( LV2,RANK:10 )
10 楼
Thehepta
仔细看了你写的内容,首先这个控制流的构建,或者是递归向下,我感觉你没有阐述清楚,或者说我没看懂
根据我的一些分析,ida,是以函数为单个控制流分析的单位,所以,所有的控制流分析,都是建立在,首先分析 ...
感谢你的回复,我觉得这个是发了这么多东西,第一次遇到能讨论的人。
能力值:
( LV11,RANK:185 )
11 楼
neocanable
Thehepta
仔细看了你写的内容,首先这个控制流的构建,或者是递归向下,我感觉你没有阐述清楚,或者说我没看懂
根据我的一些分析,ida,是以函数为单个控 ...
我觉得你这个说法不是完全对的,elf function 的函数边界是可以分析出来的,而且只要不是用什么内联汇编,汇编函数,裸函数这些,一般都能分析出来,比如c代码编译的函数,是符合一定的的编译规则的,这是现代编译工具中的做法,你可以理解为反编译可以取巧的办法,你的想法是纯汇编来还原的思路,像ida这种工具,就像我说的,他是以函数为单位进行反编译,所以如果一个汇编函数没法分析出来,反编译也会失败,汇编函数如果分析失败,反编译也会失败
能力值:
( LV11,RANK:185 )
12 楼
neocanable
Thehepta
仔细看了你写的内容,首先这个控制流的构建,或者是递归向下,我感觉你没有阐述清楚,或者说我没看懂
根据我的一些分析,ida,是以函数为单个控 ...
做这个的比较少,因为ida 或者说某些工具做的很好,你只会一点完全撼动不了他的地位,而且国内公司没有相关工作岗位,一般后续都变成搞逆向了
能力值:
( LV2,RANK:10 )
13 楼
我觉得这个是一个误区,反汇编确实没有函数边界,IDA本身它也不知道function end,它也是递归向下的一点点的发现的,在整体的递归向下后有linear scan等等pass来补漏,看着像能发现一个函数而已。
能力值:
( LV2,RANK:10 )
14 楼
Thehepta
做这个的比较少,因为ida 或者说某些工具做的很好,你只会一点完全撼动不了他的地位,而且国内公司没有相关工作岗位,一般后续都变成搞逆向了
IDA/binary ninja这些工具值钱的是积累,国内确实没有人做这方面的产品,不赚钱,白忙活。而且还有破解的用。
能力值:
( LV5,RANK:70 )
15 楼
097K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6*7K9s2g2*7K9s2g2Q4x3X3c8f1L8%4m8Q4x3V1k6^5k6r3g2U0i4K6t1$3L8X3u0K6M7q4)9K6b7W2!0q4y4g2!0n7x3g2)9^5y4g2!0q4y4#2)9^5y4q4!0n7y4W2!0q4y4W2)9&6b7#2)9^5z5g2!0q4y4q4!0n7b7g2!0n7b7g2!0q4z5q4!0n7y4#2)9&6c8W2!0q4y4W2)9^5z5q4)9&6x3g2!0q4y4q4!0n7z5q4)9^5x3q4!0q4y4W2!0m8x3q4!0n7y4#2!0q4y4g2)9&6b7#2!0m8z5q4!0q4y4g2)9^5x3g2)9&6b7g2!0q4y4g2)9&6x3q4)9^5b7#2!0q4y4W2!0m8x3q4!0n7y4#2!0q4y4#2)9&6b7g2)9^5y4q4!0q4y4q4!0n7b7g2)9^5b7W2!0q4y4W2)9^5x3#2)9^5y4g2)9J5y4X3&6T1M7%4m8Q4x3@1t1`.
能力值:
( LV2,RANK:10 )
16 楼
zhuzhu_biu
965K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6*7K9s2g2*7K9s2g2Q4x3X3c8f1L8%4m8Q4x3V1k6^5k6r3g2U0 居然有人跟我一样在做同样的事情 [em_0106]
我仔细看了xdec这个repo,我认为解码的部分还有很长的路要走,加油
能力值:
( LV2,RANK:10 )
17 楼
tql
能力值:
( LV5,RANK:70 )
18 楼
neocanable
我仔细看了xdec这个repo,我认为解码的部分还有很长的路要走,加油
ca0K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6*7K9s2g2*7K9s2g2Q4x3X3c8f1L8%4m8Q4x3V1k6^5k6r3g2U0i4K6u0r3j5X3I4G2j5W2)9J5c8X3#2S2M7%4c8W2M7W2)9J5c8Y4y4H3k6h3y4K6i4K6u0r3j5i4u0E0y4U0c8Q4x3X3g2^5M7%4m8W2j5#2!0q4z5q4!0m8y4#2!0m8x3#2!0q4y4#2!0m8x3q4)9^5x3g2!0q4z5g2)9^5x3#2!0m8z5q4!0q4y4g2)9^5z5q4)9^5y4W2!0q4y4g2!0n7y4#2!0n7x3W2!0q4y4#2!0n7b7W2)9^5c8W2!0q4y4g2)9&6c8W2!0n7b7g2!0q4y4W2)9&6b7#2!0m8b7#2!0q4z5q4!0n7y4W2)9^5b7W2!0q4y4q4!0n7b7g2)9^5c8g2!0q4y4g2!0m8c8g2)9^5b7#2!0q4y4g2)9&6y4W2)9^5y4q4!0q4y4q4!0n7b7g2)9^5y4R3`.`.