1625-5 王子昂 总结《2017年9月17日》 【连续第350天总结】
A. XCTF(武汉站)-Reverse
B.
EasyHook
刚开始看这个名字还以为要注入DLL啥的呢(:з」∠)忐忑不安地打开发现结构挺简单:
int __cdecl main(int argc, const char **argv, const char **envp)
{
int result; // eax@2
HANDLE FileHandle; // eax@3
DWORD NumberOfBytesWritten; // [sp+4h] [bp-24h]@3
char Buffer; // [sp+8h] [bp-20h]@1
sub_401370(aPleaseInputFla);
scanf(a31s, &Buffer);
if ( strlen(&Buffer) == 19 ) // 输入长度为19
{
sub_401220(); // 将Re_writeFile函数的地址覆盖WriteFile
FileHandle = CreateFileA(FileName, 0x40000000u, 0, 0, 2u, 0x80u, 0);// 创建文件
WriteFile(FileHandle, &Buffer, 0x13u, &NumberOfBytesWritten, 0);// 执行WriteFile函数,实际上是Re_writeFile
sub_401240(&Buffer, &NumberOfBytesWritten); // 比较函数(伪)