单步运行并分析上文所下断点的函数,我们可以发现,在ReadFile读取处,程序读取了源文件,程序中共有7个WriteFile,在数据窗口中跟随ReadFile的第二个参数即读入源文件数据的部分,继续单步执行,发现第1个WriteFile不会被执行,在执行到第2个WriteFile处时,程序写入随机字节: 0x200000,而数据窗口中跟随的数据段已经发生改变,在010editor中打开加密后的文件:示例视频.mp4.pbb,发现其数据与在OD中数据窗口中的数据一致,所以可以确定这段数据就是加密后的数据,而在ReadFile与WriteFile之间只有一个函数:call PycFileO.00E45190(将函数PycFileO.00E45190重命名为核心加密函数,下文用到的部分也以核心加密函数指代),所以可以确定这个函数即使我们所要找的加密函数。先不管加密函数的具体内容,继续执行其所处函数,当我们执行到第3个WriteFile处时,程序写入了随机n个字节(n=0~16),在第4个WriteFile处,发现程序把上文中数搏碧据窗口中跟随的密文写入了文件,在第5个WriteFile处,程序将其上面一个随机产雹银散生的0x20大小的内容进行了写入,第6个WriteFile处,程序将了0x2A8内容进行了简单填充,第7个WriteFile处,写入了固定大小 0x10C的内容,经分析与密钥有关。
经过分析,发现加密只与核心加密函数有关,所以我们的重点放到核心加密函数上来,其它的部分在这里不做讨论。为了节省时间,我用了IDA的F5功能查看整个核心加密函数的具体结构,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)