Updated Home (markdown)
parent
97a933a654
commit
a4609a37ab
18
Home.md
18
Home.md
@ -28,3 +28,21 @@ case 3 :发送文件
|
|||||||

|

|
||||||
|
|
||||||
多练习实践就孰能生巧了。
|
多练习实践就孰能生巧了。
|
||||||
|
|
||||||
|
|
||||||
|
# sqlite3偏移定位
|
||||||
|
sqlite3的定位相当简单,一分钟搞定。
|
||||||
|
因为sqlite3为了保持兼容性,api是向下兼容的,在sqlite3.c文件里有个sqlite3_api_routines,把api固定了。
|
||||||
|

|
||||||
|
所以随便定位一个函数,根据他的引用就可以定位到sqlite3_api_routines,然后直接按偏移计算其他函数即可。
|
||||||
|
sqlite3_close函数特征最明显,直接搜索字符串 "unable to close due to unfinalized statements or unfinished backups"即可定位。
|
||||||
|

|
||||||
|
定位了该函数以后,其他函数根据sqlite3_api_routines的偏移也就全部定位到了。
|
||||||
|
|
||||||
|
微信里的引用如下:
|
||||||
|

|
||||||
|
|
||||||
|
和sqlite3.c里api保持一致。
|
||||||
|
|
||||||
|
微信使用的是SQLCipher加密sqlite3,推而广之也开源采用此方法定位key相关的函数。
|
||||||
|
再推而广之,开源项目的逆向基本上都可以采用这种套路。
|
Loading…
Reference in New Issue
Block a user