攻防世界逆向高手题之梅津美治郎_攻防世界梅津美治郎-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的构造
下班!
吃饭