精装友情通讯录简单分析
首先查壳,然后运行程序,点击注册按钮,出现提示“注册失败,请重新注册”字符串,好下面就是用od加载,利用查找字符串插件,查找字符串“注册失败,请重新注册”,00510408/.55 push ebp
00510409|.8BEC mov ebp, esp
0051040B|.B9 17000000 mov ecx, 17
00510410|>6A 00 /push 0
00510412|.6A 00 |push 0
00510414|.49 |dec ecx
00510415|.^ 75 F9 \jnz short 00510410
00510417|.53 push ebx
00510418|.56 push esi
00510419|.8BD8 mov ebx, eax
0051041B|.33C0 xor eax, eax
0051041D|.55 push ebp
0051041E|.68 8D065100 push 0051068D
00510423|.64:FF30 push dword ptr fs:
00510426|.64:8920 mov dword ptr fs:, esp
00510429|.68 80000000 push 80 ; /BufSize = 80 (128.)
0051042E|.8D85 7BFFFFFF lea eax, dword ptr ; |
00510434|.50 push eax ; |Buffer
00510435|.E8 D26CEFFF call <jmp.&kernel32.GetSystemDirector>; \GetSystemDirectoryA
0051043A|.8D45 FC lea eax, dword ptr
0051043D|.8D95 7BFFFFFF lea edx, dword ptr
00510443|.B9 81000000 mov ecx, 81
00510448|.E8 3746EFFF call 00404A84
0051044D|.8D95 74FFFFFF lea edx, dword ptr
00510453|.8B83 34030000 mov eax, dword ptr
00510459|.E8 D20BF3FF call 00441030
0051045E|.83BD 74FFFFFF>cmp dword ptr , 0
00510465|.74 1A je short 00510481
00510467|.8D95 70FFFFFF lea edx, dword ptr
0051046D|.8B83 10030000 mov eax, dword ptr
00510473|.E8 B80BF3FF call 00441030
00510478|.83BD 70FFFFFF>cmp dword ptr , 0
0051047F|.75 0F jnz short 00510490
00510481|>B8 A4065100 mov eax, 005106A4
00510486|.E8 999DF2FF call 0043A224
0051048B|.E9 80010000 jmp 00510610
00510490|>8D95 6CFFFFFF lea edx, dword ptr
00510496|.8B83 34030000 mov eax, dword ptr
0051049C|.E8 8F0BF3FF call 00441030
005104A1|.8B85 6CFFFFFF mov eax, dword ptr
005104A7|.50 push eax
005104A8|.8D95 60FFFFFF lea edx, dword ptr
005104AE|.8B83 10030000 mov eax, dword ptr
005104B4|.E8 770BF3FF call 00441030
005104B9|.8B85 60FFFFFF mov eax, dword ptr
005104BF|.E8 5C8EEFFF call 00409320
005104C4|.B9 D1000000 mov ecx, 0D1
005104C9|.99 cdq
005104CA|.F7F9 idiv ecx
005104CC|.8BC2 mov eax, edx
005104CE|.8D95 64FFFFFF lea edx, dword ptr
005104D4|.E8 E38DEFFF call 004092BC
005104D9|.FFB5 64FFFFFF push dword ptr
005104DF|.8D95 54FFFFFF lea edx, dword ptr
005104E5|.8B83 10030000 mov eax, dword ptr
005104EB|.E8 400BF3FF call 00441030
005104F0|.8B85 54FFFFFF mov eax, dword ptr
005104F6|.E8 258EEFFF call 00409320
005104FB|.8D95 58FFFFFF lea edx, dword ptr
00510501|.E8 C6FCFFFF call 005101CC
00510506|.8B85 58FFFFFF mov eax, dword ptr
0051050C|.E8 0F8EEFFF call 00409320
00510511|.8D95 5CFFFFFF lea edx, dword ptr
00510517|.E8 90FDFFFF call 005102AC
0051051C|.FFB5 5CFFFFFF push dword ptr
00510522|.68 C4065100 push 005106C4
00510527|.8D85 68FFFFFF lea eax, dword ptr
0051052D|.BA 03000000 mov edx, 3
00510532|.E8 5D46EFFF call 00404B94
00510537|.8B95 68FFFFFF mov edx, dword ptr
0051053D|.58 pop eax
0051053E|.E8 D546EFFF call 00404C18
00510543 0F85 A3000000 jnz 005105EC
00510549|.B8 D0065100 mov eax, 005106D0
0051054E|.E8 D19CF2FF call 0043A224
00510553|.A1 14BA5100 mov eax, dword ptr
00510558|.8B00 mov eax, dword ptr
0051055A|.8B80 18030000 mov eax, dword ptr
00510560|.8B80 08020000 mov eax, dword ptr
00510566|.33D2 xor edx, edx
00510568|.E8 87ECF5FF call 0046F1F4
0051056D|.BA F4065100 mov edx, 005106F4
00510572|.E8 D9EBF5FF call 0046F150
00510577|.8D85 50FFFFFF lea eax, dword ptr
0051057D|.B9 10075100 mov ecx, 00510710 ;ASCII "\hdwlz.dll"
00510582|.8B55 FC mov edx, dword ptr
00510585|.E8 9645EFFF call 00404B20
0051058A|.8B8D 50FFFFFF mov ecx, dword ptr
00510590|.B2 01 mov dl, 1
00510592|.A1 C4264600 mov eax, dword ptr
00510597|.E8 D821F5FF call 00462774
0051059C|.8BF0 mov esi, eax
0051059E|.8D95 4CFFFFFF lea edx, dword ptr
005105A4|.8B83 10030000 mov eax, dword ptr
005105AA|.E8 810AF3FF call 00441030
005105AF|.8B85 4CFFFFFF mov eax, dword ptr
005105B5|.50 push eax
005105B6|.B9 24075100 mov ecx, 00510724 ;ASCII "setet567"
005105BB|.BA 38075100 mov edx, 00510738 ;ASCII "sym"
005105C0|.8BC6 mov eax, esi
005105C2|.8B18 mov ebx, dword ptr
005105C4|.FF53 04 call dword ptr
005105C7|.8D85 48FFFFFF lea eax, dword ptr
005105CD|.B9 44075100 mov ecx, 00510744 ;ASCII "\hdw1z.dll"
005105D2|.8B55 FC mov edx, dword ptr
005105D5|.E8 4645EFFF call 00404B20
005105DA|.8B85 48FFFFFF mov eax, dword ptr
005105E0|.BA 02000000 mov edx, 2
005105E5|.E8 7E8FEFFF call 00409568
005105EA|.EB 24 jmp short 00510610
005105EC|>B8 58075100 mov eax, 00510758 00510408/.55 push ebp
00510409|.8BEC mov ebp, esp
0051040B|.B9 17000000 mov ecx, 17
00510410|>6A 00 /push 0
00510412|.6A 00 |push 0
00510414|.49 |dec ecx
00510415|.^ 75 F9 \jnz short 00510410
00510417|.53 push ebx
00510418|.56 push esi
00510419|.8BD8 mov ebx, eax
0051041B|.33C0 xor eax, eax
0051041D|.55 push ebp
0051041E|.68 8D065100 push 0051068D
00510423|.64:FF30 push dword ptr fs:
00510426|.64:8920 mov dword ptr fs:, esp
00510429|.68 80000000 push 80 ; /BufSize = 80 (128.)
0051042E|.8D85 7BFFFFFF lea eax, dword ptr ; |
00510434|.50 push eax ; |Buffer
00510435|.E8 D26CEFFF call <jmp.&kernel32.GetSystemDirector>; \GetSystemDirectoryA
0051043A|.8D45 FC lea eax, dword ptr
0051043D|.8D95 7BFFFFFF lea edx, dword ptr
00510443|.B9 81000000 mov ecx, 81
00510448|.E8 3746EFFF call 00404A84
0051044D|.8D95 74FFFFFF lea edx, dword ptr
00510453|.8B83 34030000 mov eax, dword ptr
00510459|.E8 D20BF3FF call 00441030 判断注册码是否为空
0051045E|.83BD 74FFFFFF>cmp dword ptr , 0
00510465|.74 1A je short 00510481
00510467|.8D95 70FFFFFF lea edx, dword ptr
0051046D|.8B83 10030000 mov eax, dword ptr
00510473|.E8 B80BF3FF call 00441030
00510478|.83BD 70FFFFFF>cmp dword ptr , 0 判断订单号是否为空
0051047F|.75 0F jnz short 00510490
00510481|>B8 A4065100 mov eax, 005106A4
00510486|.E8 999DF2FF call 0043A224
0051048B|.E9 80010000 jmp 00510610
00510490|>8D95 6CFFFFFF lea edx, dword ptr
00510496|.8B83 34030000 mov eax, dword ptr
0051049C|.E8 8F0BF3FF call 00441030
005104A1|.8B85 6CFFFFFF mov eax, dword ptr
005104A7|.50 push eax
005104A8|.8D95 60FFFFFF lea edx, dword ptr
005104AE|.8B83 10030000 mov eax, dword ptr
005104B4|.E8 770BF3FF call 00441030
005104B9|.8B85 60FFFFFF mov eax, dword ptr
005104BF|.E8 5C8EEFFF call 00409320
005104C4|.B9 D1000000 mov ecx, 0D1
005104C9|.99 cdq
005104CA|.F7F9 idiv ecx
005104CC|.8BC2 mov eax, edx
005104CE|.8D95 64FFFFFF lea edx, dword ptr
005104D4|.E8 E38DEFFF call 004092BC
005104D9|.FFB5 64FFFFFF push dword ptr
005104DF|.8D95 54FFFFFF lea edx, dword ptr
005104E5|.8B83 10030000 mov eax, dword ptr
005104EB|.E8 400BF3FF call 00441030 这里call即,读取假“注册码”
005104F0|.8B85 54FFFFFF mov eax, dword ptr
005104F6|.E8 258EEFFF call 00409320
005104FB|.8D95 58FFFFFF lea edx, dword ptr
00510501|.E8 C6FCFFFF call 005101CC
00510506|.8B85 58FFFFFF mov eax, dword ptr
0051050C|.E8 0F8EEFFF call 00409320
00510511|.8D95 5CFFFFFF lea edx, dword ptr
00510517|.E8 90FDFFFF call 005102AC
0051051C|.FFB5 5CFFFFFF push dword ptr
00510522|.68 C4065100 push 005106C4
00510527|.8D85 68FFFFFF lea eax, dword ptr
0051052D|.BA 03000000 mov edx, 3
00510532|.E8 5D46EFFF call 00404B94
00510537|.8B95 68FFFFFF mov edx, dword ptr
0051053D|.58 pop eax
0051053E|.E8 D546EFFF call 00404C18 关键call 追真码就在这call里,可以跟进,明码比较
00510543 0F85 A3000000 jnz 005105EC 这里修改为“je”即为爆破,再向上追
00510549|.B8 D0065100 mov eax, 005106D0
0051054E|.E8 D19CF2FF call 0043A224
00510553|.A1 14BA5100 mov eax, dword ptr
00510558|.8B00 mov eax, dword ptr
0051055A|.8B80 18030000 mov eax, dword ptr
00510560|.8B80 08020000 mov eax, dword ptr
00510566|.33D2 xor edx, edx
00510568|.E8 87ECF5FF call 0046F1F4
0051056D|.BA F4065100 mov edx, 005106F4
00510572|.E8 D9EBF5FF call 0046F150
00510577|.8D85 50FFFFFF lea eax, dword ptr
0051057D|.B9 10075100 mov ecx, 00510710 ;ASCII "\hdwlz.dll"
00510582|.8B55 FC mov edx, dword ptr
00510585|.E8 9645EFFF call 00404B20
0051058A|.8B8D 50FFFFFF mov ecx, dword ptr
00510590|.B2 01 mov dl, 1
00510592|.A1 C4264600 mov eax, dword ptr
00510597|.E8 D821F5FF call 00462774
0051059C|.8BF0 mov esi, eax
0051059E|.8D95 4CFFFFFF lea edx, dword ptr
005105A4|.8B83 10030000 mov eax, dword ptr
005105AA|.E8 810AF3FF call 00441030
005105AF|.8B85 4CFFFFFF mov eax, dword ptr
005105B5|.50 push eax
005105B6|.B9 24075100 mov ecx, 00510724 ;ASCII "setet567"
005105BB|.BA 38075100 mov edx, 00510738 ;ASCII "sym"
005105C0|.8BC6 mov eax, esi
005105C2|.8B18 mov ebx, dword ptr
005105C4|.FF53 04 call dword ptr
005105C7|.8D85 48FFFFFF lea eax, dword ptr
005105CD|.B9 44075100 mov ecx, 00510744 ;ASCII "\hdw1z.dll"
005105D2|.8B55 FC mov edx, dword ptr
005105D5|.E8 4645EFFF call 00404B20
005105DA|.8B85 48FFFFFF mov eax, dword ptr
005105E0|.BA 02000000 mov edx, 2
005105E5|.E8 7E8FEFFF call 00409568
005105EA|.EB 24 jmp short 00510610
005105EC|>B8 58075100 mov eax, 00510758 注册失败,请重新注册字符串提示符,向上追寻关键跳转‘jnz’ 多谢楼主发帖。
我也是这么做的。
可自己的能力太差。
dword ptr , 0 判断订单号是否为空
00510459|.E8 D20BF3FF call 00441030 判断注册码是否为空
0051045E|.83BD 74FFFFFF>cmp dword ptr , 0
是不是就是说和零比较,所以就是判断是否为空了。如果是的话,我今天就算是学习了点。 知道了程序的流程,就能用多种方法解决了 印象中记得貌似建立一个文件就OK的了哈/:017 我想问下重新打开后那文件自动被删了。双显示末注册,怎么办? 005153D9|.B9 6C555100 mov ecx, 0051556C ;ASCII "\hdwl21.dll"
注册文件 本帖最后由 sffs 于 2010-6-1 10:42 编辑
看了下注册算法比较简单,适合我们新收学习。
页:
[1]