FaxServer Alternative for Windows Server 2008 - windows

To send a fax internally, we have been using the following Coldfusion code to create the object that handles the fax:
<cfobject type="COM" action="Create" name="objFaxServer"
class="FaxServer.FaxServer.1">
While we are remaining on ColdFusion 8, we are moving our server to Windows Server 2008, which is a 64-bit system. As a result, we are now unable to call COM objects, such as FaxServer, to handle such requests. I'm looking for an internal alternative (no 3rd party like InterFax.net) but I have not been able to find one, nor any advice to handle this situation.
Any suggestions on what to use or how to internally send out faxes via coldfusion?

I would use an email to fax gateway such as efax. This makes the whole process very simple you just send an email with the phone number in the subject field.
I know you said internally, but I think externally is better :)

Related

Oracle Applications - programmatically manipulate form data

Oracle applications 11.5.7 with Forms Server 6 - is there any way to programmatically send data from the client to the server, as if they were coming from the client forms?
This is an old version but am stuck with it for now.
I guess this is an Oracle internal protocol which details how a client JVM sends data across the network to the forms server to get it to accept user input. But can I simulate this, at least for simple data input - my goal would be to get mass data input done in a programmatic fashion rather than having to use either the Oracle forms or get an Oracle specialist to do a custom-loader for me, which is likely to be exorbitantly expensive.
I looked already at "generic" input loaders for BOMs, routings, costs etc, such as apps4more.com, but they won't support 11.5.7. The only one I found so far which would support 11.5.7 was exorbitantly expensive.
Have you tried Forms Playback?
You can record Forms actions to file and playback it later. It can be useful if you just need to redo the same activity on diffrent instances. File is plaintext, but unfortunatly format is quite difficult and it is not easy to generate it by means other than record...

Need your suggestion for Exchange ActiveSync client

I'm just about to start building MS Exchange ActiveSync client. I found two type of implementations. I don't know which one is the right approach.
http://social.msdn.microsoft.com/Forums/en-US/os_exchangeprotocols/thread/3b1e73fc-b69a-4ed2-a905-d15af6666f22
http://msdn.microsoft.com/en-us/library/hh361570%28EXCHG.140%29.aspx
First option says that the command being sent to my Exchange server (from my iPhone mail app) and the body is not xml encoded. I really didn’t find any other standard documentation regarding ActiveSync without using encoded xml.
Second option says to use WBXML and ActiveSync HTTP to perform the right action. It seams very well documented.
I'm really confused while thinking what should be the right approach to perform actions like SendMail, Reply, Forward, mark Read/Unread etc..
Can you guys guide me to select right basic approach which supports all versions of exchange servers with minimal change (Exchange 2007, 2010 etc.).
Since you mentioned Exchange ActiveSync, I believe you are building a PDA Mail client ? If yes, you can use WBXML approach.
For example, if you are building a Android application in phoneGap, then you can resolve this issue by two approach. Either user KXML java parser to parser, encode and decode wbxml, xml or a javascript approach with this library.

Info Agent's SNMP

I Have some questions:
In in my system (es. windows), have many DLL extension agent attached with snmp service
When a request comes to the service snmp "Snmp.exe" it sends the request to all agents or only one?
How do I know which of them can answer the request?
Thanks
The main agent's job is to handle registrations for SNMP and each DLL will register the information it is able to serve. The information in SNMP is registered under a tree-structure represented by OIDs. The agent is smart enough to know which DLL (or subagent) is able to serve up a request based on the incoming OID being asked about.
You might consider reading RFC2741 which describes the "AgentX" protocol. Although this talks about the protocol and not a DLL, the fundamental way it works under the hood should be pretty similar.
#Wes response is OK. Here is just a complement. As discribed in "How to add an SNMP extension agent to the NT registry", you can find the DLL extension in the registry entries pointed by the one in :
Windows Server NT4 to Windows Server 2003 R2 (Workstatio, W2K, XP):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameter\ExtensionAgents
Begining Windows 2008 (Vista) :
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SNMP\Parameters\ExtensionAgents
Each DLL expose SnmpExtensionInit function which report the supportedView as an OID.
BOOL WINAPI SnmpExtensionInit (DWORD dwTimeZeroReference,
HANDLE *hPollForTrapEvent,
AsnObjectIdentifier *supportedView);
I write a wrapper program that just load the DLL and call the function just to report the response, you can download and try slxSNMPInfo if you want. Sorry the site is in french, but the strings in the EXE files are in english.

Best practice for storing cross domain web service access credentials?

I'm working on an application that will connect to various remote servers using a Web Service to retrieve some status information about those ( Windows ) machines.
It works well within a single domain where we can just use Windows Authentication and ensure that the user calling the services has the correct credentials. However if we are working across domains that is not going to work- we're going to need to store a set of credentials for a user with the requisite rights on the application side.
Is there a standard way of storing credentials for these purposes, some kind of central password store in Windows or a handy built in library to provide this kind of functionality? If not, what is the best approach to keeping the passwords on the central machine safe and make sure the remote machine credentials are available when those services need to be called?
I would expect this application to mostly be installed on one of the Windows Server operating systems- 2003 or 2008 - if that makes any difference to what is available.
I suggest you have a look at "Windows Identity Foundation". It may be overkill for you, or the prerequisite may not match, but it's anyway worth reading as its very instructive in terms of claims based architecture with Microsoft technology.
The two principal white papers for developers are:
Overview of the Claims Based Architecture
Microsoft Windows Identity Foundation (WIF) Whitepaper for Developers
I assume that this is not a question of Silverlight or Flash application, those would have some special things...
I have used authentication system by Federation of Finnish Financial Services (used by all major Finnish banks). It goes like this:
Both your client and server have a secret key (or 2 keys).
You can store it e.g. to a custom place in Windows registry (which is easy with .NET and you can control the registry access). Don't hard-code the key to code, because otherwise someone could use reflection to get it. Also a custom xml-file in a folder could be dangerous, if the platform is not secure enough.
Then, we have the request, let's say WebService REST Url and there is some id:
http://myserver/MyItems/15
Now, we need to use a timestamp and an one-way hash-algorithm.
There are lot of available ones like md5, SHA1, SHA512, ...
(also built-in to the Microsoft .NET library).
We calculate a hash-value over the id and timestamp (and maybe some other parameters).
To simplify a bit, those algorithms work like modulo-algorithm: Let's say that my id is 11, secret key is 3, then modulo 11 % 3 = 2, now the hash would be 2, and if you know the id (11) and hash (2), you can't get the secret key.
The real request would be like this:
http://myserver/MyItems/15?timestamp=20110304171900&hash=89A234BA645FD56
The service will check the hash. If some hackers would have enough time, they could guess valid requests.
But the service will also check if the timestamp is ok, like between 5min past and 5min future.
So you can't adjust the request because it would modify the hash.
And of course one more thing is to use the SSL protocol. Otherwise your requests could be read from a random proxy server.
I would also recommend the Windows Identity Foundation, but this is another option.

How can I reverse engineer scrambled packets in a windows app?

I have a windows exe app that used to sends packets to a server in the clear. This app (lets call it the client app) is definitely close sourced, but some clever hacker hex-edited the binary, and made it send packets that are scrambled.
Now, obviously, those packets are scrambled in a way that is decipherable (otherwise the server would not be able to understand it), but what I wanted to do is to write an emulator that emulates this binary app, sending the same packets to the server, and being able to unscramble the response (if it is scrambled).
The hex-ed client required an extra dll in order to run, which the old client did not. I am assuming that somehow the hex-ed client managed to load that dll (lets call it client.dll) and the function of that dll is to implement the scrambling/unscrambling, by hooking into some windows api that rerouted all packets sent from the client.exe process.
If there are anyone who can direct me on how to even get started on working out how this all works, and how I can reverse engineer the scrambing, that would be really appreciated.
I have no idea what kind of information to provide, but if there is any lacking, just reply, and I will post with more details, and if anyone wants the binaries, I m happy to provide it.
binary download for any interested parties:
http://dl.getdropbox.com/u/46623/client.dll
http://dl.getdropbox.com/u/46623/newClient.exe
http://dl.getdropbox.com/u/46623/originalClient.exe
These wont run because the resource files are required - they are about 3 gigs, so too big to upload anywhere. Names have been changed to protect the guilty =) , but that probably doesnt protect the name of the dll...
I'm assuming that the person which coded this hook which adds encryption to the packet I/O for the aforementioned program has either hooked the relevant Windows' socket APIs (WSASend, send, etc) or hooked the internal program functions used to send/receive data.
This being said, I'd suggest you use a hook detection program (e.g. RkUnhooker) to find out what is actually being hooked. Once you know what APIs are hooked you should also know where these hooks are going and from there on in you'll have to manually reverse engineer the hook functions.
As for the subject of learning how to do this, I couldn't direct you to just one tutorial to teach you everything but I highly suggest you look at the Tuts4You site, it has a plethora of tutorials which would meet all of your needs.
If possible, upload a copy of the edited client & the hook DLL, if I have the time I'll code you replica encryption & decryption functions.
You need to hook the functions exported by the additional DLL and look into the functions being called and the parameters being passed to them. This is not going to be easy since you do not have type information (e.g. the function signatures for the DLL exports.)
Look here for some information on API hooking. You will also need a good debugger try Windbg from microsoft.
As far as I can see the only option you have here is black box testing ie give known input to both systems and compare the responses against each other to find the differences and similarities.
+--------------+
Input--------->| Original App |--------->Response1
+--------------+
+------------+
Input--------->| Modded App |--------->Response2
+------------+
Now once you figure out how to use the functions from the additional dll you can use it yourself in the same way the original app does.

Resources