攻防世界逆向高手题之梅津美治郎_攻防世界梅津美治郎-CSDN博客
很喜欢这个博主,我跟着他真的学了很多
32位
运行程序
里面肯定有 scanf 和cmp这种
进入程序,看见这个
这么多,我觉得基本上感觉就是
就是这个数据了
只不过加密了一下(因为string里面没有,写多了就知道了)
第一段密钥r0b0RUlez!
直接看见了
来到了debugbreak
还行,并没有检查反动调,只是debugbreak
如果大家写多了
其实知道这就是个异常
SEH
seh里面不是带其他的加密函数,或许带有tls,通过tls来完成类似于hook加密
直接return了
又发现了还有一段函数
往上看一下
看见SEH
刚好也看见了tls,(顺带提一嘴,像这种main函数之前有好多函数的,一般都有tls的)
tls就是在线程开始,或者在main函数开始,结束都会运行一次的函数
但是在这里,我其实没找到第二段加密
但是!
引用了第二段sanf,并且没有smc
找到scanf
两个引用
找到密文了
自己去解吧,哈哈,这么简单
异或2就是
我们现在来分析,这是怎么跳转到这里的?
这段代码看起来是使用C语言编写的,并且涉及到Windows API调用。根据代码内容,我们可以逐步分析其功能:
v3 = lpProcName;
- 这行代码将lpProcName
变量的值赋给v3
,lpProcName
可能是指向一个函数名称的指针。
ModuleHandleA = GetModuleHandleA(lpModuleName);
- 这行代码调用GetModuleHandleA
函数获取模块句柄。lpModuleName
是指向模块名称的指针,而ModuleHandleA
是存储获取到的模块句柄的变量。
ProcAddress = GetProcAddress(ModuleHandleA, v3);
- 这行代码使用GetProcAddress
函数获取模块中指定函数的地址。ModuleHandleA
是模块句柄,v3
是指向函数名称的指针,而ProcAddress
是存储获取到的函数地址的变量。
ProcAddress(1, sub_40157F);
- 这行代码调用之前获取的函数地址,传递两个参数:1
和sub_40157F
。sub_40157F
可能是一个函数的地址。从代码本身来看,并没有直接构造SEH(Structured Exception Handling,结构化异常处理)的代码。SEH通常涉及到
__except
和__try
关键字,以及SetUnhandledExceptionFilter
函数的使用。然而,代码中调用的函数和传递的参数可能与异常处理有关,这取决于sub_40157F
和v3
指向的函数的具体实现。如果
sub_40157F
是一个异常处理函数,并且v3
指向的函数与异常处理有关,那么这段代码可能在某种方式上与SEH相关。但是,仅凭这段代码无法确定是否在构造SEH。需要更多的上下文信息,比如sub_40157F
和v3
指向的函数的具体实现,以及它们如何被使用。
这一段或许就是seh的地址了
还是错了
到底是怎么拼接上去的呢?
-- 我服了我傻逼
export里面
我们直接看tls的构造
下班!
吃饭