1ampa55ag3 发表于 2019-4-28 21:59

【crackme】菜鸡的逆向分析作业

图片可能错误 可以下载附件查看!!!
1.首先打开CM5.exe随便输了测试一下,得到一下结果。file:///C:/Users/passa/AppData/Local/Temp/msohtmlclip1/01/clip_image001.pngfile:///C:/Users/passa/AppData/Local/Temp/msohtmlclip1/01/clip_image003.jpg2.用PEid查一下壳。file:///C:/Users/passa/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png软件编译器为MASM32。查阅资料,MASM32是一个由个人开发的包含了不同版本工具组建的汇编开发工具包,软件无壳。拖入IDAPro中。 3. DialogFunc观察程序框架。在下方可找到错误提示和正确提示的MessageBox。file:///C:/Users/passa/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg跳转至错误提示的语句有7个,说明有7个判断条件。4.反编译顶部框体。file:///C:/Users/passa/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg关键语句在Line 16处16. v5 = SendDlgItemMessageA(hDlg, 3, 0xEu, 0, 0);17. dword_4021AF = v5;18. if ( !v5 )19. gotoLABEL_26;20. if ( v5 > 8 )21. gotoLABEL_26;22. v6 = v5; L16 输入User Name,读取到v5中L17 dword_4021AF==User NameL18 若v5为空L19 则跳转至LABEL_26file:///C:/Users/passa/AppData/Local/Temp/msohtmlclip1/01/clip_image009.png即报错L20 若输入的User Name位数大于8L21 则跳转至LABEL_26(即报错)L22 v6==User NameL23 v7==Registration CodeL24 若Registration Code为空或Registration Code=User Name。L25 则跳转至LABEL_26(即报错)L26 局部变量byte_402160==User NameL27 unk_402179==Registration Code之后我们进入了一个循环当中file:///C:/Users/passa/AppData/Local/Temp/msohtmlclip1/01/clip_image011.jpgL28 初始的i为-1,在每次循环的结束时byte_40203C就会赋值给*(int *)((char*)&dword_402194 + i) 其中byte_40203C是一个由字母和数字组成的数组,dword_402194是一个空的数组。L30 v9被赋值为User name的第一个字符L31 若v9为空L32 则跳出循环L33 v10==-1。L34 若v9第i个字符的ascii码小于65(A)或者大于0x7A(z)L35则跳转至LABEL_26(即报错)L36 若User name的第i个字符的ascii码大于90L37 则减去32(小写字母转大写字母)L38-40 若User name的第i个字符的ascii码不等于byte_402017的第v10个字符,则v10自增1。双击进byte_40203C,看到了密钥表file:///C:/Users/passa/AppData/Local/Temp/msohtmlclip1/01/clip_image013.jpg明文1LSK2DJF4HGP3QWO5EIR6UTYZ8MXN7CBV9密钥U7CSJKF09NCSDO9SDF09SDRLVK7809S4NF5.实验结果输入zwb,根据密钥表对应为V94,试验一下结果。file:///C:/Users/passa/AppData/Local/Temp/msohtmlclip1/01/clip_image015.jpg成功了。
页: [1]
查看完整版本: 【crackme】菜鸡的逆向分析作业