随笔分类 - 逆向分析
摘要:一些知识点: ^的运算优先级低于+,- strcmp(s1, s2),从字符串的头部开始比较ASCII码,大于返回正数,小于返回负数,等于返回0。(值为第一组不同ASCII值之差)。 加密函数encode() a1 = 'izwhroz\"\"w\"v.K\".Ni' a2 = [] for i i
阅读全文
摘要:HeapCreate():进程中创建辅助堆栈。 HeapAlloc():指定的堆上分配内存,并且分配后的内存不可移动。 IsDebuggerPresent():确定调用进程是否由用户模式的调试器调试 _debugbreak():功能暂停程序执行,打开调试器,进入调试模式。 ExitProcess()
阅读全文
摘要:在linux中执行程序,提示段错误。 静态分析: ida打开文件。找到main函数。 在调试时,发现在authenticate()会卡住无法执行。 说明程序在authenticate()中存在错误。 进入authenticate()函数内部。发现了个加密函数decrypt()。 传入了s2和dwor
阅读全文
摘要:game 一道题没做出来的我,羞愧万分。只恨check3的最后两个if太唬人。 部分字节码被切割开来。方便理解。 # Python 2.7 # Embedded file name: game.py 1 0 LOAD_CONST 249 3 LOAD_CONST 91 6 LOAD_CONST 14
阅读全文
摘要:双击打开程序。 一种破解方式: 依次输入:1,2,3,4,5,6,7,8 另一种破解方式: x32dbg打开程序。 alt+F9 跳转到用户函数: F7进入函数。 搜索字符串 可以在字符串种发现存在"done!!! the flag is "。 双击进入。 在push ebp处下断点。 可以知道这里
阅读全文
摘要:64位ida打开文件。 在functions window找到main函数。双击。 F5。转换为C语言。 需要特别注意的是:/在c语言中表示转义。而\在python中表示转义。 python版解法: v8 = ":\"AL_RT^L*.?+6/46" v7 = 28537194573619560 p
阅读全文
摘要:暴力破解: notepad++打开文件。搜索Ctrl+F搜索flag 去掉中间的中文字符,可以直接看到flag。 同时从低下可以发下。这是个UPX壳。 常规手段: PE查壳后,发现这是个UPX壳。推荐使用upx程序脱壳。 指令为upx -d 程序名 在kali中脱壳。 IDA打开脱壳后的文件。 可以
阅读全文
摘要:函数 atio:https://baike.baidu.com/item/atoi/10931331?fr=aladdin strcmp:https://baike.baidu.com/item/strcmp/5495571?fr=aladdin strlen:https://baike.baidu
阅读全文
摘要:直接双击打开。 拖入x32olldbg。 Alt+F9之后。 搜索当前模块下的字符串。 可以看到437261636b4d654a757374466f7246756e。 这是一个16进制的字符串。 用notepad ++打开。点击插件-->Converter-->HEX->ASCII。 便可以看到FL
阅读全文
摘要:notepad++打开文件。 可以看到 xxxx {This_is_a_flag} 9447 ctf 2014 这应该是某次ctf的主题。
阅读全文
摘要:.py与.pyc文件比较 https://www.cnblogs.com/zyy98877/p/8650119.html .pyc文件反编译 https://www.cnblogs.com/pppig/p/11423274.html 一个数异或一个数再次异或这个数,便是它本身。 a^b=c c^b=
阅读全文
浙公网安备 33010602011771号