本帖最后由 lyrong 于 2017-5-21 17:21 编辑
最近学习逆向逆向,学习到可可验证,看了《[悬赏杀手视频] DXF爱华逆向教程-err》视频教程和《可可eno和err逆向原理粗讲》,原理讲解是说看到两个jmp jmp后,后面是err,我OD查看了下,确实是,没有问题
【原话】从图中可以看出来,如果找的到err,那么就很好改了,err上面改一个大跳转,下面改一个大跳转就行了
我看视频教程中往上err上面,修改了两处jz为jmp,这两处都是大跳,在我们不知道源码的情况下,为什么要修改这两处大跳转呢?请教思路是什么?不是改一个跳就行了吗?OD能直接读出流程吗?
下面是我截取的关键代码:
00428030 . /74 09 JE SHORT 0042803B
00428032 . |53 PUSH EBX
00428033 . |E8 563A0000 CALL 0042BA8E
00428038 . |83C4 04 ADD ESP, 0x4
0042803B > \58 POP EAX ; 0018EEC0
0042803C . 8945 F8 MOV DWORD PTR SS:[EBP-0x8], EAX
0042803F . 8D45 F8 LEA EAX, DWORD PTR SS:[EBP-0x8]
00428042 . 50 PUSH EAX
00428043 . E8 240A0000 CALL 00428A6C
00428048 . 85C0 TEST EAX, EAX
0042804A . E9 80000000 JMP 004280CF ;修改为jmp
0042804F 90 NOP
00428050 . 8D45 F8 LEA EAX, DWORD PTR SS:[EBP-0x8]
00428053 . 50 PUSH EAX
00428054 . E8 F30A0000 CALL 00428B4C
00428059 . 8945 F4 MOV DWORD PTR SS:[EBP-0xC], EAX
0042805C . BB 06000000 MOV EBX, 0x6
00428061 . E8 7393FEFF CALL 004113D9
00428066 . 68 01030080 PUSH 0x80000301
0042806B . 6A 00 PUSH 0x0
0042806D . 68 00000000 PUSH 0x0
00428072 . 68 04000080 PUSH 0x80000004
00428077 . 6A 00 PUSH 0x0
00428079 . 8B45 F4 MOV EAX, DWORD PTR SS:[EBP-0xC]
0042807C . 85C0 TEST EAX, EAX
0042807E . 75 05 JNZ SHORT 00428085
00428080 . B8 ABD95700 MOV EAX, 0057D9AB
00428085 > 50 PUSH EAX
00428086 . 68 04000000 PUSH 0x4
0042808B . BB 10DA4200 MOV EBX, 0042DA10
00428090 . E8 0B3A0000 CALL 0042BAA0
00428095 . 83C4 34 ADD ESP, 0x34
00428098 . 8B5D F4 MOV EBX, DWORD PTR SS:[EBP-0xC]
0042809B . 85DB TEST EBX, EBX
0042809D . 74 09 JE SHORT 004280A8
0042809F . 53 PUSH EBX
004280A0 . E8 E9390000 CALL 0042BA8E
004280A5 . 83C4 04 ADD ESP, 0x4
004280A8 > 6A 00 PUSH 0x0
004280AA . 68 00000000 PUSH 0x0
004280AF . 6A FF PUSH -0x1
004280B1 . 6A 06 PUSH 0x6
004280B3 . 68 B3000116 PUSH 0x160100B3
004280B8 . 68 01000152 PUSH 0x52010001
004280BD . E8 D8390000 CALL 0042BA9A
004280C2 . 83C4 18 ADD ESP, 0x18
004280C5 . E9 80050000 JMP 0042864A
004280CA . E9 B1010000 JMP 00428280 ;这两个跳转对应图片中的什么代码呢?
004280CF > DB45 FC FILD DWORD PTR SS:[EBP-0x4]
004280D2 . DD5D F0 FSTP QWORD PTR SS:[EBP-0x10]
004280D5 . DD45 F0 FLD QWORD PTR SS:[EBP-0x10]
004280D8 . DC05 3D025800 FADD QWORD PTR DS:[0x58023D]
004280DE . DD5D E8 FSTP QWORD PTR SS:[EBP-0x18]
004280E1 . DD45 E8 FLD QWORD PTR SS:[EBP-0x18]
004280E4 . DC0D 9BD95700 FMUL QWORD PTR DS:[0x57D99B]
004280EA . DD5D E0 FSTP QWORD PTR SS:[EBP-0x20]
004280ED . DD45 E0 FLD QWORD PTR SS:[EBP-0x20]
004280F0 . DC05 7BD95700 FADD QWORD PTR DS:[0x57D97B]
004280F6 . DD5D D8 FSTP QWORD PTR SS:[EBP-0x28]
004280F9 . 68 01030080 PUSH 0x80000301
004280FE . 6A 00 PUSH 0x0
00428100 . 68 08000000 PUSH 0x8
00428105 . DD45 D8 FLD QWORD PTR SS:[EBP-0x28]
00428108 . E8 4D94FDFF CALL 0040155A
0042810D . 68 01030080 PUSH 0x80000301
00428112 . 6A 00 PUSH 0x0
00428114 . 50 PUSH EAX
00428115 . 68 04000080 PUSH 0x80000004
0042811A . 6A 00 PUSH 0x0
0042811C . A1 C8655D00 MOV EAX, DWORD PTR DS:[0x5D65C8]
00428121 . 85C0 TEST EAX, EAX
00428123 . 75 05 JNZ SHORT 0042812A
00428125 . B8 ABD95700 MOV EAX, 0057D9AB
0042812A > 50 PUSH EAX
0042812B . 68 03000000 PUSH 0x3
00428130 . BB 20C24200 MOV EBX, 0042C220
00428135 . E8 66390000 CALL 0042BAA0
0042813A . 83C4 28 ADD ESP, 0x28
0042813D . 8945 D4 MOV DWORD PTR SS:[EBP-0x2C], EAX
00428140 . 8B45 D4 MOV EAX, DWORD PTR SS:[EBP-0x2C]
00428143 . 50 PUSH EAX
00428144 . FF75 F8 PUSH DWORD PTR SS:[EBP-0x8]
00428147 . E8 A3B4FDFF CALL 004035EF
0042814C . 83C4 08 ADD ESP, 0x8
0042814F . 83F8 00 CMP EAX, 0x0
00428152 . B8 00000000 MOV EAX, 0x0
00428157 . 0F95C0 SETNE AL
0042815A . 8945 D0 MOV DWORD PTR SS:[EBP-0x30], EAX
0042815D . 8B5D D4 MOV EBX, DWORD PTR SS:[EBP-0x2C]
00428160 . 85DB TEST EBX, EBX
00428162 . 74 09 JE SHORT 0042816D
00428164 . 53 PUSH EBX
00428165 . E8 24390000 CALL 0042BA8E
0042816A . 83C4 04 ADD ESP, 0x4
0042816D > 837D D0 00 CMP DWORD PTR SS:[EBP-0x30], 0x0
00428171 . 0F84 09010000 JE 00428280 ;修改为JMP
00428177 . DB45 FC FILD DWORD PTR SS:[EBP-0x4]
0042817A . DD5D F0 FSTP QWORD PTR SS:[EBP-0x10]
0042817D . DD45 F0 FLD QWORD PTR SS:[EBP-0x10]
00428180 . DC0D B4E85700 FMUL QWORD PTR DS:[0x57E8B4]
00428186 . DD5D E8 FSTP QWORD PTR SS:[EBP-0x18]
00428189 . DD45 E8 FLD QWORD PTR SS:[EBP-0x18]
0042818C . DC05 45025800 FADD QWORD PTR DS:[0x580245]
00428192 . DD5D E0 FSTP QWORD PTR SS:[EBP-0x20]
00428195 . 68 01030080 PUSH 0x80000301
0042819A . 6A 00 PUSH 0x0
0042819C . 68 08000000 PUSH 0x8
004281A1 . DD45 E0 FLD QWORD PTR SS:[EBP-0x20]
004281A4 . E8 B193FDFF CALL 0040155A
004281A9 . 68 01030080 PUSH 0x80000301
004281AE . 6A 00 PUSH 0x0
004281B0 . 50 PUSH EAX
004281B1 . 68 04000080 PUSH 0x80000004
004281B6 . 6A 00 PUSH 0x0
004281B8 . A1 C8655D00 MOV EAX, DWORD PTR DS:[0x5D65C8]
004281BD . 85C0 TEST EAX, EAX
004281BF . 75 05 JNZ SHORT 004281C6
004281C1 . B8 ABD95700 MOV EAX, 0057D9AB
004281C6 > 50 PUSH EAX
004281C7 . 68 03000000 PUSH 0x3
004281CC . BB 20C24200 MOV EBX, 0042C220
004281D1 . E8 CA380000 CALL 0042BAA0
004281D6 . 83C4 28 ADD ESP, 0x28
004281D9 . 8945 DC MOV DWORD PTR SS:[EBP-0x24], EAX
004281DC . FF75 DC PUSH DWORD PTR SS:[EBP-0x24]
004281DF . 68 E0E85700 PUSH 0057E8E0 ; ,
004281E4 . FF75 F8 PUSH DWORD PTR SS:[EBP-0x8]
004281E7 . B9 03000000 MOV ECX, 0x3
004281EC . E8 B306FEFF CALL 004088A4
004281F1 . 83C4 0C ADD ESP, 0xC
004281F4 . 8945 D8 MOV DWORD PTR SS:[EBP-0x28], EAX
004281F7 . 8B5D DC MOV EBX, DWORD PTR SS:[EBP-0x24]
004281FA . 85DB TEST EBX, EBX
004281FC . 74 09 JE SHORT 00428207
004281FE . 53 PUSH EBX
004281FF . E8 8A380000 CALL 0042BA8E
00428204 . 83C4 04 ADD ESP, 0x4
00428207 > 68 04000080 PUSH 0x80000004
0042820C . 6A 00 PUSH 0x0
0042820E . 8B45 D8 MOV EAX, DWORD PTR SS:[EBP-0x28]
00428211 . 85C0 TEST EAX, EAX
00428213 . 75 05 JNZ SHORT 0042821A
00428215 . B8 ABD95700 MOV EAX, 0057D9AB
0042821A > 50 PUSH EAX
0042821B . 68 04000080 PUSH 0x80000004
00428220 . 6A 00 PUSH 0x0
00428222 . 68 4D025800 PUSH 0058024D ; err
00428227 . 68 04000080 PUSH 0x80000004
0042822C . 6A 00 PUSH 0x0
0042822E . 68 51025800 PUSH 00580251 ; signdata
00428233 . 68 04000080 PUSH 0x80000004
00428238 . 6A 00 PUSH 0x0
0042823A . A1 60655D00 MOV EAX, DWORD PTR DS:[0x5D6560]
0042823F . 85C0 TEST EAX, EAX
00428241 . 75 05 JNZ SHORT 00428248
00428243 . B8 ABD95700 MOV EAX, 0057D9AB
00428248 > 50 PUSH EAX
00428249 . 68 04000000 PUSH 0x4
0042824E . BB 80E44200 MOV EBX, 0042E480
00428253 . E8 48380000 CALL 0042BAA0
00428258 . 83C4 34 ADD ESP, 0x34
0042825B . 8B5D D8 MOV EBX, DWORD PTR SS:[EBP-0x28]
0042825E . 85DB TEST EBX, EBX
00428260 . 74 09 JE SHORT 0042826B
00428262 . 53 PUSH EBX
00428263 . E8 26380000 CALL 0042BA8E
00428268 . 83C4 04 ADD ESP, 0x4
0042826B > E8 80C4FDFF CALL 004046F0
00428270 . 50 PUSH EAX
00428271 . E8 ABC4FDFF CALL 00404721
00428276 . 6A 00 PUSH 0x0
00428278 . E8 3B380000 CALL 0042BAB8
0042827D . 83C4 04 ADD ESP, 0x4
00428280 > 6A FF PUSH -0x1
00428282 . 6A 12 PUSH 0x12
00428284 . 68 86070116 PUSH 0x16010786
00428289 . 68 01000152 PUSH 0x52010001
0042828E . E8 19380000 CALL 0042BAAC
00428293 . 83C4 10 ADD ESP, 0x10
00428296 . 8945 F0 MOV DWORD PTR SS:[EBP-0x10], EAX
00428299 . 837D F0 01 CMP DWORD PTR SS:[EBP-0x10], 0x1
0042829D . 0F85 27020000 JNZ 004284CA
没源码直接看汇编代码,我觉得没借鉴的东西,看过可可源码之后,方懂为什么要改跳转,但是不知道为什么改的是大跳转而不是别的jz呢?大神别笑话我哦,心塞。只想了解大家如何想的,谢谢大家了。
源码+程序:https://pan.baidu.com/s/1ccVvQ2
注明:我发的帖子,有些是很菜的问题,但是本人还是不那么菜的,懂编程,只是最近看吾爱汇编论坛的视频教程,一天5、6个教程,都忘记消化,所以脑袋难免短路,希望别介意。
|