能力值:
( LV5,RANK:60 )
|
-
-
2 楼
感谢分享,楼主辛苦了!
|
能力值:
( LV3,RANK:30 )
|
-
-
3 楼
恩,又是记录的时候,能用的上
但如果能格式化整篇文章就好了,还有 地址 和 只能之间多加几个空格
|
能力值:
( LV6,RANK:90 )
|
-
-
4 楼
可以格式化整个文章!!!
|
能力值:
( LV3,RANK:30 )
|
-
-
5 楼
不行的,我试过了,还有在看雪中找到一篇很有趣的一段,我没修改过哦(原版就是这样)
0040A000 60 pushad//进入OD后停在这
0040A001 F9 stc//ACProtect V1.20以前的版本则利用入口pushad后的ESP值!
0040A002 D3FD sar ebp,cl
0040A004 0F80 01000000 jo Feedback.0040A00B
0040A00A FC cld
0040A00B FC cld
0040A00C 49 dec ecx
0040A00D C1DB FE rcr ebx,0FE
0040A010 85CF test edi,ecx
0040A012 72 03 jb short Feedback.0040A017
0040A014 73 01 jnb short Feedback.0040A017
0040A016 7A 81 jpe short Feedback.00409F99//ACProtect V1.20典型入口代码
我说的整篇文章就是有中文字体在内的,提了这些意见是希望楼主能把它完善,呵呵
0040A529 48 dec eax = 6DE8F628
0040A52D 35 9EA50057 xor eax, 5700A59E = 3AE853B6
0040A533 F7D0 not eax = C517AC49
0040A53C F7D8 neg eax = 3AE853B7
0040A7D8 0FC8 bswap eax = B753E83A
0040AABD 05 CD272BA2 add eax, A22B27CD = 597F1007
0040AAC7 F7D0 not eax = A680EFF8
0040AACF 0FC8 bswap eax = F8EF80A6
0040AAD3 C1C0 07 rol eax, 7 = 77C0537C (msvcrt.__set_app_type)
就是这样,没什么神秘的,注意上面是空白处是分开了几个 CALL 完成的
0040A99C 874424 08 xchg dword ptr [esp+8], eax ; msvcrt.__set_app_type
0040A9A0 C64424 04 D8 mov byte ptr [esp+4], 0D8
0040A9A5 9C pushfd
0040A9A6 FF7424 0C push dword ptr [esp+C]
0040A9AA C2 1000 retn 10 ; 用这样的方式流到 API 地址工作
|
能力值:
( LV6,RANK:90 )
|
-
-
6 楼
恩。过两天升级弄个完美的!
|
能力值:
( LV3,RANK:30 )
|
-
-
7 楼
接近完美了,恭喜,再给个意见,凡是堆栈地址后面的地址保存
BP VirtualProtect 中断后看堆栈:
0012D6C4 0091EE22 /CALL 到 VirtualProtect 来自 原版FTPR.0091EE1C
0012D6C8 011F1000 |Address = 011F1000 正是需要修改的壳区段基址
0012D6CC 00029DEA |Size = 29DEA (171498.)
0012D6D0 00000020 |NewProtect = PAGE_EXECUTE_READ ★
0012D6D4 0012D6F0 \pOldProtect = 0012D6F0
———— 转换后
BP VirtualProtect 中断后看堆栈:
0012D6C4 irtualProtect 来自 原版FTPR.0091EE1C ;
0012D6C8 0012D6C8 011F1000 |Address = 011F1000 正是需要修改的壳区段基址 ;
0012D6CC ize = 29DEA (171498.) ;
0012D6D0 0012D6D0 00000020 |NewProtect = PAGE_EXECUTE_READ ★ ;
0012D6D4 \pOldProtect = 0012D6F0 ;
|
能力值:
( LV15,RANK:520 )
|
-
-
8 楼
求格式化引擎代码
|
能力值:
( LV6,RANK:90 )
|
-
-
9 楼
已修改,这次应该没有太大的问题了
|
能力值:
( LV3,RANK:30 )
|
-
-
10 楼
嗯,压力测试了一下,很好了。。。。可是 。。。。歪了 可能我系统的问题。。。。。
|
能力值:
( LV6,RANK:90 )
|
-
-
11 楼
堆栈 与 普通的 OD码起始位置不同!!!! 便于区分!!
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
真是个好工具
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
..谢谢分享
|
能力值:
( LV3,RANK:30 )
|
-
-
14 楼
郁闷了
00429E1D 9D POPFD
00429E1E 8B09 MOV ECX,DWORD PTR DS:[ECX] ; [0042AD7C]=116h
00429E20 9C PUSHFD
00428600 81C2 9D1DF602 ADD EDX,2F61D9D ; EDX = F1F2F4F8 初始值
00428606 9D POPFD
00428607 31C0 XOR EAX,EAX
0042A12E AC LODS BYTE PTR DS:[ESI] ; 0042CB40
0042C614 01C2 ADD EDX,EAX
0042C616 C1C2 03 ROL EDX,3
0042C619 31C2 XOR EDX,EAX
0042C61B 49 DEC ECX
0042C61C ^ 0F85 15F8FFFF JNZ TestDebu.0042BE37 ; 注意这里不是循环出口.
0042BAF1 AC LODS BYTE PTR DS:[ESI] ; 在这里下个条件断点 ESI==0042CC3E, 可以看的很清楚
0042C516 01C2 ADD EDX,EAX
0042C518 C1C2 03 ROL EDX,3
00427949 31C2 XOR EDX,EAX
0042BC26 49 DEC ECX ; 116h->0
0042BC27 0F85 0A020000 JNZ TestDebu.0042BE37
0042BC2D 68 43C14200 PUSH TestDebu.0042C143 ; 循环出口, EDX = 227029ED, 计算的结果
0042B22F 8B00 MOV EAX,DWORD PTR DS:[EAX] ; [0042AD88]=227029ED, 预先保留的结果
0042B231 29D0 SUB EAX,EDX
0042B26B /0F84 8E0C0000 JE TestDebu.0042BEFF ; 必须跳, 否则 Over
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
收下谢了!
|
能力值:
( LV15,RANK:670 )
|
-
-
16 楼
文章排版有用.
还能语法高亮不?
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
感謝分享反彙編代碼工具.
|
能力值:
( LV3,RANK:20 )
|
-
-
18 楼
收下谢了!
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
每次来都有收获
|
能力值:
( LV3,RANK:30 )
|
-
-
20 楼
这个工具很诱人
|
能力值:
( LV3,RANK:30 )
|
-
-
21 楼
奇怪,我 14 楼贴的那段很正常,反而不能转换 ?
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
好东西支持。
|
|
|