25.解密被加密的数据库文件
前言
一、 定位数据库SDK

分析 MachO

二、 定位密码函数
三、 寻找Hook目标函数
四、 移除密码
4.1 RemoveDataBasePassword 使用说明
4.2 Navicat 报错



五、 总结思考
Last updated





Last updated
@interface FMDatabase : NSObject {
/** Set encryption key.
@param key The key to be used.
@return `YES` if success, `NO` on error.
@see http://www.sqlite-encrypt.com/develop-guide.htm
@warning You need to have purchased the sqlite encryption extensions for this method to work.
*/
- (BOOL)setKey:(NSString*)key;
}@interface FMDatabase : NSObject
@end
%hook FMDatabase
- (void)setKey:(NSString*)key {
NSLog(@"🔓获取到了数据库密码 %@", key);
%orig;
}
%end2021-07-24 12:26:26.561085+0800 xx[16475:3222446] 🔓拦截到了数据库密码 xxxx