ReverseMe1
分析ReverseMe1一.运行打开程序,首先出现了一个Nag,都是废话没有什么用,点击确定,接下来是一个序列号的界面,要求我们输入Regcode。
两个目标:
1.删除消息框
2.寻找Regcode
二.分析1.去除消息框
用OD打开,看一眼是非常熟悉的Visual Basic代码,猜一下,要调用消息框,要调用MtrcMsgBox函数,直接右键搜索函数
找到调用函数的地方,发现一共有四处调用的地方,给他们下断点
F9运行到第一个断点的地方,往上面再看看就可以看到Nag Screen的字眼,就是显示出来的消息框
那我们要如何修改,才能让他不显示
本来想直接把call指令修改掉,都是栈内就乱了无法传回去
接着往上找找看看这段的首在哪里,找到了函数的开头,直接把他改成retn 0x4直接返回,不执行接下来的内容
2.寻找Regcode
先随便输入一个看看是什么结果,看到是Sorry!、、、、通过这个字符串去寻找函数
这里就看到了一个I’mlena151,push到栈中,接下来调用了vbaStrCmp的函数,字面上就可以看出来这是一个比较的函数
所以这就是我们要寻找的
成 ...
BUU-reverse2
[HDCTF2019]Maze拖入ida后发现打不开,可能是加壳了,脱壳,成功打开。
找到main函数
发现没有办法反汇编,这里最后的应该jnz跳转到下面一行,就是个没有用的指令,下面一个的call明显出错了,没有这个地址,可以推断出这段代码添加了花指令,IDA分析失败了。D键转换成字节数据查看
发现 db 0E8h这条指令是添加的花指令,将其nop掉,接下来打开OD,找到要修改的地方
将JNZ和下面的db E8都改成NOP保存为新的程序,再打开IDA
可以看出这是一个迷宫题,找到存放迷宫图的地方
用wasd控制行走,dword_408078控制左右,dword_40807C控制上下。 s是上,w是下,a是右,d是左。 行走路径为ssaaasaassdddw 则flag为flag{ssaaasaassdddw}
[MRCTF2020]Xor用IDA打开,发现不能反汇编,不知道是什么原因
看汇编的流程图
先看到第一个call sub_401050,这里压入了一个byte_4212C0和一个**%s,说明输入的flag最终会存放到byte_4212C0,继 ...
分析abexcrackme2
1.abex‘crackme2一.abex‘crackme2打开程序
要求我们输入名字与Serial,先随便输一个试试,点击check按钮,弹出了一个Wrong serial!的窗口,开始调试。
二.VB专用引擎VB文件使用名为MSVBVM60.dll ( Microsoft Visual Basic Virtual Machine 6.0 )的VB专用引擎(也称为The Thunder Runtime Engine )。举个使用VB引擎的例子,显示消息框时,VB代码中要调用MsgBox)函数。其实,VB编辑器真正调用的是MSVBVM60.dll里的rtcMsgBox()函数,在该函数内部通过调用user32.dll里的MessageBoxW()函数(Win32 API)来工作(也可以在VB代码中直接调用user32.dll里的MessageBoxWO).
三.开始调试运行OllyDbg,查看反汇编代码。
执行程序后,在EP代码中首先要做的是调用VB引擎的主函数(ThunRTMain() )。EP的地址为401238。401238地址处的PUSH 401E14命令用来把RT_Ma ...
BUU-reverse
【2019红帽杯】easyRE直接IDA打开,搜索字符串找到一个you found me,进入sub_4009C6函数,先看到一个加密
每个字符与索引异或判断是否相等,可以写一个脚本跑一下,结果发现不是,骗人的
运行结果:Info:The first four chars are ‘flag’
接着往下面看
发现是base64加密10次,判断是否与off_6cc90相等,base64解密十次得到了https://bbs.pediy.com/thread-254172.htm,没有flag,都是混淆视听的,真正的藏在off_6cc90下面的那个数据的函数
首先用第20行的异或,102和103对应的字符分别是”f” 和”g”,而且byte_ 6CC0A0[0]和byte _6CC0A3刚好是一个字符串的第一位和第四位。那么可以想到是”flag” 与前四位异或,然后得到一个key,再进行下面for循环的异或。
1234567891011s = [0x40,0x35,0x20,0x56,0x5D,0x18,0x22,0x45,0x17,0x2F,0x24,0x6E,0x62, ...
分析abex'crackme1
一.abex’crackme1调试前先运行abex’crackme #1这个程序,大致了解一下它。双击运行程序后弹出一个消息窗口,显示“Make me think your HD is a CD-Rom”消息。不太理解这句英文。消息的最后部分出现了“CD-Rom”这个词,我们只能根据它大致推测出前面的HD为HDD(Hard Disk Drive)的意思。由于没有更多选择,我们继续按消息窗口中的“确定”按钮。
程序弹出Error消息窗后就终止运行了。但是abex到底想要干什么(要怎样破解什么)仍然不得而知。下面直接调试分析它,把握这个小程序的意图。
二.开始调试
由于代码非常简短,我们一点点地分析,重点看右上部分关于Win32 API调用的内容。如果之前大家从事过Windows应用程序的开发,那么对以上几个函数的含义应该非常了解。从上述代码的分析中,我们能够准确把握程序制作者的真正意图。在消息窗口按“确定”后,程序会调用GetDriveType() API,获取C驱动器的类型(大部分返回的是HDD类型),然后操作它,使之被识别为CD-ROM类型,再在消息窗口中输出“OK, I rea ...