2.OD判断编写语言

Borland Delphi 6.0 - 7.0

 

00509CB0 > $ 55 PUSH EBP

00509CB1 . 8BEC MOV EBP,ESP

00509CB3 . 83C4 EC ADD ESP,-14

00509CB6 . 53 PUSH EBX

00509CB7 . 56 PUSH ESI

00509CB8 . 57 PUSH EDI

00509CB9 . 33C0 XOR EAX,EAX

00509CBB . 8945 EC MOV DWORD PTR SS:[EBP-14],EAX

00509CBE . B8 20975000 MOV EAX,unpack.00509720

00509CC3 . E8 84CCEFFF CALL unpack.0040694C

 

 

 

 

 

Microsoft Visual C++ 6.0

 

00496EB8 >/$ 55 PUSH EBP ; (初始 cpu 选择)

00496EB9 |. 8BEC MOV EBP,ESP

00496EBB |. 6A FF PUSH -1

00496EBD |. 68 40375600 PUSH Screensh.00563740

00496EC2 |. 68 8CC74900 PUSH Screensh.0049C78C ; SE 处理程序安装

00496EC7 |. 64:A1 0000000>MOV EAX,DWORD PTR FS:[0]

00496ECD |. 50 PUSH EAX

00496ECE |. 64:8925 00000>MOV DWORD PTR FS:[0],ESP

00496ED5 |. 83EC 58 SUB ESP,58

 

 

 

 

Microsoft Visual C++ 6.0 [Overlay] E语言

 

00403831 >/$ 55 PUSH EBP

00403832 |. 8BEC MOV EBP,ESP

00403834 |. 6A FF PUSH -1

00403836 |. 68 F0624000 PUSH Nisy521.004062F0

0040383B |. 68 A44C4000 PUSH Nisy521.00404CA4 ; SE 处理程序安装

00403840 |. 64:A1 0000000>MOV EAX,DWORD PTR FS:[0]

00403846 |. 50 PUSH EAX

00403847 |. 64:8925 00000>MOV DWORD PTR FS:[0],ESP

 

 

 

 

 

Microsoft Visual Basic 5.0 / 6.0

 

00401166 - FF25 6C104000 JMP DWORD PTR DS:[<&MSVBVM60.#100>] ; MSVBVM60.ThunRTMain

0040116C > 68 147C4000 PUSH PACKME.00407C14

00401171 E8 F0FFFFFF CALL <JMP.&MSVBVM60.#100>

00401176 0000 ADD BYTE PTR DS:[EAX],AL

00401178 0000 ADD BYTE PTR DS:[EAX],AL

0040117A 0000 ADD BYTE PTR DS:[EAX],AL

0040117C 3000 XOR BYTE PTR DS:[EAX],AL

 

或省略第一行的JMP

 

00401FBC > 68 D0D44000 push dumped_.0040D4D0

00401FC1 E8 EEFFFFFF call <jmp.&msvbvm60.ThunRTMain>

00401FC6 0000 add byte ptr ds:[eax],al

00401FC8 0000 add byte ptr ds:[eax],al

00401FCA 0000 add byte ptr ds:[eax],al

00401FCC 3000 xor byte ptr ds:[eax],al

00401FCE 0000 add byte ptr ds:[eax],al

 

 

 

 

 

 

BC++

 

0040163C > $ /EB 10 JMP SHORT BCLOCK.0040164E

0040163E |66 DB 66 ; CHAR ‘f‘

0040163F |62 DB 62 ; CHAR ‘b‘

00401640 |3A DB 3A ; CHAR ‘:‘

00401641 |43 DB 43 ; CHAR ‘C‘

00401642 |2B DB 2B ; CHAR ‘+‘

00401643 |2B DB 2B ; CHAR ‘+‘

00401644 |48 DB 48 ; CHAR ‘H‘

00401645 |4F DB 4F ; CHAR ‘O‘

00401646 |4F DB 4F ; CHAR ‘O‘

00401647 |4B DB 4B ; CHAR ‘K‘

00401648 |90 NOP

00401649 |E9 DB E9

0040164A . |98E04E00 DD OFFSET BCLOCK.___CPPdebugHook

0040164E > \A1 8BE04E00 MOV EAX,DWORD PTR DS:[4EE08B]

00401653 . C1E0 02 SHL EAX,2

00401656 . A3 8FE04E00 MOV DWORD PTR DS:[4EE08F],EAX

0040165B . 52 PUSH EDX

0040165C . 6A 00 PUSH 0 ; /pModule = NULL

0040165E . E8 DFBC0E00 CALL <JMP.&KERNEL32.GetModuleHandleA> ; \GetModuleHandleA

00401663 . 8BD0 MOV EDX,EAX

 

 

 

 

 

Dasm:

 

00401000 >/$ 6A 00 PUSH 0 ; /pModule = NULL

00401002 |. E8 C50A0000 CALL <JMP.&KERNEL32.GetModuleHandleA> ; \GetModuleHandleA

00401007 |. A3 0C354000 MOV DWORD PTR DS:[40350C],EAX

0040100C |. E8 B50A0000 CALL <JMP.&KERNEL32.GetCommandLineA> ; [GetCommandLineA

00401011 |. A3 10354000 MOV DWORD PTR DS:[403510],EAX

00401016 |. 6A 0A PUSH 0A ; /Arg4 = 0000000A

00401018 |. FF35 10354000 PUSH DWORD PTR DS:[403510] ; |Arg3 = 00000000

0040101E |. 6A 00 PUSH 0 ; |Arg2 = 00000000

00401020 |. FF35 0C354000 PUSH DWORD PTR DS:[40350C] ; |Arg1 = 00000000

时间: 2024-10-19 23:29:59

2.OD判断编写语言的相关文章

PHP 判断浏览器语言及是否存在Cookie

详情请参看代码 作用:判断当前的浏览器语言.接收传入参数.拼接字符串 <?php $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2); if (!empty($_GET['comeid'])) $comeid = $_GET['comeid']; if($lang=="en"){ header("Location:http://www.website.com/buy.php?comeid=".$comeid

如何判断c语言的变量类型

变量三要素: 一个变量有三个基本的要素,变量的名称,变量的类型,变量的值.所以int a = 10; 变量名为a,变量的存储类型为int型,变量的值为10. 变量还有一些属性如作用范围和存储类型. 变量作用范围和存储类型 作用范围有局部变量和全局变量.局部只在特定范围内起作用.全部变量在整个程序运行期间起作用. 存储类型有auto(自动),static(静态),register(寄存器变量) 自动变量auto默认省略,int a = 10; 和 auto int a = 10;是一样的.自动变量

prime,素数的判断——c语言

输入一个数a,求他是否是素数(用函数) 程序: #include<stdio.h> int prime(int a)-----------------------------------//定义一个prime的自定义函数 { int i,y=0; for(i=1;i<=a;i++) { if(a%i!=0) y++; }------------------------------------------//判断是不是素数 return y;------------------------

Android 判断当前语言环境是否是中文环境

public static boolean isZh(Context context) {       Locale locale = context.getResources().getConfiguration().locale;       String language = locale.getLanguage();       if (language.endsWith("zh"))           return true;       else           re

[C语言]判断C语言变量名是否合法

Code: 1 #include <stdio.h> 2 #include <string.h> 3 int main() 4 { 5 int n,i; 6 scanf("%d",&n); 7 while(n--){ 8 char a[50]; 9 gets(a); 10 if((a[0]>='a'&&a[0]<='z')||(a[0]>='A'&&a[0]<='Z')||a[0]=='_'){ 1

反汇编--C语言(判断与分支)

if  else条件判断 C语言实现: void Conditional(int c){ if (c>0 && c<10) { printf("c大于0,小于10"); } else if(c>10 && c<100) { printf("c大于10,小于100"); } else{ printf("其它"); } } void main(){ int num=5; Conditional(

js判断浏览器类型以及语言

1.检查是否是移动端(Mobile).ipad.iphone.微信.QQ等 <script type="text/javascript"> //判断访问终端 var browser={ versions:function(){ var u = navigator.userAgent return { trident: u.indexOf('Trident') > -1, //IE内核 presto: u.indexOf('Presto') > -1, //ope

OD学习笔记10:一个VB程序的加密和解密思路

前边,我们的例子中既有VC++开发的程序,也有Delphi开发的程序,今天我们给大家分析一个VB程序的加密和解密思路. Virtual BASIC是由早期DOS时代的BASIC语言发展而来的可视化编程语言. VB是由事件驱动的编程语言:就是在可视化编程环境下我们可以绘制一些窗体,按钮,编辑框等控件,然后为这些控件所可能引发的事件如按钮被单击或者被双击编写对应的处理代码. 所有的VB程序几乎都是依赖于一个外部的动态链接库.这个动态链接库的名字是:MSVBVM60.dll(可能有多个版本,但名字都差

脚步语言的评估

混合语言是一种知识密集型的编程.我们必须具备能判断这些语言在什么地方最合适.虽然C语言的工作效率高和接近机器语言.但开发速度成本高,而相对脚步语言,则更容易解决实际问题.以下就我工作中会用到的脚步语言. Shell Shell 有多种变种,目前大多数Linux默认的shell是bash.简单shell程序的编写及其容易和自然.Unix使用解释语言搭建原型系统.shell 的最佳之处在于书写小型脚本非常自然快捷.最糟糕之处在于大型shell脚本必须依靠大量的辅助命令,而这些辅助命令不一定在所有目标