本帖最后由 冥界3大法王 于 2019-12-21 10:13 编辑
别告诉我网上一堆XX语言特征码,我不爱听 !我就想知道一个问题 。下面这样弄算不算 正确的?
比如用OD打开自己,查壳可知:Borland C++ 1999
[C++] 纯文本查看 复制代码
00401000 <Module> $ /EB 10 JMP SHORT OllyDBG.00401012
00401002 |66 DB 66 ; CHAR 'f'
00401003 |62 DB 62 ; CHAR 'b'
00401004 |3A DB 3A ; CHAR ':'
00401005 |43 DB 43 ; CHAR 'C'
00401006 |2B DB 2B ; CHAR '+'
00401007 |2B DB 2B ; CHAR '+'
00401008 |48 DB 48 ; CHAR 'H'
00401009 |4F DB 4F ; CHAR 'O'
0040100A |4F DB 4F ; CHAR 'O'
0040100B |4B DB 4B ; CHAR 'K'
0040100C |90 NOP
0040100D |E9 DB E9
0040100E . |28014B00 DD OFFSET OllyDBG.___CPPdebugHook
00401012 > \A1 1B014B00 MOV EAX,DWORD PTR DS:[0x4B011B]
00401017 . C1E0 02 SHL EAX,0x2
0040101A . A3 1F014B00 MOV DWORD PTR DS:[0x4B011F],EAX
0040101F . 52 PUSH EDX
00401020 . 6A 00 PUSH 0x0 ; /pModule = NULL
00401022 . E8 4BE00A00 CALL <JMP.&KERNEL32.GetModuleHandleA> ; \GetModuleHandleA
我们取每行命 前两个机器码, 后面都用?? 表示 ,直到到达 第一个 API 函数名处截至
那么我们就得到了 EB
66
62
3A
43
2B
2B
48
4F
4F
4B
90
E9 ?? ??
28??????
A1 ????????
C1?? ??
A3 ????????
52
6A ??
E8 ????????
思路对不?不理解原理,遇到个没有的,岂不怂了?
假设网上有几十个现成的XX语言特征码,没有写的
岂不干瞪眼? |