-
-
[原创]看雪CTF2017第十五题简单解析
-
发表于:
2017-7-1 08:05
6394
-
作 者:loudy
使用工具:IDA6.8(反汇编分析) python(编程解码) OD(动态调试)
步 骤:
一、定位关键代码
该程序有加壳,但对主要流程影响不大,难点在于分析luajit代码,定位主要流程。只要流程清晰了,该题没有难度,只是简单异或运算。
(1)脱壳
其实也不算真正脱壳,其实就是等程序运行起来后,dump内存镜像。
这样在IDA中可以分析解密后的函数和解密后的字符串,如下图
(2)定位关键点
从IDA的字符串窗口可以看到该程序使用了LuaJIT 2.1.0-beta3 且Lua版本号为Lua 5.1。
通过“main”(调用Lua的main函数)关键字在IDA中定位到如下位置。
其上面从0040103D开始的一大段mov指令实际是在栈中生成了一个luajit的bytecode。
二、解密
通过OD动态加载后,通过识别luajit文件头{0x1b,0x4c,0x4a}提取出该文件。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)